mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Fix a WARNING for data origin discrepancies.
Previously, a WARNING was issued at the time of defining a subscription with origin=NONE only when the publisher subscribed to the same table from other publishers, indicating potential data origination from different origins. However, the publisher can subscribe to the partition ancestors or partition children of the table from other publishers, which could also result in mixed-origin data inclusion. So, give a WARNING in those cases as well. Reported-by: Sergey Tatarintsev <s.tatarintsev@postgrespro.ru> Author: Hou Zhijie <houzj.fnst@fujitsu.com> Author: Shlok Kyal <shlok.kyal.oss@gmail.com> Reviewed-by: Vignesh C <vignesh21@gmail.com> Reviewed-by: Amit Kapila <amit.kapila16@gmail.com> Backpatch-through: 16, where it was introduced Discussion: https://postgr.es/m/5eda6a9c-63cf-404d-8a49-8dcb116a29f3@postgrespro.ru
This commit is contained in:
@ -534,12 +534,14 @@ CREATE SUBSCRIPTION <replaceable class="parameter">subscription_name</replaceabl
|
||||
<programlisting>
|
||||
# substitute <pub-names> below with your publication name(s) to be queried
|
||||
SELECT DISTINCT PT.schemaname, PT.tablename
|
||||
FROM pg_publication_tables PT,
|
||||
FROM pg_publication_tables PT
|
||||
JOIN pg_class C ON (C.relname = PT.tablename)
|
||||
JOIN pg_namespace N ON (N.nspname = PT.schemaname),
|
||||
pg_subscription_rel PS
|
||||
JOIN pg_class C ON (C.oid = PS.srrelid)
|
||||
JOIN pg_namespace N ON (N.oid = C.relnamespace)
|
||||
WHERE N.nspname = PT.schemaname AND
|
||||
C.relname = PT.tablename AND
|
||||
WHERE C.relnamespace = N.oid AND
|
||||
(PS.srrelid = C.oid OR
|
||||
C.oid IN (SELECT relid FROM pg_partition_ancestors(PS.srrelid) UNION
|
||||
SELECT relid FROM pg_partition_tree(PS.srrelid))) AND
|
||||
PT.pubname IN (<pub-names>);
|
||||
</programlisting></para>
|
||||
|
||||
|
Reference in New Issue
Block a user