From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: David G. Johnston <david.g.johnston@gmail.com>
Cc: Daniel Verite <daniel@manitou-mail.org>
Cc: RekGRpth <rekgrpth@gmail.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #17235: PQsendQuery (with two sql) after PQenterPipelineMode cause ERROR
Date: Wed, 20 Oct 2021 16:34:31 -0300
Message-ID: <202110201934.4w3rlxmsbf5b@alvherre.pgsql> (raw)
In-Reply-To: <CAKFQuwYrAoY6oF2j8Xc40o4x9v8fBTEet7stTpi_AWeVuBJHNA@mail.gmail.com>
On 2021-Oct-20, David G. Johnston wrote:
> It seems desirable to talk about the multi-command limitation directly in
> the libpq chapter of the documentation and only refer to the protocol
> documentation for "additional reading". We should not assume the reader of
> this material knows that extended protocol implies single command.
Sure.
> It is too late to change now but why did we feel the need to make
> PQsendQuery work in Pipeline mode at all?
Mostly, I saw no reason not to make it work for the common case.
> Lacking a decent answer it is probably worth saying that while
> PQsendQuery works it behaves like PQsendQueryParams without any
> parameters specified. In particular, it does not allow for multiple
> commands to be specified in the query.
Sure.
> Combine that with a mention that all interactions with the server are done
> using v3 of the extended protocol. Maybe by rewriting the above as:
>
> "While in pipeline mode, communication with the server is done using v3 of
> the extended query protocol. This means that the pipeline API can be used
> to communicate with all servers that support the protocol. It also means
> that it is not possible to include multiple commands in a single query (see
> the note in Protocol XRef for details)."
Hmm, this seems to get into too much detail for that particular spot.
Also, this paragraph is there precisely to let the reader know they can
use the pipeline mode with older server versions. I don't disagree with
rewording the paragraph in a similar way to what you outline in the
first two phrases (not exactly that though), but the third one you
propose seems a bit out of place. Why not add a few words to
PQsendQuery() doc blurb instead?
--
Álvaro Herrera 39°49'30"S 73°17'W — https://www.EnterpriseDB.com/
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-bugs@postgresql.org
Cc: alvherre@alvh.no-ip.org, david.g.johnston@gmail.com, daniel@manitou-mail.org, rekgrpth@gmail.com, pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #17235: PQsendQuery (with two sql) after PQenterPipelineMode cause ERROR
In-Reply-To: <202110201934.4w3rlxmsbf5b@alvherre.pgsql>
* 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