psql: Add command to use extended query protocol

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-10-28T06:52:51Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. psql: Add command to use extended query protocol

Attachments

This adds a new psql command \gp that works like \g (or semicolon) but
uses the extended query protocol.  Parameters can also be passed, like

     SELECT $1, $2 \gp 'foo' 'bar'

I have two main purposes for this:

One, for transparent column encryption [0], we need a way to pass 
protocol-level parameters.  The present patch in the [0] thread uses a 
command \gencr, but based on feedback and further thinking, a 
general-purpose command seems better.

Two, for testing the extended query protocol from psql.  For example, 
for the dynamic result sets patch [1], I have several ad-hoc libpq test 
programs lying around, which would be cumbersome to integrate into the 
patch.  With psql support like proposed here, it would be very easy to 
integrate a few equivalent tests.

Perhaps this would also be useful for general psql scripting.


[0]: https://commitfest.postgresql.org/40/3718/
[1]: https://commitfest.postgresql.org/40/2911/