Re: Support logical replication of DDLs

From: Ajin Cherian <itsajin(at)gmail(dot)com>
To: "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>
Cc: Peter Smith <smithpb2250(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, rajesh singarapu <rajesh(dot)rs0541(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Zheng Li <zhengli10(at)gmail(dot)com>
Subject: Re: Support logical replication of DDLs
Date: 2022-09-20 14:57:44
Message-ID: CAFPTHDaZdSuaQb2da776+jCZcWA2umGMOR3S4GD-CKw0r92v1Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On Thu, Sep 15, 2022 at 10:38 PM Ajin Cherian <itsajin(at)gmail(dot)com> wrote:
>
> On Tue, Sep 6, 2022 at 12:18 AM Ajin Cherian <itsajin(at)gmail(dot)com> wrote:
> >
> > On Mon, Aug 29, 2022 at 4:14 PM Ajin Cherian <itsajin(at)gmail(dot)com> wrote:
> > >
> > >

Attaching support for CREATE/ALTER/DROP EXTENSION ddl deparsing and replication.
One of the issues faced during replication of "CREATE EXTENSION.." was
that it internally
results in internally generated commands to create functions,
operators etc. If these
sql commands are replicated, then the actual "create extension"
command when replicated
will error out because of duplication. To avoid this, I used the
"in_extension" variable in the
"collected command" which is set when an extension is being created.
If this variable is set, then
avoid sql commands other than "CREATE EXTENSION" from being replicated.

This patch-set also adds a 5th patch from Vignesh C for supporting the
"GRANT" command.

However the following global objects are not supported:
1) Foreign data wrapper
2) parameter - ex: grant all on parameter wal_buffers TO test;
3) tablespace - ex: grant create on tablespace tbs1 to test;
4) database - ex: grant all on database postgres to test;
5) role - ex: grant test to test1; -- no event trigger for global objects

Thanks Vignesh!

regards,
Ajin Cherian
Fujitsu Australia

Attachment Content-Type Size
v22-0003-Support-CREATE-TABLE-AS-SELECT-INTO.patch application/octet-stream 15.0 KB
v22-0004-Test-cases-for-DDL-replication.patch application/octet-stream 24.6 KB
v22-0005-Support-DDL-of-GRANT-Command.patch application/octet-stream 10.4 KB
v22-0002-Support-DDL-replication.patch application/octet-stream 124.7 KB
v22-0001-Functions-to-deparse-DDL-commands.patch application/octet-stream 235.8 KB

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ron 2022-09-20 17:44:57 Re: PCI-DSS Requirements
Previous Message Dennis White 2022-09-20 12:50:01 Re: GIST combo index condition chosen for users queries is different from table owner's query

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2022-09-20 15:28:57 Re: Proposal to use JSON for Postgres Parser format
Previous Message Mark Dilger 2022-09-20 14:55:23 Re: why can't a table be part of the same publication as its schema