Re: [HACKERS] Re: [INTERFACES] retrieving varchar size - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] Re: [INTERFACES] retrieving varchar size
Date
Msg-id 1535.893436743@sss.pgh.pa.us
Whole thread Raw
In response to Re: [HACKERS] Re: [INTERFACES] retrieving varchar size  (Byron Nikolaidis <byronn@insightdist.com>)
Responses Re: [HACKERS] Re: [INTERFACES] retrieving varchar size
List pgsql-hackers
Byron Nikolaidis <byronn@insightdist.com> writes:
> Yes, it rings a bell alright, When you execute a multiple query
> (denoted by semicolans) like "set geqo to 'off'; show datestyle;
> select * from table", you get that multiple returns and MUST read
> until you get the 'I'.  If you don't, your screwed the next time you
> try and read anything cause all that stuff is still in the pipe.

That seems pretty bogus.  What happens if you do
    select * from table1; select * from table2
?  The way the code in libpq looks, I think the response from the
first select would get lost entirely (probably even cause a memory
leak).  It's not set up to handle receipt of more than one command
response in any clean fashion.  We'd need to revise the application
API to make that work right.

Playing around with psql, it seems that you can't actually get psql
to submit a multi-command line as a single query; it seems to break
it up into separate queries.  Which is what libpq can cope with.

I think we should either forbid multiple commands per PQexec call,
or fix libpq to handle them properly (and hence be able to return
a series of PGresults, not just one).

> Question though, I didnt think my request would have caused a major
> protocol change.  I though that the '-1' would simply be replaced by
> the correct size?

I assumed we'd want to add the restypmod as a new field in PGresult
and in the protocol.  But I'm just a newbie.

            regards, tom lane

pgsql-hackers by date:

Previous
From: Tom Ivar Helbekkmo
Date:
Subject: Re: [HACKERS] create operator problem
Next
From: Constantin Teodorescu
Date:
Subject: Re: [PHP3] BIG, BIG problems with pg_pConnect in PHP3, PostgreSQL and Apache httpd