| From: | "wangw(dot)fnst(at)fujitsu(dot)com" <wangw(dot)fnst(at)fujitsu(dot)com> | 
|---|---|
| To: | "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> | 
| Cc: | Andres Freund <andres(at)anarazel(dot)de>, vignesh C <vignesh21(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, "Takamichi Osumi (Fujitsu)" <osumi(dot)takamichi(at)fujitsu(dot)com>, "shiy(dot)fnst(at)fujitsu(dot)com" <shiy(dot)fnst(at)fujitsu(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Greg Nancarrow <gregn4422(at)gmail(dot)com> | 
| Subject: | RE: Data is copied twice when specifying both child and parent table in publication | 
| Date: | 2023-03-21 07:42:11 | 
| Message-ID: | OS3PR01MB6275C00A0D4B55DDF1552AEF9E819@OS3PR01MB6275.jpnprd01.prod.outlook.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Mon, Mar 20, 2023 at 21:18 PM Kuroda, Hayato/黒田 隼人 <kuroda(dot)hayato(at)fujitsu(dot)com> wrote:
> Dear Wang,
> 
> I have tested about multilevel partitions, and it worked well.
> Followings are my comments for v18-0001.
Thanks for your comments and testing.
> 01. pg_get_publication_tables
> 
> ```
> +               ListCell   *lc;
> ```
> 
> This definition can be inside of the "for (i = 0; i < nelems; i++)".
Changed.
> 02. pg_get_publication_tables
> 
> ```
> -                        * If the publication publishes partition changes via their
> -                        * respective root partitioned tables, we must exclude partitions
> -                        * in favor of including the root partitioned tables. Otherwise,
> -                        * the function could return both the child and parent tables
> -                        * which could cause data of the child table to be
> -                        * double-published on the subscriber side.
> +                        * Publications support partitioned tables. If
> +                        * publish_via_partition_root is false, all changes are replicated
> +                        * using leaf partition identity and schema, so we only need those.
> +                        * Otherwise, get the partitioned table itself.
> ```
> 
> The comments can be  inside of the "else".
Since I think there are related operations in the function
GetAllTablesPublicationRelations, it might be better to write it above the
if-statement.
> 03. pg_get_publication_tables
> 
> ```
> +               pfree(elems);
> ```
> 
> Only elems is pfree()'d here, but how about other variable like pub_elem and
> pub_elem_tables?
Added releases to these two variables.
Regards,
Wang Wei
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Melih Mutlu | 2023-03-21 08:46:17 | Re: Allow logical replication to copy tables in binary format | 
| Previous Message | wangw.fnst@fujitsu.com | 2023-03-21 07:41:04 | RE: Data is copied twice when specifying both child and parent table in publication |