On Thu, Mar 16, 2023 at 11:28 PM wangw.f...@fujitsu.com <wangw.f...@fujitsu.com> wrote: > Attach the new patch set.
Hi, I ran into this problem while hacking on [1], so thank you for tackling it! I have no strong opinions on the implementation itself; I just want to register a concern that the tests have not kept up with the implementation complexity. For example, the corner case mentioned in 0003, with multiple publications having conflicting pubviaroot settings, isn't tested as far as I can see. (I checked manually, and it appears to work as intended.) And the related pub_lower_level test currently only covers the case where multiple publications have pubviaroot=true, so the following test comment is now misleading: > # for tab4, we publish changes through the "middle" partitioned table > $node_publisher->safe_psql('postgres', > "CREATE PUBLICATION pub_lower_level FOR TABLE tab4_1 WITH > (publish_via_partition_root = true)" > ); ...since the changes are now in fact published via the tab4 root after this patchset is applied. > I think the aim of joining it with pg_publication before is to exclude > non-existing publications. Otherwise, we would get an error because of the > call > to function GetPublicationByName (with 'missing_ok = false') in function > pg_get_publication_tables. In the same vein, I don't think that case is covered anywhere. There are a bunch of moving parts and hidden subtleties here, and I fell into a few traps when I was working on my patch, so it'd be nice to have additional coverage. I'm happy to contribute effort in that area if it's helpful. Thanks! --Jacob [1] https://postgr.es/m/dc57f088-039b-7a71-8f4c-082ef106246e%40timescale.com