From: | Ajin Cherian <itsajin(at)gmail(dot)com> |
---|---|
To: | Greg Nancarrow <gregn4422(at)gmail(dot)com> |
Cc: | Peter Smith <smithpb2250(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] logical decoding of two-phase transactions |
Date: | 2021-06-23 03:39:58 |
Message-ID: | CAFPTHDaLNcziUa-fbCzfuvKxUdDYALnkpU9yDuPuMJNgSqu_gg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jun 22, 2021 at 3:36 PM Greg Nancarrow <gregn4422(at)gmail(dot)com> wrote:
> Some minor comments:
>
> (1)
> v88-0002
>
> doc/src/sgml/logicaldecoding.sgml
>
> "examples shows" is not correct.
> I think there is only ONE example being referred to.
>
> BEFORE:
> + The following examples shows how logical decoding is controlled over the
> AFTER:
> + The following example shows how logical decoding is controlled over the
>
>
fixed.
> (2)
> v88 - 0003
>
> doc/src/sgml/ref/create_subscription.sgml
>
> (i)
>
> BEFORE:
> + to the subscriber on the PREPARE TRANSACTION. By default,
> the transaction
> + prepared on publisher is decoded as a normal transaction at commit.
> AFTER:
> + to the subscriber on the PREPARE TRANSACTION. By default,
> the transaction
> + prepared on the publisher is decoded as a normal
> transaction at commit time.
>
fixed.
> (ii)
>
> src/backend/access/transam/twophase.c
>
> The double-bracketing is unnecessary:
>
> BEFORE:
> + if ((gxact->valid && strcmp(gxact->gid, gid) == 0))
> AFTER:
> + if (gxact->valid && strcmp(gxact->gid, gid) == 0)
>
fixed.
> (iii)
>
> src/backend/replication/logical/snapbuild.c
>
> Need to add some commas to make the following easier to read, and
> change "needs" to "need":
>
> BEFORE:
> + * The prepared transactions that were skipped because previously
> + * two-phase was not enabled or are not covered by initial snapshot needs
> + * to be sent later along with commit prepared and they must be before
> + * this point.
> AFTER:
> + * The prepared transactions, that were skipped because previously
> + * two-phase was not enabled or are not covered by initial snapshot, need
> + * to be sent later along with commit prepared and they must be before
> + * this point.
>
fixed.
> (iv)
>
> src/backend/replication/logical/tablesync.c
>
> I think the convention used in Postgres code is to check for empty
> Lists using "== NIL" and non-empty Lists using "!= NIL".
>
> BEFORE:
> + if (table_states_not_ready && !last_start_times)
> AFTER:
> + if (table_states_not_ready != NIL && !last_start_times)
>
>
> BEFORE:
> + else if (!table_states_not_ready && last_start_times)
> AFTER:
> + else if (table_states_not_ready == NIL && last_start_times)
>
fixed.
Also fixed comments from Vignesh:
1) This content is present in
v87-0001-Add-option-to-set-two-phase-in-CREATE_REPLICATIO.patch and
v87-0003-Add-support-for-prepared-transactions-to-built-i.patch, it
can be removed from one of them
<varlistentry>
+ <term><literal>TWO_PHASE</literal></term>
+ <listitem>
+ <para>
+ Specify that this logical replication slot supports decoding
of two-phase
+ transactions. With this option, two-phase commands like
+ <literal>PREPARE TRANSACTION</literal>, <literal>COMMIT
PREPARED</literal>
+ and <literal>ROLLBACK PREPARED</literal> are decoded and transmitted.
+ The transaction will be decoded and transmitted at
+ <literal>PREPARE TRANSACTION</literal> time.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
I don't see this duplicate content.
2) This change is not required, it can be removed:
<sect1 id="logicaldecoding-example">
<title>Logical Decoding Examples</title>
-
<para>
The following example demonstrates controlling logical decoding using the
SQL interface.
fixed this.
3) We could add comment mentioning example 1 at the beginning of
example 1 and example 2 for the newly added example with description,
that will clearly mark the examples.
added this.
5) This should be before verbose, the options are documented alphabetically
fixed.this.
regards,
Ajin Cherian
Fujitsu Australia
Attachment | Content-Type | Size |
---|---|---|
v89-0001-Add-option-to-set-two-phase-in-CREATE_REPLICATIO.patch | application/octet-stream | 6.5 KB |
v89-0005-Skip-empty-transactions-for-logical-replication.patch | application/octet-stream | 27.5 KB |
v89-0004-Add-prepare-API-support-for-streaming-transactio.patch | application/octet-stream | 54.1 KB |
v89-0003-Add-support-for-prepared-transactions-to-built-i.patch | application/octet-stream | 147.0 KB |
v89-0002-Add-support-for-two-phase-decoding-in-pg_recvlog.patch | application/octet-stream | 11.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2021-06-23 03:47:37 | Re: pgbench logging broken by time logic changes |
Previous Message | Noah Misch | 2021-06-23 03:02:28 | Re: intermittent failures in Cygwin from select_parallel tests |