Hi,

Thanks for the patch. I reviewed v1 and found a few issues that need
to be addressed before commit.

1. In pg_do_publication_ddl(), schemaname is initialized to NULL before
   the loop but never reset per iteration. When the first table is in a
   non-default schema and the second is in public, the public table
   incorrectly inherits the previous schema prefix:
```
CREATE SCHEMA s1;
CREATE TABLE s1.t1 (id int);
CREATE TABLE public.t2 (id int);
CREATE PUBLICATION p FOR TABLE s1.t1, public.t2;
SELECT pg_get_publication_ddl('p');
-- Got:  ... FOR TABLE s1.t1, s1.t2   ← WRONG
-- Want: ... FOR TABLE s1.t1, t2
```

2. FOR TABLE ONLY is silently dropped, changing semantics for publications
   on tables with inheritance or partitioning:
```
  CREATE PUBLICATION p FOR TABLE ONLY t (col) WHERE (col > 0);
  SELECT pg_get_publication_ddl('p');
  -- Got:  FOR TABLE t(col) WHERE (col > 0)  WITH ...
  -- Want: FOR TABLE ONLY t(col) WHERE (col > 0) WITH ...
 
```

As already mentioned there are also typos in the code. Otherwise, the idea and 
way lgtm.

Regards.

Reply via email to