Re: Binary support for pgoutput plugin
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Dave Cramer <davecramer@gmail.com>
Cc: Petr Jelinek <petr.jelinek@2ndquadrant.com>, Andres Freund <andres@anarazel.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-06-14T18:36:22Z
Lists: pgsql-hackers
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. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
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