pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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; }

view thread (25+ messages)  latest in thread

Message-ID: <3E79E5B0.4020703@ghaering.de>
Permalink:  ../3E79E5B0.4020703@ghaering.de/
Also on:    postgresql.org/message-id/3E79E5B0.4020703@ghaering.de

 · 

reply

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