Re: Support logical replication of DDLs

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Zheng Li <zhengli10(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 09:13:04
Message-ID: CAA4eK1K6fRvE=Kb2O8DCnCxB4vL+es2h0Bor8Co=ijrBgR6TRA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

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?

> 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

--
With Regards,
Amit Kapila.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Laurenz Albe 2023-03-29 11:08:34 Re: Using CTID system column as a "temporary" primary key
Previous Message Zheng Li 2023-03-28 21:19:35 Re: Support logical replication of DDLs

Browse pgsql-hackers by date

  From Date Subject
Next Message Aleksander Alekseev 2023-03-29 09:32:39 Re: XID formatting and SLRU refactorings (was: Add 64-bit XIDs into PostgreSQL 15)
Previous Message Aleksander Alekseev 2023-03-29 09:03:38 Re: Commitfest 2023-03 starting tomorrow!