Re: Skipping logical replication transactions on subscriber side

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-07-08T09:28:41Z
Lists: pgsql-hackers
On Wed, Jul 7, 2021 at 11:47 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>
> On Tue, Jul 6, 2021 at 6:33 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > >
> > > According to the doc, ALTER SUBSCRIPTION ... SET is used to alter
> > > parameters originally set by CREATE SUBSCRIPTION. Therefore, we can
> > > specify a subset of parameters that can be specified by CREATE
> > > SUBSCRIPTION. It makes sense to me for 'disable_on_error' since it can
> > > be specified by CREATE SUBSCRIPTION. Whereas SKIP TRANSACTION stuff
> > > cannot be done. Are you concerned about adding a syntax to ALTER
> > > SUBSCRIPTION?
> > >
> >
> > Both for additional syntax and consistency with disable_on_error.
> > Isn't it just a current implementation that Alter only allows to
> > change parameters supported by Create? Is there a reason why we can't
> > allow Alter to set/change some parameters not supported by Create?
>
> I think there is not reason for that but looking at ALTER TABLE I
> thought there is such a policy.
>

If we are looking for precedent then I think we allow to set
configuration parameters via Alter Database but not via Create
Database. Does that address your concern?

> I thought the skipping transaction
> feature is somewhat different from disable_on_error feature. The
> former seems a feature to deal with a problem on the spot whereas the
> latter seems a setting of a subscription. Anyway, if we use the
> subscription option, we can reset the XID by setting 0? Or do we need
> ALTER SUBSCRIPTION RESET?

The other commands like Alter Table, Alter Database, etc, which
provides a way to Set some parameter/option, have a Reset variant. I
think it would be good to have it for Alter Subscription as well but
we might want to allow other parameters to be reset by that as well.

-- 
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