diff options
author | Michael Paquier <michael@paquier.xyz> | 2025-02-25 10:07:24 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2025-02-25 10:07:24 +0900 |
commit | 3ce357584e795762aa6dc45fafc21dccea7e5ec6 (patch) | |
tree | 97dc2a4cb677b4a9d8d909aaf9794a1c656721a0 /doc/src | |
parent | cbb9086c9ef64b020cb9036f50afc14644bbf734 (diff) | |
download | postgresql-3ce357584e795762aa6dc45fafc21dccea7e5ec6.tar.gz postgresql-3ce357584e795762aa6dc45fafc21dccea7e5ec6.zip |
psql: Add pipeline status to prompt and some state variables
This commit adds %P to psql prompts, able to report the status of a
pipeline depending on PQpipelineStatus(): on, off or abort.
The following variables are added to report the state of an ongoing
pipeline:
- PIPELINE_SYNC_COUNT: reports the number of piped syncs.
- PIPELINE_COMMAND_COUNT: reports the number of piped commands, a
command being either \bind, \bind_named, \close or \parse.
- PIPELINE_RESULT_COUNT: reports the results available to read with
\getresults.
These variables can be used with \echo or in a prompt, using "%:name:"
in PROMPT1, PROMPT2 or PROMPT3. Some basic regression tests are added
for these. The suggestion to use variables to show the details about
the status counters comes from me. The original patch proposed was less
extensible, hardcoding the output in the prompt.
Author: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
Discussion: https://postgr.es/m/CAO6_XqroE7JuMEm1sWz55rp9fAYX2JwmcP_3m_v51vnOFdsLiQ@mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/ref/psql-ref.sgml | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 3edbd65e46c..cedccc14129 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -3729,6 +3729,12 @@ testdb=> <userinput>\setenv LESS -imx4F</userinput> </para> <para> + When pipeline mode is active, a dedicated prompt variable is available + to report the pipeline status. + See <xref linkend="app-psql-prompting-p-uc"/> for more details + </para> + + <para> Example: <programlisting> \startpipeline @@ -4502,6 +4508,39 @@ bar </listitem> </varlistentry> + <varlistentry id="app-psql-variables-pipeline-command-count"> + <term><varname>PIPELINE_COMMAND_COUNT</varname></term> + <listitem> + <para> + The number of commands generated by <literal>\bind</literal>, + <literal>\bind_named</literal>, <literal>\close</literal> or + <literal>\parse</literal> queued in an ongoing pipeline. + </para> + </listitem> + </varlistentry> + + <varlistentry id="app-psql-variables-pipeline-result-count"> + <term><varname>PIPELINE_RESULT_COUNT</varname></term> + <listitem> + <para> + The number of commands of an ongoing pipeline that were followed + by either a <command>\flushrequest</command> or a + <command>\syncpipeline</command>, forcing the server to send the + results. These results can be retrieved with + <command>\getresults</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry id="app-psql-variables-pipeline-sync-count"> + <term><varname>PIPELINE_SYNC_COUNT</varname></term> + <listitem> + <para> + The number of sync messages queued in an ongoing pipeline. + </para> + </listitem> + </varlistentry> + <varlistentry id="app-psql-variables-port"> <term><varname>PORT</varname></term> <listitem> @@ -4901,6 +4940,17 @@ testdb=> <userinput>INSERT INTO my_table VALUES (:'content');</userinput> </listitem> </varlistentry> + <varlistentry id="app-psql-prompting-p-uc"> + <term><literal>%P</literal></term> + <listitem> + <para> + Pipeline status: <literal>off</literal> when not in a pipeline, + <literal>on</literal> when in an ongoing pipeline or + <literal>abort</literal> when in an aborted pipeline. + </para> + </listitem> + </varlistentry> + <varlistentry id="app-psql-prompting-r"> <term><literal>%R</literal></term> <listitem> |