Dear Vignesh, > > If a new database is created on the primary server while > > pg_createsubscriber is running, the subscription will not be created > > for the new database. > > To reproduce this issue, follow these steps: > > Debug pg_createsubscriber and set a breakpoint after the > > fetch_source_databases function, where the databases would have been > > prepared. > > While execution of pg_createsubscriber is paused, create a new > > database on the primary node. > > You will observe that the database is created on the standby node, but > > the subscription will not be created for the newly created database. > > +fetch_source_databases(struct CreateSubscriberOptions *opt) > > +{ > > + PGconn *conn; > > + PGresult *res; > > + int num_rows; > > + > > + /* Establish a connection to the PostgreSQL server */ > > + conn = connect_database(opt->pub_conninfo_str, true); > > + > > + res = PQexec(conn, "SELECT datname FROM pg_database WHERE > > datistemplate = false AND datallowconn = true"); > > + > > + /* Check for errors during query execution */ > > + if (PQresultStatus(res) != PGRES_TUPLES_OK) > > If we don't have a solution for this, how about the following approach: > a) Add a note in the documentation indicating that the publication and > subscriptions must be created manually for any new databases created > while pg_createsubscriber is running. b) At the end of the > pg_createsubscriber execution, identify any new databases that were > created and list them for the user. > > Since this scenario might not be common, we could either implement > just option a) or both a) and b).
I'm not sure we must really handle the case. Documentation [1] has already described not to run DDL commands during the command: ``` Since DDL commands are not replicated by logical replication, avoid executing DDL commands that change the database schema while running pg_createsubscriber. If the target server has already been converted to logical replica, the DDL commands might not be replicated, which might cause an error. ``` Thought? [1]: https://www.postgresql.org/docs/devel/app-pgcreatesubscriber.html Best regards, Hayato Kuroda FUJITSU LIMITED