From: Gerhard Häring <lists@ghaering.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Bruce Momjian <pgman@candle.pha.pa.us>
Cc: pgsql-interfaces@postgresql.org
Subject: Re: I want to send comments to the backend!
Date: Thu, 20 Mar 2003 17:00:48 +0100
Message-ID: <3E79E5B0.4020703@ghaering.de> (raw)
In-Reply-To: <23655.1048175249@sss.pgh.pa.us>
References: <200303201522.h2KFMpp24991@candle.pha.pa.us>
<23655.1048175249@sss.pgh.pa.us>
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> 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
Attachments:comment_test.c (text/plain, 2.0K) download
/*
* 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;
}
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: lists@ghaering.de, tgl@sss.pgh.pa.us, pgman@candle.pha.pa.us
Subject: Re: I want to send comments to the backend!
In-Reply-To: <3E79E5B0.4020703@ghaering.de>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox