Pipeline mode disallows multicommand strings
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 5 Nov 2021 14:40:03 +0000 (11:40 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 5 Nov 2021 14:40:03 +0000 (11:40 -0300)
... so mention that in appropriate places of the libpq docs.

Backpatch to 14.

Reported-by: RekGRpth <rekgrpth@gmail.com>
Discussion: https://postgr.es/m/17235-53bb38fc5be593dc@postgresql.org

doc/src/sgml/libpq.sgml

index b449c834a95b8a6be41a30653bdb28067b5c9d0c..c17d33a54f09d60ed8a4b3935c0d15ff3e31ca94 100644 (file)
@@ -4594,6 +4594,11 @@ int PQsendQuery(PGconn *conn, const char *command);
        (on the same connection) until <xref linkend="libpq-PQgetResult"/>
        has returned a null pointer, indicating that the command is done.
       </para>
+
+      <para>
+       In pipeline mode, command strings containing more than one SQL command
+       are disallowed.
+      </para>
      </listitem>
     </varlistentry>
 
@@ -5046,7 +5051,8 @@ int PQflush(PGconn *conn);
     <xref linkend="libpq-PQpipelineStatus"/> can be used
     to test whether pipeline mode is active.
     In pipeline mode, only <link linkend="libpq-async">asynchronous operations</link>
-    are permitted, and <literal>COPY</literal> is disallowed.
+    are permitted, command strings containing multiple SQL commands are
+    disallowed, and so is <literal>COPY</literal>.
     Using synchronous command execution functions
     such as <function>PQfn</function>,
     <function>PQexec</function>,