pgsql: Refactor aclcheck functions

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Refactor aclcheck functions
Date: 2022-11-13 08:09:39
Message-ID: E1ou83e-000t0x-Pl@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Refactor aclcheck functions

Instead of dozens of mostly-duplicate pg_foo_aclcheck() functions,
write one common function object_aclcheck() that can handle almost all
of them. We already have all the information we need, such as which
system catalog corresponds to which catalog table and which column is
the ACL column.

There are a few pg_foo_aclcheck() that don't work via the generic
function and have special APIs, so those stay as is.

I also changed most pg_foo_aclmask() functions to static functions,
since they are not used outside of aclchk.c.

Reviewed-by: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>
Reviewed-by: Antonin Houska <ah(at)cybertec(dot)at>
Discussion: https://www.postgresql.org/message-id/flat/95c30f96-4060-2f48-98b5-a4392d3b6066(at)enterprisedb(dot)com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c727f511bd7bf3c58063737bcf7a8f331346f253

Modified Files
--------------
contrib/dblink/dblink.c | 2 +-
src/backend/access/common/tupdesc.c | 2 +-
src/backend/catalog/aclchk.c | 625 ++++++++-------------------------
src/backend/catalog/namespace.c | 13 +-
src/backend/catalog/pg_aggregate.c | 10 +-
src/backend/catalog/pg_operator.c | 2 +-
src/backend/commands/aggregatecmds.c | 3 +-
src/backend/commands/alter.c | 6 +-
src/backend/commands/collationcmds.c | 3 +-
src/backend/commands/conversioncmds.c | 6 +-
src/backend/commands/dbcommands.c | 4 +-
src/backend/commands/extension.c | 5 +-
src/backend/commands/foreigncmds.c | 10 +-
src/backend/commands/functioncmds.c | 26 +-
src/backend/commands/indexcmds.c | 8 +-
src/backend/commands/opclasscmds.c | 4 +-
src/backend/commands/operatorcmds.c | 16 +-
src/backend/commands/publicationcmds.c | 5 +-
src/backend/commands/schemacmds.c | 7 +-
src/backend/commands/tablecmds.c | 16 +-
src/backend/commands/tablespace.c | 4 +-
src/backend/commands/trigger.c | 2 +-
src/backend/commands/tsearchcmds.c | 4 +-
src/backend/commands/typecmds.c | 16 +-
src/backend/executor/execExpr.c | 11 +-
src/backend/executor/execSRF.c | 3 +-
src/backend/executor/nodeAgg.c | 10 +-
src/backend/executor/nodeWindowAgg.c | 8 +-
src/backend/optimizer/util/clauses.c | 4 +-
src/backend/parser/parse_utilcmd.c | 2 +-
src/backend/tcop/fastpath.c | 5 +-
src/backend/utils/adt/acl.c | 102 +++---
src/backend/utils/adt/dbsize.c | 5 +-
src/backend/utils/fmgr/fmgr.c | 4 +-
src/backend/utils/init/postinit.c | 2 +-
src/include/utils/acl.h | 44 +--
src/pl/tcl/pltcl.c | 2 +-
37 files changed, 319 insertions(+), 682 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andrew Dunstan 2022-11-13 14:04:14 pgsql: Make PostgreSQL::Test::Cluster::config_data more flexible
Previous Message Peter Eisentraut 2022-11-13 07:18:39 pgsql: Refactor ownercheck functions