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-17T14:29:26Z
Lists: pgsql-hackers
Attachments
- 0003-document-new-binary-option-for-CREATE-SUBSCRIPTION.patch (application/octet-stream) patch 0003
On Fri, 14 Jun 2019 at 15:42, Dave Cramer <davecramer@gmail.com> wrote: > > 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 > Additional patch for documentation. Dave Cramer
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