Re: Binary support for pgoutput plugin

Dmitry Dolgov <9erthalion6@gmail.com>

From: Dmitry Dolgov <9erthalion6@gmail.com>
To: Dave Cramer <davecramer@gmail.com>
Cc: Thomas Munro <thomas.munro@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, Petr Jelinek <petr.jelinek@2ndquadrant.com>, Andres Freund <andres@anarazel.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-11-11T19:46:20Z
Lists: pgsql-hackers
> On Mon, Nov 11, 2019 at 11:15:45AM -0500, Dave Cramer wrote:
> On Fri, 8 Nov 2019 at 11:20, Dmitry Dolgov <9erthalion6@gmail.com> wrote:
>
> > > On Tue, Nov 05, 2019 at 07:16:10AM -0500, Dave Cramer wrote:
> > >
> > > See attached
> >
> >     --- a/src/backend/replication/logical/worker.c
> >     +++ b/src/backend/replication/logical/worker.c
> >     @@ -1779,6 +1779,7 @@ ApplyWorkerMain(Datum main_arg)
> >         options.slotname = myslotname;
> >         options.proto.logical.proto_version = LOGICALREP_PROTO_VERSION_NUM;
> >         options.proto.logical.publication_names =
> > MySubscription->publications;
> >     +   options.proto.logical.binary = MySubscription->binary;
> >
> > I'm a bit confused, shouldn't be there also
> >
> >         --- a/src/backend/catalog/pg_subscription.c
> >         +++ b/src/backend/catalog/pg_subscription.c
> >         @@ -71,6 +71,7 @@ GetSubscription(Oid subid, bool missing_ok)
> >                         sub->name = pstrdup(NameStr(subform->subname));
> >                         sub->owner = subform->subowner;
> >                         sub->enabled = subform->subenabled;
> >         +       sub->binary = subform->subbinary;
> >
> > in the GetSubscription?
> >
>
> yes, I have added this. I will supply an updated patch later.
>
> Now a bigger question(s).

Well, without this change it wasn't working for me at all. Other than
that yes, it was a small question :)



Commits

  1. Weaken type-OID-matching checks in array_recv and record_recv.

  2. Fix construction of updated-columns bitmap in logical replication.

  3. Allow logical replication to transfer data in binary format.

  4. Phase 2 pgindent run for v12.