Re: Skipping logical replication transactions on subscriber side

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Greg Nancarrow <gregn4422@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, Alexey Lesovsky <lesovsky@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-08-19T06:51:09Z
Lists: pgsql-hackers
On Mon, Aug 16, 2021 at 8:33 AM Greg Nancarrow <gregn4422@gmail.com> wrote:
>
> On Mon, Aug 16, 2021 at 6:24 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> >
> > Therefore, perhaps a message like "... in transaction 740 with commit
> > timestamp 2021-08-10 14:44:38.058174+05:30" is better in terms of
> > consistency with other messages?
> >
>
> Yes, I think that would be more consistent.
>
> On another note, for the 0001 patch, the elog ERROR at the bottom of
> the logicalrep_message_type() function seems to assume that the
> unrecognized "action" is a printable character (with its use of %c)
> and also that the character is meaningful to the user in some way.
> But given that the compiler normally warns of an unhandled enum value
> when switching on an enum, such an error would most likely be when
> action is some int value that wouldn't be meaningful to the user (as
> it wouldn't be one of the LogicalRepMsgType enum values).
> I therefore think it would be better to use %d in that ERROR:
>
> i.e.
>
> + elog(ERROR, "invalid logical replication message type %d", action);
>
> Similar comments apply to the apply_dispatch() function (and I realise
> it used %c before your patch).
>

The action in apply_dispatch is always a single byte so not sure why
we need %d here. Also, if it is used as %c before the patch then I
think it is better not to change it in this patch.

-- 
With Regards,
Amit Kapila.



Commits

  1. Test ALIGNOF_DOUBLE==4 compatibility under ALIGNOF_DOUBLE==8.

  2. Reorder subskiplsn in pg_subscription to avoid alignment issues.

  3. Add ALTER SUBSCRIPTION ... SKIP.

  4. Optionally disable subscriptions on error.

  5. Update docs of logical replication for commit 8d74fc96db.

  6. Respect permissions within logical replication.

  7. Fix regression test failure caused by commit 8d74fc96db.

  8. Add a view to show the stats of subscription workers.

  9. Add logical change details to logical replication worker errcontext.

  10. Rename LOGICAL_REP_MSG_STREAM_END to LOGICAL_REP_MSG_STREAM_STOP.

  11. Fix typo in protocol.sgml.

  12. Remove unused argument in apply_handle_commit_internal().

  13. Fix replication of in-progress transactions in tablesync worker.

  14. Reorder pg_sequence columns to avoid alignment issue