On Fri, 18 Mar 2022 at 08:22, Japin Li <japi...@hotmail.com> wrote: > On Fri, 18 Mar 2022 at 00:22, Zheng Li <zhengl...@gmail.com> wrote: >> Hello Japin, >>>The new patch change the behavior of publication, when we drop a table >>>on publisher, the table also be dropped on subscriber, and this made the >>>regression testa failed, since the regression test will try to drop the >>>table on subscriber. >> >>>IMO, we can disable the DDLs replication by default, which makes the >>>regression test happy. Any thoughts? >> >> Good catch, I forgot to run the whole TAP test suite. I think for now >> we can simply disable DDL replication for the failing tests when >> creating publication: $node_publisher->safe_psql('postgres', >> "CREATE PUBLICATION tap_pub FOR ALL TABLES WITH (ddl='')"); >> I'll fix it in the next version of patch. I'll also work on breaking >> down the patch into smaller pieces for ease of review. >> > > Oh, it doesn't work. > > postgres=# CREATE PUBLICATION s1 FOR ALL TABLES WITH(ddl = '');; > ERROR: conflicting or redundant options > > > Here is the code, I think, you might mean `if (ddl_level_given == NULL)`. > > + if (*ddl_level_given) > + ereport(ERROR, > + (errcode(ERRCODE_SYNTAX_ERROR), > + errmsg("conflicting or > redundant options"))); > + > + /* > + * If publish option was given only the explicitly > listed actions > + * should be published. > + */ > + pubactions->pubddl_database = false; > + pubactions->pubddl_table = false; > + > + *ddl_level_given = true;
Oh, Sorry, I misunderstand it, it just like you forget initialize *ddl_level_given to false when enter parse_publication_options(). -- Regrads, Japin Li. ChengDu WenWu Information Technology Co.,Ltd.