public inbox for [email protected]  
help / color / mirror / Atom feed
From: Kirill Reshke <[email protected]>
To: Anthonin Bonnefoy <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: Add Pipelining support in psql
Date: Wed, 27 Nov 2024 15:46:36 +0500
Message-ID: <CALdSSPgUAMfFGzCg0nKYVbqDBOXqzkV2mvUqRDh_JOE8ANUKGA@mail.gmail.com> (raw)
In-Reply-To: <CAO6_XqroE7JuMEm1sWz55rp9fAYX2JwmcP_3m_v51vnOFdsLiQ@mail.gmail.com>
References: <CAO6_XqroE7JuMEm1sWz55rp9fAYX2JwmcP_3m_v51vnOFdsLiQ@mail.gmail.com>

On Wed, 27 Nov 2024 at 14:50, Anthonin Bonnefoy
<[email protected]> 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.

Hello, good concept. Our connection pooler testing will greatly
benefit from this feature. At the moment, our tests are golang-based
and build pipelines in extended proto and verify the outcome.
Regression tests based on SQL will be far more thorough and organic.

> 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

I'm very doubtful about the \syncpipeline . Maybe we should instead
support \sync meta-command in psql? This will be a useful contribution
itself.

> Those meta-commands will allow testing pipelined query behaviour using
> psql regression tests.
>
> Regards,
> Anthonin

I haven't looked into the patch in detail yet.

-- 
Best regards,
Kirill Reshke






view thread (3+ messages)

reply

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: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: Add Pipelining support in psql
  In-Reply-To: <CALdSSPgUAMfFGzCg0nKYVbqDBOXqzkV2mvUqRDh_JOE8ANUKGA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox