Re: Binary support for pgoutput plugin
Dave Cramer <davecramer@gmail.com>
From: Dave Cramer <davecramer@gmail.com>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Petr Jelinek <petr.jelinek@2ndquadrant.com>,
Andres Freund <andres@anarazel.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-06-14T19:42:47Z
Lists: pgsql-hackers
Attachments
- 0002-add-binary-column-to-pg_subscription.patch (application/octet-stream) patch 0002
- 0001-First-pass-at-working-code-without-subscription-opti.patch (application/octet-stream) patch 0001
Dave Cramer On Fri, 14 Jun 2019 at 14:36, Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote: > On Wed, Jun 12, 2019 at 10:35:48AM -0400, Dave Cramer wrote: > >On Mon, 10 Jun 2019 at 07:49, Petr Jelinek <petr.jelinek@2ndquadrant.com> > >wrote: > > > >> Hi, > >> > >> On 10/06/2019 13:27, Dave Cramer wrote: > >> > So back to binary output. > >> > > >> > From what I can tell the place to specify binary options would be in > the > >> > create publication and or in replication slots? > >> > > >> > The challenge as I see it is that the subscriber would have to be able > >> > to decode binary output. > >> > > >> > Any thoughts on how to handle this? At the moment I'm assuming that > this > >> > would only work for subscribers that knew how to handle binary. > >> > > >> > >> Given that we don't need to write anything extra to WAL on upstream to > >> support binary output, why not just have the request for binary data as > >> an option for the pgoutput and have it chosen dynamically? Then it's the > >> subscriber who asks for binary output via option(s) to > START_REPLICATION. > >> > > > >If I understand this correctly this would add something to the > CREATE/ALTER > >SUBSCRIPTION commands in the WITH clause. > >Additionally another column would be required for pg_subscription for the > >binary option. > >Does it make sense to add an options column which would just be a comma > >separated string? > >Not that I have future options in mind but seems like something that might > >come up in the future. > > > > I'd just add a boolean column to the catalog. That's what I did in the > patch adding support for streaming in-progress transactions. I don't think > we expect many additional parameters, so it makes little sense to optimize > for that case. > Which is what I have done. Thanks I've attached both patches for comments. I still have to add documentation. Regards, Dave
Commits
-
Weaken type-OID-matching checks in array_recv and record_recv.
- 670c0a1d474b 14.0 landed
-
Fix construction of updated-columns bitmap in logical replication.
- e8de627a3e05 11.9 landed
- d5daae47db5e 14.0 landed
- 71e561bd4bc2 12.4 landed
- 39d6aec1927c 10.14 landed
- 2f1f189cf880 13.0 landed
-
Allow logical replication to transfer data in binary format.
- 9de77b545313 14.0 landed
-
Phase 2 pgindent run for v12.
- 8255c7a5eeba 12.0 cited