X-Original-To: pgsql-interfaces@postgresql.org Received: from mail.ghaering.de (mail.ghaering.de [213.133.123.170]) by postgresql.org (Postfix) with ESMTP id BFFBD474E4F for ; Thu, 20 Mar 2003 11:03:00 -0500 (EST) Received: from ghaering.de (mail.opus-gmbh.net [217.6.134.138]) by mail.ghaering.de (Postfix) with ESMTP id 5E7AC420063; Thu, 20 Mar 2003 17:04:38 +0100 (CET) Message-ID: <3E79E5B0.4020703@ghaering.de> Date: Thu, 20 Mar 2003 17:00:48 +0100 From: =?ISO-8859-1?Q?Gerhard_H=E4ring?= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Lane Cc: Bruce Momjian , pgsql-interfaces@postgresql.org Subject: Re: I want to send comments to the backend! References: <200303201522.h2KFMpp24991@candle.pha.pa.us> <23655.1048175249@sss.pgh.pa.us> In-Reply-To: <23655.1048175249@sss.pgh.pa.us> Content-Type: multipart/mixed; boundary="------------020008000302000907040703" X-Archive-Number: 200303/95 X-Sequence-Number: 3844 This is a multi-part message in MIME format. --------------020008000302000907040703 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Tom Lane wrote: > Bruce Momjian writes: > >>Gerhard Häring wrote: >> >>>Why can't I send comments like >>>-- a comment >>>to the backend using libpq? Are these only handled in psql? Please allow to >>>send comments to the backend, as I really need them. > > >>The backend should handle them fine. Can you give us pgsql version and >>an example. > > I think he's complaining that psql strips out the comments before > sending stuff to the backend. Unfortunately, most of the world probably > considers that a feature, not a bug. Me too. The problem is I use *libpq*. My question was badly asked. I don't care wether the comments end up on the backend, but I want to be able to send comments to libpq. I'd still expect the backend would handle comments, though, should I chose to implement the network protocol myself, without using libpq. > I'm quite certain that libpq does not strip comments, so the complaint > isn't strictly accurate... Then why does the attached program not work? Sorry for sending it twice, my first post is stalled because of an overzealeous TMDA proxy on my side. -- Gerhard --------------020008000302000907040703 Content-Type: text/plain; name="comment_test.c" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="comment_test.c" /* * testlibpq.c * * Test the C version of libpq, the PostgreSQL frontend * library. */ #include #include void exit_nicely(PGconn *conn) { PQfinish(conn); exit(1); } main() { char *pghost, *pgport, *pgoptions, *pgtty; char *dbName; int nFields; int i, j; /* FILE *debug; */ PGconn *conn; PGresult *res; /* * begin, by setting the parameters for a backend connection if the * parameters are null, then the system will try to use reasonable * defaults by looking up environment variables or, failing that, * using hardwired constants */ pghost = NULL; /* host name of the backend server */ pgport = NULL; /* port of the backend server */ pgoptions = NULL; /* special options to start up the backend * server */ pgtty = NULL; /* debugging tty for the backend server */ dbName = "template1"; /* make a connection to the database */ conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName); /* * check to see that the backend connection was successfully made */ if (PQstatus(conn) == CONNECTION_BAD) { fprintf(stderr, "Connection to database '%s' failed.\n", dbName); fprintf(stderr, "%s", PQerrorMessage(conn)); exit_nicely(conn); } /* debug = fopen("/tmp/trace.out","w"); */ /* PQtrace(conn, debug); */ /* start a transaction block */ res = PQexec(conn, "-- foobar"); if (!res || PQresultStatus(res) != PGRES_COMMAND_OK) { fprintf(stderr, "couldn't process comment\n"); PQclear(res); exit_nicely(conn); } /* * should PQclear PGresult whenever it is no longer needed to avoid * memory leaks */ PQclear(res); /* close the connection to the database and cleanup */ PQfinish(conn); /* fclose(debug); */ return 0; } --------------020008000302000907040703--