On Mon, Dec 13, 2021 5:49 PM Peter Smith <smithpb2...@gmail.com> wrote: > PSA the v46* patch set. > > Here are the main differences from v45: > 0. Rebased to HEAD > 1. Integrated many comments, docs, messages, code etc from Euler's patch > [Euler 6/12] 2. Several bugfixes 3. Patches are merged/added > > ~~ > > Bugfix and Patch Merge details: > > v46-0001 (main) > - Merged from v45-0001 (main) + v45-0005 (exprstate) > - Fix for mem leak reported by Greg (off-list) > > v46-0002 (validation) > - Merged from v45-0002 (node validation) + v45-0006 (replica identity > validation) > > v46-0003 > - Rebased from v45-0003 > - Fix for partition column order [Houz 9/12] > - Fix for core dump reported by Tang (off-list) > > v46-0004 (tab-complete and dump) > - Rebased from v45-0004 > > v46-0005 (for all tables) > - New patch > - Fix for FOR ALL TABLES [Tang 7/12] >
Thanks for updating the patch. When reviewing the patch, I found the patch allows using system columns in row filter expression. --- create publication pub for table test WHERE ('(0,1)'::tid=ctid); --- Since we can't create index on system column and most existing expression feature(index expr,partition expr,table constr) doesn't allow using system column, I think it might be better to disallow using system column when creating or altering the publication. We can check like: rowfilter_walker(Node *node, Relation relation) ... if (var->varattno < 0) ereport(ERROR, errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("cannot use system column \"%s\" in column generation expression", ... Best regards, Hou zj