Re: Support logical replication of DDLs

Ajin Cherian <itsajin@gmail.com>

From: Ajin Cherian <itsajin@gmail.com>
To: vignesh C <vignesh21@gmail.com>
Cc: Zheng Li <zhengli10@gmail.com>, Peter Smith <smithpb2250@gmail.com>, li jie <ggysxcq@gmail.com>, Dilip Kumar <dilipbalaut@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, Amit Kapila <amit.kapila16@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Japin Li <japinli@hotmail.com>, rajesh singarapu <rajesh.rs0541@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-01-15T04:09:25Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add a run_as_owner option to subscriptions.

  2. Refactor pgoutput_change().

  3. Print the correct aliases for DML target tables in ruleutils.

  4. Fix object identity string for transforms

  5. Add grantable MAINTAIN privilege and pg_maintain role.

  6. Get rid of recursion-marker values in enum AlterTableType

  7. Release cache tuple when no longer needed

  8. Empty search_path in logical replication apply worker and walsender.

  9. Refactor format_type APIs to be more modular

  10. Use wrappers of PG_DETOAST_DATUM_PACKED() more.

On Fri, Jan 13, 2023 at 5:33 PM vignesh C <vignesh21@gmail.com> wrote:
> Adding support for CREATE/ALTER/DROP Publication ddl deparsing.
> The attached v61 patch has the changes for the same.
>

Hi Vignesh,
this doesn't seem to compile:

gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Werror=vla -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -g -ggdb -Og -g3
-fno-omit-frame-pointer -I../../../src/include  -D_GNU_SOURCE   -c -o
ddl_deparse.o ddl_deparse.c
ddl_deparse.c: In function ‘deparse_PublicationObjects’:
ddl_deparse.c:8956:3: error: unknown type name ‘publication_rel’
   publication_rel *pub_rel = (publication_rel *) lfirst(lc1);
   ^
ddl_deparse.c:8956:31: error: ‘publication_rel’ undeclared (first use
in this function)
   publication_rel *pub_rel = (publication_rel *) lfirst(lc1);
                               ^
ddl_deparse.c:8956:31: note: each undeclared identifier is reported
only once for each function it appears in
ddl_deparse.c:8956:48: error: expected expression before ‘)’ token
   publication_rel *pub_rel = (publication_rel *) lfirst(lc1);

regards,
Ajin Cherian
Fujitsu Australia