Re: [PATCH] Add additional extended protocol commands to psql: \parse and \bindx
Aleksander Alekseev <aleksander@timescale.com>
From: Aleksander Alekseev <aleksander@timescale.com>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Cc: Michael Paquier <michael@paquier.xyz>,
Tomas Vondra <tomas.vondra@enterprisedb.com>, vignesh C <vignesh21@gmail.com>,
Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>, Jelte Fennema-Nio <postgres@jeltef.nl>
Date: 2024-07-24T12:19:52Z
Lists: pgsql-hackers
Hi, > It took me a couple of days to get back to it, but attached is what I > have finished with. This was mostly OK, except for a few things: > - \close was inconsistent with the other two commands, where no > argument was treated as the unnamed prepared statement. I think that > this should be made consistent with \parse and \bindx, requiring an > argument, where '' is the unnamed statement. > - The docs did not mention the case of the unnamed statement, so added > some notes about that. > - Some free() calls were not needed in the command executions, where > psql_scan_slash_option() returns NULL. > - Tests missing when no argument is provided for the new commands. > > One last thing I have found really confusing is that this leads to the > addition of two more status flags in pset for the close and parse > parts, with \bind and \bindx sharing the third one while deciding > which path to use depending on if the statement name is provided. > That's fragile. I think that it would be much cleaner to put all that > behind an enum, falling back to PQsendQuery() by default. I am > attaching that as 0002, for clarity, but my plan is to merge both 0001 > and 0002 together. I reviewed and tested v6. I believe it's ready to be merged. -- Best regards, Aleksander Alekseev
Commits
-
psql: Rename meta-command \close to \close_prepared
- fc39b286ad72 18.0 landed
-
psql: Add tests for repeated calls of \bind[_named]
- 91287b5f5da3 18.0 landed
-
psql: Fix memory leak with repeated calls of \bind
- c2fb2f9e200f 16.5 landed
- b0ae6db2088b 17.0 landed
-
psql: Clean up more aggressively state of \bind[_named], \parse and \close
- 87eeadaea143 18.0 landed
-
psql: Add more meta-commands able to use the extended protocol
- d55322b0da60 18.0 landed
-
psql: Add ignore_slash_options in bind's inactive branch
- 04c0897d3bca 17.0 landed