pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Cc: pgsql-hackers@lists.postgresql.org <pgsql-hackers@lists.postgresql.org>
Subject: Re: psql - add SHOW_ALL_RESULTS option
Date: Sat, 29 Jan 2022 15:40:00 +0100 (CET)
Message-ID: <alpine.DEB.2.22.394.2201291530010.399637@pseudo> (raw)
In-Reply-To: <a0fcfc4c-b910-df47-2f64-3f8d7cb01c10@enterprisedb.com>
References: <18c78a01-4a34-9dd4-f78b-6860f1420c8e@enterprisedb.com>
	<alpine.DEB.2.22.394.2107221655020.25741@pseudo>
	<6954328d-96f2-77f7-735f-7ce493a40949@enterprisedb.com>
	<alpine.DEB.2.22.394.2109251058000.3216312@pseudo>
	<alpine.DEB.2.22.394.2110021622530.2817726@pseudo>
	<2570e2ae-fa0f-aac9-f72f-bb59a9983a20@enterprisedb.com>
	<alpine.DEB.2.22.394.2112230703530.2668598@pseudo>
	<46259d13-5f90-1475-3c85-d7a597a2b862@enterprisedb.com>
	<alpine.DEB.2.22.394.2201040851220.3857182@pseudo>
	<alpine.DEB.2.22.394.2201081931170.731324@pseudo>
	<20220113054433.wdjhidtm7gvyhfts@alap3.anarazel.de>
	<alpine.DEB.2.22.394.2201150938470.3378943@pseudo>
	<47bcee2e-3e4c-a0ea-daee-9b3e2d65df05@enterprisedb.com>
	<alpine.DEB.2.22.394.2201231810310.1496591@pseudo>
	<a0fcfc4c-b910-df47-2f64-3f8d7cb01c10@enterprisedb.com>


Hello Peter,

>>> It would be better to do without.  Also, it makes one wonder how others 
>>> are supposed to use this multiple-results API properly, if even psql can't 
>>> do it without extending libpq. Needs more thought.
>> 
>> Fine with me! Obviously I'm okay if libpq is repaired instead of writing 
>> strange code on the client to deal with strange behavior.
>
> I have a new thought on this, as long as we are looking into libpq.  Why 
> can't libpq provide a variant of PQexec() that returns all results, instead 
> of just the last one.  It has all the information, all it has to do is return 
> the results instead of throwing them away.  Then the changes in psql would be 
> very limited, and we don't have to re-invent PQexec() from its pieces in 
> psql.  And this would also make it easier for other clients and user code to 
> make use of this functionality more easily.
>
> Attached is a rough draft of what this could look like.  It basically works. 
> Thoughts?

My 0.02€:

With this approach results are not available till the last one has been 
returned? If so, it loses the nice asynchronous property of getting 
results as they come when they come? This might or might not be desirable 
depending on the use case. For "psql", ISTM that we should want 
immediate and asynchronous anyway??

I'm unclear about what happens wrt to client-side data buffering if 
several large results are returned? COPY??

Also, I guess the user must free the returned array on top of closing all 
results?

-- 
Fabien.

view thread (127+ messages)  latest in thread

Message-ID: <alpine.DEB.2.22.394.2201291530010.399637@pseudo>
Permalink:  ../alpine.DEB.2.22.394.2201291530010.399637@pseudo/
Also on:    postgresql.org/message-id/alpine.DEB.2.22.394.2201291530010.399637@pseudo

 · 

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-hackers@postgresql.org
  Cc: coelho@cri.ensmp.fr, peter.eisentraut@enterprisedb.com, pgsql-hackers@lists.postgresql.org
  Subject: Re: psql - add SHOW_ALL_RESULTS option
  In-Reply-To: <alpine.DEB.2.22.394.2201291530010.399637@pseudo>

* 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