↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / psql Commands / Query execution

\syncpipeline

This group of commands implements pipelining of SQL statements. A pipeline must begin with a \startpipeline and end with an \endpipeline . In between there may be any number of \syncpipeline commands, which sends a sync message without ending the on…

Reading PostgreSQL 18.6.

Description

This group of commands implements pipelining of SQL statements. A pipeline must begin with a \startpipeline and end with an \endpipeline . In between there may be any number of \syncpipeline commands, which sends a sync message without ending the ongoing pipeline and flushing the send buffer. In pipeline mode, statements are sent to the server without waiting for the results of previous statements. See Section 32.5 for more details.

Client
psql 18.6
Case-sensitive spelling
\syncpipeline

Usage

\startpipeline \sendpipeline \syncpipeline \endpipeline \flushrequest \flush \getresults [ number_results ]

Spellings in this manual definition

CommandDocumented suffix modifiers
\startpipelineNone listed in this signature
\sendpipelineNone listed in this signature
\syncpipelineNone listed in this signature
\endpipelineNone listed in this signature
\flushrequestNone listed in this signature
\flushNone listed in this signature
\getresultsNone listed in this signature

Manual definition

\startpipeline
\sendpipeline
\syncpipeline
\endpipeline
\flushrequest
\flush
\getresults [ number_results ]

This group of commands implements pipelining of SQL statements. A pipeline must begin with a \startpipeline and end with an \endpipeline. In between there may be any number of \syncpipeline commands, which sends a sync message without ending the ongoing pipeline and flushing the send buffer. In pipeline mode, statements are sent to the server without waiting for the results of previous statements. See Section 32.5 for more details.

All queries executed while a pipeline is ongoing use the extended query protocol. Queries are appended to the pipeline when ending with a semicolon. The meta-commands \bind, \bind_named, \close_prepared or \parse can be used in an ongoing pipeline. While a pipeline is ongoing, \sendpipeline will append the current query buffer to the pipeline. Other meta-commands like \g, \gx or \gdesc are not allowed in pipeline mode.

\flushrequest appends a flush command to the pipeline, allowing to read results with \getresults without issuing a sync or ending the pipeline. \getresults will automatically push unsent data to the server. \flush can be used to manually push unsent data.

\getresults accepts an optional number_results parameter. If provided, only the first number_results pending results will be read. If not provided or 0, all pending results are read.

When pipeline mode is active, a dedicated prompt variable is available to report the pipeline status. See %P for more details

COPY is not supported while in pipeline mode.

Example:

\startpipeline
SELECT * FROM pg_class;
SELECT 1 \bind \sendpipeline
\flushrequest
\getresults
\endpipeline

Related entries

Documentation and source

Source build
Version
18.6
Build
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
Source fingerprint
ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8

Compare versions

PostgreSQL 17 → 18: added.

--- PostgreSQL 17
+++ PostgreSQL 18
@@ -1 +1,14 @@
-Not recorded in this version
+{
+  "definition": "This group of commands implements pipelining of SQL statements. A pipeline must begin with a \\startpipeline and end with an \\endpipeline . In between there may be any number of \\syncpipeline commands, which sends a sync message without ending the ongoing pipeline and flushing the send buffer. In pipeline mode, statements are sent to the server without waiting for the results of previous statements. See Section 32.5 for more details. All queries executed while a pipeline is ongoing use the extended query protocol. Queries are appended to the pipeline when ending with a semicolon. The meta-commands \\bind , \\bind_named , \\close_prepared or \\parse can be used in an ongoing pipeline. While a pipeline is ongoing, \\sendpipeline will append the current query buffer to the pipeline. Other meta-commands like \\g , \\gx or \\gdesc are not allowed in pipeline mode. \\flushrequest appends a flush command to the pipeline, allowing to read results with \\getresults without issuing a sync or ending the pipeline. \\getresults will automatically push unsent data to the server. \\flush can be used to manually push unsent data. \\getresults accepts an optional number_results parameter. If provided, only the first number_results pending results will be read. If not provided or 0 , all pending results are read. When pipeline mode is active, a dedicated prompt variable is available to report the pipeline status. See %P for more details COPY is not supported while in pipeline mode. Example: \\startpipeline SELECT * FROM pg_class; SELECT 1 \\bind \\sendpipeline \\flushrequest \\getresults \\endpipeline",
+  "modifiers": [],
+  "signature": "\\startpipeline \\sendpipeline \\syncpipeline \\endpipeline \\flushrequest \\flush \\getresults [ number_results ]",
+  "spellings": [
+    "\\startpipeline",
+    "\\sendpipeline",
+    "\\syncpipeline",
+    "\\endpipeline",
+    "\\flushrequest",
+    "\\flush",
+    "\\getresults"
+  ]
+}

Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.

Related entries

Export JSON · Back to psql Commands · Recorded in PostgreSQL 18 through 20; the first sample is not necessarily its introduction.