Hi Euler, Please find some comments below:
1. If the where clause contains non-replica identity columns, the delete performed on a replicated row using DELETE from pub_tab where repl_ident_col = n; is not being replicated, as logical replication does not have any info whether the column has to be filtered or not. Shouldn't a warning be thrown in this case to notify the user that the delete is not replicated. 2. Same for update, even if I update a row to match the quals on publisher, it is still not being replicated to the subscriber. (if the quals contain non-replica identity columns). I think for UPDATE at least, the new value of the non-replicate identity column is available which can be used to filter and replicate the update. 3. 0001.patch, Why is the name of the existing ExclusionWhereClause node being changed, if the exact same definition is being used? For 0002.patch, 4. + + memset(lrel, 0, sizeof(LogicalRepRelation)); Is this needed, apart from the above, patch does not use or update lrel at all in that function. 5. PublicationRelationQual and PublicationTable have similar fields, can PublicationTable be used in place of PublicationRelationQual instead of defining a new struct? Thank you, Rahila Syed