Hello Alvaro, > I think this is a pretty interesting and useful feature. > > Did you see some old code I wrote towards this goal? > https://www.postgresql.org/message-id/20150215044814.gl3...@alvh.no-ip.org > The intention was that DDL would produce some JSON blob that accurately > describes the DDL that was run; the caller can acquire that and use it > to produce working DDL that doesn't depend on runtime conditions. There > was lots of discussion on doing things this way. It was ultimately > abandoned, but I think it's valuable.
Thanks for pointing this out. I'm looking into it. 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. Regards, Zheng