From: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
---|---|
To: | Greg Nancarrow <gregn4422(at)gmail(dot)com> |
Cc: | Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, "osumi(dot)takamichi(at)fujitsu(dot)com" <osumi(dot)takamichi(at)fujitsu(dot)com>, Alexey Lesovsky <lesovsky(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Skipping logical replication transactions on subscriber side |
Date: | 2021-10-26 10:29:27 |
Message-ID: | CAA4eK1LwmYLOvA2ghuvJqncw9grfzHUwYhJDs490C51AKX1vYg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Oct 26, 2021 at 2:27 PM Greg Nancarrow <gregn4422(at)gmail(dot)com> wrote:
>
> On Tue, Oct 26, 2021 at 5:16 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> >
> > I agree that we will need a separate syntax for conflict resolution
> > but there is some similarity in what I proposed above (On
> > Error/Conflict [1]) with the existing syntax of Insert ... On
> > Conflict. I understand that here the context is different and we are
> > storing this information in the catalog but still there is some syntax
> > similarity and it will avoid adding new syntax variants.
> >
>
> The problem I see with the suggested syntax:
>
> Alter Subscription <sub_name> On Error ( subscription_parameter [=
> value] [, ... ] );
> OR
> Alter Subscription <sub_name> On Conflict ( subscription_parameter [=
> value] [, ... ] );
>
> is that "On Error ..." and "On Conflict" imply an action to be done on
> a future condition (Error/Conflict), whereas at least in this case
> (skip_xid) it's only AFTER the problem condition has occurred that we
> know the XID of the failed transaction that we want to skip. So that
> syntax looks a little confusing to me. Unless you had something else
> in mind on how it would work?
>
You have a point. The other alternatives on this line could be:
Alter Subscription <sub_name> SKIP ( subscription_parameter [=value] [, ... ] );
where subscription_parameter can be one of:
xid = <xid_val>
lsn = <lsn_val>
...
Instead of using Skip, we can use WITH as used in Alter Database
syntax but we are already using WITH in Create Subscription for a
different purpose, so that may not be a very good idea.
The basic idea is that I am trying to use options here rather than a
keyword-based syntax as there can be multiple such options.
--
With Regards,
Amit Kapila.
From | Date | Subject | |
---|---|---|---|
Next Message | Amul Sul | 2021-10-26 10:59:55 | Re: [Patch] ALTER SYSTEM READ ONLY |
Previous Message | Yura Sokolov | 2021-10-26 09:33:47 | Re: XTS cipher mode for cluster file encryption |