On Tues, Dec 14, 2021 1:48 AM Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote:
> Hmm, I messed up the patch file I sent.  Here's the complete patch.
> 

Hi,

I have a minor question about the replica identity check of this patch.

+check_publication_add_relation(Relation targetrel, Bitmapset *columns)
...
+                       idattrs = RelationGetIndexAttrBitmap(targetrel,
+                                                                               
                 INDEX_ATTR_BITMAP_IDENTITY_KEY);
+                       if (!bms_is_subset(idattrs, columns))
+                               ereport(ERROR,
+                                               
errcode(ERRCODE_INVALID_COLUMN_REFERENCE),
+                                               errmsg("invalid column list for 
publishing relation \"%s\"",
+                                                          
RelationGetRelationName(targetrel)),
+                                               errdetail("All columns in 
REPLICA IDENTITY must be present in the column list."));
+

The patch ensures all columns of RT are in column list when CREATE/ALTER
publication, but it seems doesn't prevent user from changing the replica
identity or dropping the index used in replica identity. Do we also need to
check those cases ?

Best regards,
Hou zj

Reply via email to