Re: Support logical replication of DDLs

From: Zheng Li <zhengli10(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, vignesh C <vignesh21(at)gmail(dot)com>, Ajin Cherian <itsajin(at)gmail(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, "wangw(dot)fnst(at)fujitsu(dot)com" <wangw(dot)fnst(at)fujitsu(dot)com>, Runqi Tian <runqidev(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, li jie <ggysxcq(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, rajesh singarapu <rajesh(dot)rs0541(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Support logical replication of DDLs
Date: 2023-03-29 16:53:31
Message-ID: CAAD30ULYihbjQLL=cpohD2fY9Hr=ZZQ4UOF-bJ1NJ7yo8NmmFw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On Wed, Mar 29, 2023 at 5:13 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Wed, Mar 29, 2023 at 2:49 AM Zheng Li <zhengli10(at)gmail(dot)com> wrote:
> >
> >
> > I agree that a full fledged DDL deparser and DDL replication is too
> > big of a task for one patch. I think we may consider approaching this
> > feature in the following ways:
> > 1. Phased development and testing as discussed in other emails.
> > Probably support table commands first (as they are the most common
> > DDLs), then the other commands in multiple phases.
> > 2. Provide a subscription option to receive the DDL change, raise a
> > notice and to skip applying the change. The users can listen to the
> > DDL notice and implement application logic to apply the change if
> > needed. The idea is we can start gathering user feedback by providing
> > a somewhat useful feature (compared to doing nothing about DDLs), but
> > also avoid heading straight into the potential footgun situation
> > caused by automatically applying any mal-formatted DDLs.
> >
>
> Doesn't this mean that we still need to support deparsing of such DDLs
> which is what I think we don't want?

I think we can send the plain DDL command string and the search_path
if we don't insist on applying it in the first version. Maybe the
deparser can be integrated later when we're confident that it's
ready/subset of it is ready.

> > 3. As cross-version DDL syntax differences are expected to be uncommon
> > (in real workload), maybe we can think about other options to handle
> > such edge cases instead of fully automating it? For example, what
> > about letting the user specify how a DDL should be replicated on the
> > subscriber by explicitly providing two versions of DDL commands in
> > some way?
> >
>
> As we are discussing in another related thread [1], if
> publisher_version > subscriber_version then it may not be possible to
> form a DDL at publisher which can be applied to the subscriber. OTOH,
> we need to think if there could be any problems with publisher_version
> < subscriber_version setup, and if so, what we want to do for it.
> Once, we have a clear answer to that then I think we will be in a
> better position to answer your question.
> [1] - https://www.postgresql.org/message-id/OS0PR01MB5716088E497BDCBCED7FC3DA94849%40OS0PR01MB5716.jpnprd01.prod.outlook.com

Regards,
Zane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andrey Klochkov 2023-03-29 17:18:31 Do BRIN indexes support MIN/MAX?
Previous Message Peter J. Holzer 2023-03-29 16:43:37 Re: Using CTID system column as a "temporary" primary key

Browse pgsql-hackers by date

  From Date Subject
Next Message Karl O. Pinc 2023-03-29 17:07:38 Re: Doc: Rework contrib appendix -- informative titles, tweaked sentences
Previous Message Peter Eisentraut 2023-03-29 16:39:27 Re: what should install-world do when docs are not available?