From: Bruce Momjian <maillist@candle.pha.pa.us>
To: tgl@sss.pgh.pa.us
Cc: byronn@insightdist.com
Cc: pgsql-hackers@postgreSQL.org
Cc: pgsql-interfaces@postgreSQL.org
Subject: Re: [HACKERS] Re: [INTERFACES] retrieving varchar size
Date: Sat, 25 Apr 1998 23:26:15 -0400 (EDT)
Message-ID: <199804260326.XAA18519@candle.pha.pa.us> (raw)
In-Reply-To: <1535.893436743@sss.pgh.pa.us>
>
> 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.
Yep, you figured it out. (See earlier posting.)
I have now thought about the problem some more, and I think an even
better solution would be that if the backend receives multiple commands
in a single query, it just returns the first or last result. There is
no mechanism in libpq to send a query and get multiple results back, so
why not just return one result.
No need to cound the number of queries sent, and no reason to send empty
queries to the backend looking for the last result.
If you want me to do this for the backend, let me know and I will do it.
First or last result? What do we return now?
>
> 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.
restypmod may not be available at the time of returning the result, but
the TupleDesc is, and it has the proper atttypmod.
--
Bruce Momjian | 830 Blythe Avenue
maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)
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: maillist@candle.pha.pa.us, tgl@sss.pgh.pa.us, byronn@insightdist.com, pgsql-hackers@postgreSQL.org
Subject: Re: [HACKERS] Re: [INTERFACES] retrieving varchar size
In-Reply-To: <199804260326.XAA18519@candle.pha.pa.us>
* 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