Re: psql: Add command to use extended query protocol - Mailing list pgsql-hackers

From Corey Huinker
Subject Re: psql: Add command to use extended query protocol
Date
Msg-id CADkLM=eKhxvFG-cYF+VQczgOT0wQUZFaa32SZFCtDVgy7xBXZA@mail.gmail.com
Whole thread Raw
In response to Re: psql: Add command to use extended query protocol  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Responses Re: psql: Add command to use extended query protocol
List pgsql-hackers

Btw., this also allows doing things like

SELECT $1, $2
\bind '1' '2' \g
\bind '3' '4' \g

That's one of the things I was hoping for. Very cool.
 

This isn't a prepared statement being reused, but it relies on the fact
that psql \g with an empty query buffer resends the previous query.
Still kind of neat.

Yeah, if they wanted a prepared statement there's nothing stopping them.

Review:

Patch applies, tests pass.

Code is quite straightforward.

As for the docs, they're very clear and probably sufficient as-is, but I wonder if we should we explicitly state that the bind-state and bind parameters do not "stay around" after the query is executed? Suggestions in bold:

         This command causes the extended query protocol (see <xref
         linkend="protocol-query-concepts"/>) to be used, unlike normal
         <application>psql</application> operation, which uses the simple
         query protocol.  Extended query protocol will be used even if no parameters are specified, so this command can be useful to test the extended
         query protocol from psql. This command affects only the next query executed, all subsequent queries will use the regular query protocol by default.

Tests seem comprehensive. I went looking for the TAP test that this would have replaced, but found none, and it seems the only test where we exercise PQsendQueryParams is libpq_pipeline.c, so these tests are a welcome addition.

Aside from the possible doc change, it looks ready to go.

pgsql-hackers by date:

Previous
From: Jacob Champion
Date:
Subject: Re: libpq support for NegotiateProtocolVersion
Next
From: Justin Pryzby
Date:
Subject: Re: Commit fest 2022-11