mirror of
https://github.com/postgres/postgres.git
synced 2025-08-28 18:48:04 +03:00
Prohibit combining publications with different column lists.
Currently, we simply combine the column lists when publishing tables on multiple publications and that can sometimes lead to unexpected behavior. Say, if a column is published in any row-filtered publication, then the values for that column are sent to the subscriber even for rows that don't match the row filter, as long as the row matches the row filter for any other publication, even if that other publication doesn't include the column. The main purpose of introducing a column list is to have statically different shapes on publisher and subscriber or hide sensitive column data. In both cases, it doesn't seem to make sense to combine column lists. So, we disallow the cases where the column list is different for the same table when combining publications. It can be later extended to combine the column lists for selective cases where required. Reported-by: Alvaro Herrera Author: Hou Zhijie Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/202204251548.mudq7jbqnh7r@alvherre.pgsql
This commit is contained in:
@@ -355,6 +355,11 @@ CREATE SUBSCRIPTION <replaceable class="parameter">subscription_name</replaceabl
|
||||
copied data that would be incompatible with subsequent filtering.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Subscriptions having several publications in which the same table has been
|
||||
published with different column lists are not supported.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We allow non-existent publications to be specified so that users can add
|
||||
those later. This means
|
||||
|
Reference in New Issue
Block a user