Re: I want to send comments to the backend!
От | Gerhard Häring |
---|---|
Тема | Re: I want to send comments to the backend! |
Дата | |
Msg-id | 3E79E21E.6020400@ghaering.de обсуждение исходный текст |
Ответ на | Re: I want to send comments to the backend! (Bruce Momjian <pgman@candle.pha.pa.us>) |
Список | pgsql-interfaces |
Bruce Momjian wrote: > 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 experience it on 7.2.1 on Debian Woody here. Same on 7.3.1 AFAIK. I attached a minimal libpq example in C (to rule out any interference from my Python modules) that shows the problem. -- Gerhard /* * testlibpq.c * * Test the C version of libpq, the PostgreSQL frontend * library. */ #include <stdio.h> #include <libpq-fe.h> 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; }
В списке pgsql-interfaces по дате отправления: