On Mon, 1 Jun 2026 at 18:43, Chao Li <[email protected]> wrote: > > Hi, > > While testing “Support existing publications in pg_createsubscriber”, I > noticed that it doesn’t allow the same publication name even when the > publications are from different databases. > > A simple repro: > ``` > % createdb db1 > % createdb db2 > % psql db1 -c 'CREATE PUBLICATION app_pub FOR ALL TABLES' > % psql db2 -c 'CREATE PUBLICATION app_pub FOR ALL TABLES' > CREATE PUBLICATION > CREATE PUBLICATION > % pg_createsubscriber --dry-run --pgdata <data-dir> --publisher-server > postgres --database db1 --database db2 --publication app_pub --publication > app_pub > pg_createsubscriber: error: publication "app_pub" specified more than once > for --publication > ``` > > The rejection is not introduced by this feature, but previously it was not a > real problem because the specified publication names would always be created. > After this feature, it may become an issue, since the feature intends to use > existing publications, and users may have defined publications with the same > name in different databases. So the current restriction becomes a limitation > of the new feature. I don’t think we should leave this limitation in PG19. > > Since pg_createsubscriber already ensures that duplicate database names > cannot be specified, we can just remove the duplicate publication name check. > > See the attached patch for details. >
Hi Chao-san, I was able to reproduce the scenario and agree with your analysis. Each --database option is associated with a corresponding --publication option, and duplicate database names are not allowed. And also, since publications are database-local objects, there is no need to reject duplicate publication names. The proposed changes look good to me. Thanks, Shlok Kyal
