Re: Handle PGRES_COPY_BOTH in psql for logical replication?

From: "Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Handle PGRES_COPY_BOTH in psql for logical replication?
Date: 2015-06-05 07:43:45
Message-ID: CACACo5Tw9WfZ7hE93aRcLoMgrav+xn3_AFWmsQi3dJMaTaRoXg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jun 5, 2015 at 9:26 AM, Andres Freund <andres(at)anarazel(dot)de> wrote:

> On 2015-06-05 09:20:41 +0200, Shulgin, Oleksandr wrote:
> > Hello Hackers,
> >
> > At the moment one can open up a replication connection using psql and use
> > all of the commands available on this special type of connection, except
> > for START_REPLICATION:
> >
> > $ psql -d "dbname=test replication=database"
> > psql (9.4.1)
> > Type "help" for help.
> >
> > test=# IDENTIFY_SYSTEM;
> > systemid | timeline | xlogpos | dbname
> > ---------------------+----------+-----------+---------
> > 6146106447402521313 | 1 | 0/76422B0 | bw_test
> > (1 row)
> >
> > test=# START_REPLICATION SLOT test LOGICAL 0/0;
> > unexpected PQresultStatus: 8
> > test=#
> >
> > This is due to PGRES_COPY_BOTH not being handled in psql. With
> > introduction of logical replication I think it makes sense to support
> this
> > mode, for the sake of (semi-)interactive testing from psql.
>
> How would that look like? It's just binary data you'd get back? And what
> would be the feedback messages and such look like, and what would be the
> content?
>

It would be whatever the logical decoding plugin sends. Makes perfect
sense for OUTPUT_PLUGIN_TEXTUAL_OUTPUT to see it on the terminal. And you
could even use binary with psql's \o, if you want (though usefulness is
less apparent to me in this case).

Since my intent is to just use it for testing the look of text logical
output, I'm not planning any support for feedback messages in this case.

> For example, one could try replication from different wal positions,
> > different output plugins and/or plugin options, w/o re-establishing the
> > connection, interactively by editing the command directly in psql prompt,
> > as opposed to using pg_recvlogical and editing the command line switches.
>
> You can mostly use the sql functions for that.
>

Maybe I'm missing something, which functions do you have in mind exactly?

--
Alex

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2015-06-05 08:22:42 Re: Handle PGRES_COPY_BOTH in psql for logical replication?
Previous Message Jim Nasby 2015-06-05 07:34:19 Re: RFC: Remove contrib entirely