Received: from sss.sss.pgh.pa.us (sss.pgh.pa.us [206.210.65.6]) by hub.org (8.8.8/8.7.5) with ESMTP id MAA09850; Fri, 24 Apr 1998 12:52:36 -0400 (EDT) Received: from sss.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.sss.pgh.pa.us (8.8.5/8.8.5) with ESMTP id MAA01537; Fri, 24 Apr 1998 12:52:24 -0400 (EDT) To: Byron Nikolaidis cc: pgsql-hackers@postgreSQL.org, pgsql-interfaces@postgreSQL.org Subject: Re: [HACKERS] Re: [INTERFACES] retrieving varchar size In-reply-to: Your message of Fri, 24 Apr 1998 11:12:26 -0400 <3540ABDA.2C62A589@insightdist.com> Date: Fri, 24 Apr 1998 12:52:23 -0400 Message-ID: <1535.893436743@sss.pgh.pa.us> From: Tom Lane Byron Nikolaidis 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