Re: psql - add SHOW_ALL_RESULTS option
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Fabien COELHO <coelho@cri.ensmp.fr>
Cc: "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2022-01-27T13:30:56Z
Lists: pgsql-hackers
Attachments
- 0001-WIP-PQexecMulti.patch (text/plain) patch 0001
On 23.01.22 18:17, Fabien COELHO wrote: >> But I think if we are adding a libpq API function to work around a >> misbehavior in libpq, we might as well fix the misbehavior in libpq to >> begin with. Adding a new public libpq function is a significant step, >> needs documentation, etc. > > I'm not so sure. > > The choice is (1) change the behavior of an existing function or (2) add > a new function. Whatever the existing function does, the usual anwer to > API changes is "someone is going to complain because it breaks their > code", so "Returned with feedback", hence I did not even try. The > advantage of (2) is that it does not harm anyone to have a new function > that they just do not need to use. > >> 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?
Commits
-
psql: Show all query results by default
- 7844c9918a43 15.0 landed
- 3a5130672296 14.0 landed
-
psql: Refactor ProcessResult()
- 5519d5affdfa 15.0 landed
-
psql: Refactor SendQuery()
- 8910a25fef3d 15.0 landed
-
psql: Add test for psql behavior on server crash
- 8cd7627c7b19 15.0 landed
-
psql: Additional tests
- 9028cce426ba 15.0 landed
-
Improve some psql test code
- fbee60f6a4ff 15.0 landed
-
psql: Fix some scan-build warnings
- 390edeeb570c 15.0 landed
-
psql: Add test for handling of replication commands
- 67c069848a99 15.0 landed
-
psql: More tests
- c0280bc3edeb 15.0 landed
-
psql: Add various tests
- 14d755b00037 15.0 landed
-
psql: Add test for query canceling
- 5b3f471ff23a 15.0 landed
-
Revert "psql: Show all query results by default"
- fae65629cec8 14.0 landed
-
Extend a test case a little
- b3a9e9897ec7 14.0 landed