pgsql: Require UPDATE permission on FOR PORTION OF column

Started by Peter Eisentraut20 days ago1 messagescomitters
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

Require UPDATE permission on FOR PORTION OF column

It seems like the SQL standard does require this after all, and it
makes sense because these columns get changed. (This is not to be
confused with *not* requiring INSERT permission to add the temporal
leftovers.)

Adding the column to RTEPermissionInfo->updatedCols also fixes a
couple outstanding bugs from other (non-permission) features using
that bitmapset to detect changes: GENERATED columns and UPDATE OF
triggers. This patch includes test cases to exercise those scenarios,
including on partitioned tables.

Author: Paul A. Jungwirth <pj@illuminatedcomputing.com>
Reviewed-by: jian he <jian.universality@gmail.com>
Discussion: /messages/by-id/CAHg+QDcd=t69gLf9yQexO07EJ2mx0Z70NFHo6h94X1EDA=hM0g@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/7ac030d5b152475275e84e0abe0b3628700fbeda

Modified Files
--------------
src/backend/parser/analyze.c | 12 +-
src/test/regress/expected/for_portion_of.out | 190 ++++++++++++++++++++-------
src/test/regress/expected/privileges.out | 12 +-
src/test/regress/sql/for_portion_of.sql | 76 ++++++++++-
src/test/regress/sql/privileges.sql | 10 +-
5 files changed, 241 insertions(+), 59 deletions(-)