Re: Add Pipelining support in psql
Kirill Reshke <reshkekirill@gmail.com>
On Wed, 27 Nov 2024 at 14:50, Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com> wrote: > > Hi, > > With \bind, \parse, \bind_named and \close, it is possible to issue > queries from psql using the extended protocol. However, it wasn't > possible to send those queries using pipelining and the only way to > test pipelined queries was through pgbench's tap tests. > > The attached patch adds pipelining support to psql with 3 new > meta-commands, mirroring what's already done in pgbench: > - \startpipeline starts a new pipeline. All extended queries will be > queued until the end of the pipeline is reached. > - \endpipeline ends an ongoing pipeline. All queued commands will be > sent to the server and all responses will be processed by the psql. > - \syncpipeline queue a synchronisation point without flushing the > commands to the server > > Those meta-commands will allow testing pipelined query behaviour using > psql regression tests. > > Regards, > Anthonin Hi! I stopped this: ``` db1=# \startpipeline db1=# begin \parse p1 db1=*# ``` Notice the asterisks that appeared after parse the message. This typically indicates we are in the tx block. this is however untrue before the bind+exec message for p1 will be sent (\bind_name metacommand). Am I correct? -- Best regards, Kirill Reshke
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
psql: Fix assertion failures with pipeline mode
- 3631612eae9c 18.0 landed
-
psql: Rework TAP routine psql_fails_like() to define WAL sender context
- 0ff95e0a5be1 18.0 landed
-
psql: Split extended query protocol meta-commands in --help=commands
- 78231baaf967 18.0 landed
-
psql: Improve descriptions of \\flush[request] in --help
- 5743d122fcf3 18.0 landed
-
psql: Fix incorrect status code returned by \getresults
- 5ee7bd944ee8 18.0 landed
-
psql: Allow queries terminated by semicolons while in pipeline mode
- 2cce0fe440fb 18.0 landed
-
psql: Add \sendpipeline to send query buffers while in a pipeline
- 17caf6644546 18.0 landed
-
psql: Fix memory leak with \gx used within a pipeline
- 54d23601b978 18.0 landed
-
psql: Add pipeline status to prompt and some state variables
- 3ce357584e79 18.0 landed
-
Add more tests for utility commands in pipelines
- a4e986ef5a46 18.0 landed
-
psql: Add support for pipelines
- 41625ab8ea3d 18.0 landed
-
Add braces for if block with large comment in psql's common.c
- 40af897eb777 18.0 landed