Re: [PATCH] Partial foreign key updates in referential integrity triggers
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Paul Martinez <hellopfm@gmail.com>, Zhihong Yu <zyu@yugabyte.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-11-11T10:34:10Z
Lists: pgsql-hackers
Attachments
- 0001-Fix-whitespace.patch (text/plain) patch 0001
- 0002-Review-changes.patch (text/plain) patch 0002
I have reviewed your patch referential-actions-on-delete-only-set-cols-v3.patch. Attached are two patches that go on top of yours that contain my recommended changes. Basically, this all looks pretty good to me. My changes are mostly stylistic. Some notes of substance: - The omission of the referential actions details from the CREATE TABLE reference page surprised me. I have committed that separately (without the column support, of course). So you should rebase your patch on top of that. Note that ALTER TABLE would now also need to be updated by your patch. - I recommend setting pg_constraint.confdelsetcols to null for the default behavior of setting all columns, instead of an empty array the way you have done it. I have noted the places in the code that need to be changed for that. - The outfuncs.c support shouldn't be included in the final patch. There is nothing wrong it, but I don't think it should be part of this patch to add piecemeal support like that. I have included a few changes there anyway for completeness. - In gram.y, I moved the error check around to avoid duplication. - In ri_triggers.c, I follow your renaming of the constants, but RI_PLAN_ONTRIGGER_RESTRICT seems a little weird. Maybe do _ONBOTH_, or else reverse the order, like RI_PLAN_SETNULL_ONDELETE, which would then allow RI_PLAN_RESTRICT. Please look through this and provide an updated patch, and then it should be good to go.
Commits
-
Allow specifying column list for foreign key ON DELETE SET actions
- d6f96ed94e73 15.0 landed
-
doc: Add referential actions to CREATE/ALTER TABLE synopsis
- db9f287711ac 15.0 landed