Re: Allow logical replication to copy tables in binary format
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
To: Melih Mutlu <m.melihmutlu@gmail.com>
Cc: "Takamichi Osumi (Fujitsu)" <osumi.takamichi@fujitsu.com>,
Jelte Fennema <postgres@jeltef.nl>, Amit Kapila <amit.kapila16@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>,
"shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>, Euler Taveira <euler@eulerto.com>
Date: 2023-02-28T12:27:37Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow logical replication to copy tables in binary format.
- ecb696527c01 16.0 landed
-
Common function for percent placeholder replacement
- c96de2ce1782 16.0 cited
-
Doc: add XML ID attributes to <sectN> and <varlistentry> tags.
- 78ee60ed84bb 16.0 cited
-
Re-order disable_on_error in tab-complete.
- d547f7cf5efc 16.0 cited
-
Make subscription tests pass with log_error_verbosity=verbose
- 19408aae7fa2 15.0 cited
-
Weaken type-OID-matching checks in array_recv and record_recv.
- 670c0a1d474b 14.0 cited
-
Allow logical replication to transfer data in binary format.
- 9de77b545313 14.0 cited
On Tue, Feb 28, 2023 at 1:22 AM Melih Mutlu <m.melihmutlu@gmail.com> wrote: > > Hi, > > Thanks for all of your reviews! > > So, I made some changes in the v10 according to your comments. Thanks. Some quick comments on v10: 1. + <para> + If true, initial data synchronization will be performed in binary format + </para></entry> It's not just the initial table sync right? The table sync can happen at any other point of time when ALTER SUBSCRIPTION ... REFRESH PUBLICATION WITH (copy = true) is run. How about - "If true, the subscriber requests publication for pre-existing data in binary format"? 2. + Specifies whether pre-existing data on the publisher will be copied + to the subscriber in binary format. The default is <literal>false</literal>. + Binary format is very data type specific, it will not allow copying + between different column types as opposed to text format. Note that + if this option is enabled, all data types which will be copied during + the initial synchronization should have binary send and receive functions. + If this option is disabled, data format for the initial synchronization + will be text. Perhaps, this should cover the recommended cases for enabling this new option - something like below (may not need to have exact wording, but the recommended cases?): "It is recommended to enable this option only when 1) the column data types have appropriate binary send/receive functions, 2) not replicating between different major versions or different platforms, 3) both publisher and subscriber tables have the exact same column types (not when replicating from smallint to int or numeric to int8 and so on), 4) both publisher and subscriber supports COPY with binary option, otherwise the table copy can fail." 3. I think the newly added tests must verify if the binary COPY is picked up when enabled. Perhaps, looking at the publisher's server log for 'COPY ... WITH BINARY format'? Maybe it's an overkill, otherwise, we have no way of testing that the option took effect. -- Bharath Rupireddy PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com