Re: bogus: logical replication rows/cols combinations
Tomas Vondra <tomas.vondra@enterprisedb.com>
From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Amit Kapila <amit.kapila16@gmail.com>,
Peter Eisentraut <peter.eisentraut@enterprisedb.com>,
Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-05-02T10:23:16Z
Lists: pgsql-hackers
On 5/2/22 12:17, Alvaro Herrera wrote: > On 2022-May-02, Tomas Vondra wrote: >> On 5/2/22 07:31, Amit Kapila wrote: > >>> Yeah, or don't allow to define such publications in the first place so >>> that different subscriptions can't combine them but I guess that might >>> forbid some useful cases as well where publication may not get >>> combined with other publications. >> >> But how would you check that? You don't know which publications will be >> combined by a subscription until you create the subscription, right? > > ... and I think this poses a problem: if the publisher has multiple > publications and the subscriber later uses those to create a combined > subscription, we can check at CREATE SUBSCRIPTION time that they can be > combined correctly. But if the publisher decides to change the > publications changing the rules and they are no longer consistent, can > we throw an error at ALTER PUBLICATION point? If the publisher can > detect that they are being used together by some subscription, then > maybe we can check consistency in the publication side and everything is > all right. But I'm not sure that the publisher knows who is subscribed > to what, so this might not be an option. > AFAIK we don't track that (publication/subscription mapping). The publications are listed in publication_names parameter of the START_REPLICATION command. > The latter ultimately means that we aren't sure that a combined > subscription is safe. And in turn this means that a pg_dump of such a > database cannot be restored (because the CREATE SUBSCRIPTION will be > rejected as being inconsistent). > We could do this check when executing the START_REPLICATION command, no? regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Prohibit combining publications with different column lists.
- fd0b9dcebda7 15.0 landed
-
Extend pg_publication_tables to display column list and row filter.
- 0ff20288e1cb 15.0 landed
-
Remove dynamic_shared_memory_type=none
- bcbd940806a2 12.0 cited