On 8/22/16 10:28 AM, Alvaro Herrera wrote: > Peter Eisentraut wrote: > >> I'm not happy that utils/acl.h has prototypes for aclchk.c, because >> acl.h is included all over the place. Perhaps I should make a >> src/include/catalog/aclchk.c to clean that up. > > I've been bothered by that too in the past. +1 for the cleanup.
Here is a patch for that. It didn't quite achieve the elegance I was hoping for. Most uses of acl.h actually use aclchk.c functions, and the new aclchk.h must include acl.h, so basically you end up just changing most includes of acl.h to aclchk.h while still effectively including acl.h everywhere. But I think having one header file serve two separate .c files is still a confusing pattern that is worth cleaning up. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index d4f9090..06041f0 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -38,6 +38,7 @@ #include "access/htup_details.h" #include "access/reloptions.h" +#include "catalog/aclchk.h" #include "catalog/indexing.h" #include "catalog/namespace.h" #include "catalog/pg_foreign_server.h" @@ -50,7 +51,6 @@ #include "mb/pg_wchar.h" #include "miscadmin.h" #include "parser/scansup.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/guc.h" diff --git a/contrib/pg_prewarm/pg_prewarm.c b/contrib/pg_prewarm/pg_prewarm.c index c3a518c..d312d74 100644 --- a/contrib/pg_prewarm/pg_prewarm.c +++ b/contrib/pg_prewarm/pg_prewarm.c @@ -16,12 +16,12 @@ #include <unistd.h> #include "access/heapam.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "fmgr.h" #include "miscadmin.h" #include "storage/bufmgr.h" #include "storage/smgr.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" diff --git a/contrib/pgrowlocks/pgrowlocks.c b/contrib/pgrowlocks/pgrowlocks.c index e20e7f8..1c8fff0 100644 --- a/contrib/pgrowlocks/pgrowlocks.c +++ b/contrib/pgrowlocks/pgrowlocks.c @@ -27,12 +27,12 @@ #include "access/multixact.h" #include "access/relscan.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/namespace.h" #include "funcapi.h" #include "miscadmin.h" #include "storage/bufmgr.h" #include "storage/procarray.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/rel.h" #include "utils/snapmgr.h" diff --git a/src/backend/access/brin/brin.c b/src/backend/access/brin/brin.c index 1b45a4c..4a48e92 100644 --- a/src/backend/access/brin/brin.c +++ b/src/backend/access/brin/brin.c @@ -22,6 +22,7 @@ #include "access/reloptions.h" #include "access/relscan.h" #include "access/xloginsert.h" +#include "catalog/aclchk.h" #include "catalog/index.h" #include "catalog/pg_am.h" #include "miscadmin.h" diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index b56d0e3..a1b213e 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -20,10 +20,10 @@ #include "postgres.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/pg_type.h" #include "miscadmin.h" #include "parser/parse_type.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/resowner_private.h" #include "utils/syscache.h" diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c index 6b709db..2305782 100644 --- a/src/backend/access/gin/ginfast.c +++ b/src/backend/access/gin/ginfast.c @@ -22,11 +22,11 @@ #include "access/xloginsert.h" #include "access/xlog.h" #include "commands/vacuum.h" +#include "catalog/aclchk.h" #include "catalog/pg_am.h" #include "miscadmin.h" #include "utils/memutils.h" #include "utils/rel.h" -#include "utils/acl.h" #include "postmaster/autovacuum.h" #include "storage/indexfsm.h" #include "storage/lmgr.h" diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index 65c941d..c3a1997 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -21,11 +21,11 @@ #include "access/relscan.h" #include "access/transam.h" +#include "catalog/aclchk.h" #include "catalog/index.h" #include "lib/stringinfo.h" #include "miscadmin.h" #include "storage/bufmgr.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index a585c3a..9face59 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -22,6 +22,7 @@ #include "access/htup_details.h" #include "access/sysattr.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/binary_upgrade.h" #include "catalog/catalog.h" #include "catalog/dependency.h" @@ -59,7 +60,6 @@ #include "nodes/makefuncs.h" #include "parser/parse_func.h" #include "parser/parse_type.h" -#include "utils/acl.h" #include "utils/aclchk_internal.h" #include "utils/builtins.h" #include "utils/fmgroids.h" diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 04d7840..6903c69 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -16,6 +16,7 @@ #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/heap.h" #include "catalog/index.h" diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c index 8fd4c31..99be2e1 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -23,6 +23,7 @@ #include "access/parallel.h" #include "access/xact.h" #include "access/xlog.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/objectaccess.h" #include "catalog/pg_authid.h" @@ -48,7 +49,6 @@ #include "storage/ipc.h" #include "storage/lmgr.h" #include "storage/sinval.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/catcache.h" #include "utils/guc.h" diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index 9aa8174..11d7d66 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -17,6 +17,7 @@ #include "access/htup_details.h" #include "access/sysattr.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/indexing.h" #include "catalog/objectaddress.h" diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c index 959d384..35d3ba6 100644 --- a/src/backend/catalog/pg_aggregate.c +++ b/src/backend/catalog/pg_aggregate.c @@ -16,6 +16,7 @@ #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/pg_aggregate.h" @@ -28,7 +29,6 @@ #include "parser/parse_coerce.h" #include "parser/parse_func.h" #include "parser/parse_oper.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c index d08b94e..1285826 100644 --- a/src/backend/catalog/pg_largeobject.c +++ b/src/backend/catalog/pg_largeobject.c @@ -23,7 +23,6 @@ #include "catalog/pg_largeobject.h" #include "catalog/pg_largeobject_metadata.h" #include "miscadmin.h" -#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/rel.h" #include "utils/tqual.h" diff --git a/src/backend/catalog/pg_operator.c b/src/backend/catalog/pg_operator.c index 5b5cd3f..aabdd96 100644 --- a/src/backend/catalog/pg_operator.c +++ b/src/backend/catalog/pg_operator.c @@ -20,6 +20,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/namespace.h" @@ -31,7 +32,6 @@ #include "catalog/pg_type.h" #include "miscadmin.h" #include "parser/parse_oper.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index c1d1505..d5e739a 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -16,6 +16,7 @@ #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" @@ -34,7 +35,6 @@ #include "parser/parse_type.h" #include "tcop/pquery.h" #include "tcop/tcopprot.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c index 65ecc45..180d7bf 100644 --- a/src/backend/catalog/pg_shdepend.c +++ b/src/backend/catalog/pg_shdepend.c @@ -18,6 +18,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" @@ -58,7 +59,6 @@ #include "commands/typecmds.h" #include "storage/lmgr.h" #include "miscadmin.h" -#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/syscache.h" #include "utils/tqual.h" diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c index 4b2d281..48241aa 100644 --- a/src/backend/catalog/pg_type.c +++ b/src/backend/catalog/pg_type.c @@ -17,6 +17,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/binary_upgrade.h" #include "catalog/dependency.h" #include "catalog/indexing.h" @@ -29,7 +30,6 @@ #include "commands/typecmds.h" #include "miscadmin.h" #include "parser/scansup.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/lsyscache.h" diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c index d34c82c..cbe5c08 100644 --- a/src/backend/commands/aggregatecmds.c +++ b/src/backend/commands/aggregatecmds.c @@ -24,6 +24,7 @@ #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/pg_aggregate.h" @@ -34,7 +35,6 @@ #include "miscadmin.h" #include "parser/parse_func.h" #include "parser/parse_type.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/syscache.h" diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c index 1301bcb..fe1b122 100644 --- a/src/backend/commands/alter.c +++ b/src/backend/commands/alter.c @@ -16,6 +16,7 @@ #include "access/htup_details.h" #include "access/sysattr.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/namespace.h" diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index c617abb..3bc52d9 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -22,6 +22,7 @@ #include "access/tuptoaster.h" #include "access/visibilitymap.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/index.h" #include "catalog/indexing.h" @@ -43,7 +44,6 @@ #include "storage/lmgr.h" #include "storage/proc.h" #include "storage/procarray.h" -#include "utils/acl.h" #include "utils/attoptcache.h" #include "utils/datum.h" #include "utils/guc.h" diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index dc1f79f..b08446a 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -25,6 +25,7 @@ #include "access/tuptoaster.h" #include "access/xact.h" #include "access/xlog.h" +#include "catalog/aclchk.h" #include "catalog/pg_am.h" #include "catalog/catalog.h" #include "catalog/dependency.h" @@ -42,7 +43,6 @@ #include "storage/lmgr.h" #include "storage/predicate.h" #include "storage/smgr.h" -#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/inval.h" #include "utils/lsyscache.h" diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c index e4ebb65..a615ae7 100644 --- a/src/backend/commands/collationcmds.c +++ b/src/backend/commands/collationcmds.c @@ -17,6 +17,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/namespace.h" diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c index 175d4ab..d6fcdc5 100644 --- a/src/backend/commands/conversioncmds.c +++ b/src/backend/commands/conversioncmds.c @@ -16,6 +16,7 @@ #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/pg_conversion.h" diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index c1c0223..4d4acac 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -30,6 +30,7 @@ #include "access/xact.h" #include "access/xloginsert.h" #include "access/xlogutils.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" @@ -55,7 +56,6 @@ #include "storage/ipc.h" #include "storage/procarray.h" #include "storage/smgr.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/pg_locale.h" diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c index 61ff8f2..fa454e4 100644 --- a/src/backend/commands/dropcmds.c +++ b/src/backend/commands/dropcmds.c @@ -16,6 +16,7 @@ #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/namespace.h" #include "catalog/objectaddress.h" diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index ac4c4ec..9a82a0e 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -15,6 +15,7 @@ #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" @@ -36,7 +37,6 @@ #include "lib/ilist.h" #include "miscadmin.h" #include "tcop/deparse_utility.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/evtcache.h" #include "utils/fmgroids.h" diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index fa861e6..3d2987c 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -32,6 +32,7 @@ #include "access/htup_details.h" #include "access/sysattr.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/namespace.h" diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c index eb531af..a95df91 100644 --- a/src/backend/commands/foreigncmds.c +++ b/src/backend/commands/foreigncmds.c @@ -17,6 +17,7 @@ #include "access/htup_details.h" #include "access/reloptions.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" @@ -32,7 +33,6 @@ #include "miscadmin.h" #include "parser/parse_func.h" #include "tcop/utility.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 748c8f7..7d5d064 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -36,6 +36,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/sysattr.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" @@ -58,7 +59,6 @@ #include "parser/parse_expr.h" #include "parser/parse_func.h" #include "parser/parse_type.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/guc.h" diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 85817c6..82087d8 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -20,6 +20,7 @@ #include "access/reloptions.h" #include "access/sysattr.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/index.h" #include "catalog/indexing.h" @@ -45,7 +46,6 @@ #include "storage/lmgr.h" #include "storage/proc.h" #include "storage/procarray.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/inval.h" diff --git a/src/backend/commands/lockcmds.c b/src/backend/commands/lockcmds.c index 175d1f3..8484942 100644 --- a/src/backend/commands/lockcmds.c +++ b/src/backend/commands/lockcmds.c @@ -15,13 +15,13 @@ #include "postgres.h" #include "access/heapam.h" +#include "catalog/aclchk.h" #include "catalog/namespace.h" #include "catalog/pg_inherits_fn.h" #include "commands/lockcmds.h" #include "miscadmin.h" #include "parser/parse_clause.h" #include "storage/lmgr.h" -#include "utils/acl.h" #include "utils/lsyscache.h" #include "utils/syscache.h" diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c index f4dfdb9..7a364d8 100644 --- a/src/backend/commands/opclasscmds.c +++ b/src/backend/commands/opclasscmds.c @@ -22,6 +22,7 @@ #include "access/nbtree.h" #include "access/htup_details.h" #include "access/sysattr.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c index 67d08d8..1873064 100644 --- a/src/backend/commands/operatorcmds.c +++ b/src/backend/commands/operatorcmds.c @@ -36,6 +36,7 @@ #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" diff --git a/src/backend/commands/policy.c b/src/backend/commands/policy.c index d694cf8..2953fdc 100644 --- a/src/backend/commands/policy.c +++ b/src/backend/commands/policy.c @@ -17,6 +17,7 @@ #include "access/htup.h" #include "access/htup_details.h" #include "access/sysattr.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 761d08f..9aa99f4 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -16,6 +16,7 @@ #include "access/genam.h" #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" @@ -32,7 +33,6 @@ #include "miscadmin.h" #include "parser/parse_func.h" #include "parser/parser.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/lsyscache.h" diff --git a/src/backend/commands/schemacmds.c b/src/backend/commands/schemacmds.c index a60ceb8..89b8e6d 100644 --- a/src/backend/commands/schemacmds.c +++ b/src/backend/commands/schemacmds.c @@ -17,6 +17,7 @@ #include "access/htup_details.h" #include "access/heapam.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index c98f981..c96fc62 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -21,6 +21,7 @@ #include "access/xlog.h" #include "access/xloginsert.h" #include "access/xlogutils.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/namespace.h" #include "catalog/objectaccess.h" @@ -34,7 +35,6 @@ #include "storage/lmgr.h" #include "storage/proc.h" #include "storage/smgr.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/resowner.h" diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 86e9814..cc97123 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -22,6 +22,7 @@ #include "access/sysattr.h" #include "access/xact.h" #include "access/xlog.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/heap.h" @@ -83,7 +84,6 @@ #include "storage/lock.h" #include "storage/predicate.h" #include "storage/smgr.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/inval.h" diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index 7902d43..f51cb36 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -58,6 +58,7 @@ #include "access/xact.h" #include "access/xlog.h" #include "access/xloginsert.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" @@ -74,7 +75,6 @@ #include "storage/fd.h" #include "storage/lmgr.h" #include "storage/standby.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/guc.h" diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 9de22a1..e5719ee 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -18,6 +18,7 @@ #include "access/sysattr.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" @@ -46,7 +47,6 @@ #include "storage/bufmgr.h" #include "storage/lmgr.h" #include "tcop/utility.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/bytea.h" #include "utils/fmgroids.h" diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c index 69c038c..3affa4a 100644 --- a/src/backend/commands/tsearchcmds.c +++ b/src/backend/commands/tsearchcmds.c @@ -21,6 +21,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index 8e7be78..aa2d465 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -33,6 +33,7 @@ #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/binary_upgrade.h" #include "catalog/catalog.h" #include "catalog/heap.h" diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index 821dce3..bc460db 100644 --- a/src/backend/commands/user.c +++ b/src/backend/commands/user.c @@ -16,6 +16,7 @@ #include "access/heapam.h" #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/binary_upgrade.h" #include "catalog/catalog.h" #include "catalog/dependency.h" @@ -32,7 +33,6 @@ #include "common/md5.h" #include "miscadmin.h" #include "storage/lmgr.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/syscache.h" diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 58bbf55..f2fb2fe 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -30,6 +30,7 @@ #include "access/multixact.h" #include "access/transam.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/namespace.h" #include "catalog/pg_database.h" #include "catalog/pg_namespace.h" @@ -42,7 +43,6 @@ #include "storage/lmgr.h" #include "storage/proc.h" #include "storage/procarray.h" -#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/guc.h" #include "utils/memutils.h" diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 32bb3f9..a7816f2 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -41,6 +41,7 @@ #include "access/sysattr.h" #include "access/transam.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/namespace.h" #include "commands/matview.h" #include "commands/trigger.h" @@ -53,7 +54,6 @@ #include "storage/bufmgr.h" #include "storage/lmgr.h" #include "tcop/utility.h" -#include "utils/acl.h" #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/rls.h" diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index 743e7d6..a563037 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -39,6 +39,7 @@ #include "access/htup_details.h" #include "access/nbtree.h" #include "access/tupconvert.h" +#include "catalog/aclchk.h" #include "catalog/objectaccess.h" #include "catalog/pg_type.h" #include "executor/execdebug.h" @@ -51,7 +52,6 @@ #include "parser/parse_coerce.h" #include "parser/parsetree.h" #include "pgstat.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/date.h" #include "utils/lsyscache.h" diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index ce2fc28..1c7ffed 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -150,6 +150,7 @@ #include "postgres.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/objectaccess.h" #include "catalog/pg_aggregate.h" #include "catalog/pg_proc.h" @@ -162,7 +163,6 @@ #include "optimizer/tlist.h" #include "parser/parse_agg.h" #include "parser/parse_coerce.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/memutils.h" diff --git a/src/backend/executor/nodeWindowAgg.c b/src/backend/executor/nodeWindowAgg.c index 371548c..f0db98b 100644 --- a/src/backend/executor/nodeWindowAgg.c +++ b/src/backend/executor/nodeWindowAgg.c @@ -34,6 +34,7 @@ #include "postgres.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/objectaccess.h" #include "catalog/pg_aggregate.h" #include "catalog/pg_proc.h" @@ -44,7 +45,6 @@ #include "optimizer/clauses.h" #include "parser/parse_agg.h" #include "parser/parse_coerce.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/datum.h" #include "utils/lsyscache.h" diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c index 764f602..95ff8d5 100644 --- a/src/backend/libpq/be-fsstubs.c +++ b/src/backend/libpq/be-fsstubs.c @@ -42,12 +42,12 @@ #include <sys/stat.h> #include <unistd.h> +#include "catalog/aclchk.h" #include "libpq/be-fsstubs.h" #include "libpq/libpq-fs.h" #include "miscadmin.h" #include "storage/fd.h" #include "storage/large_object.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/memutils.h" diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index e1baf71..245d316 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -20,6 +20,7 @@ #include "postgres.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/pg_aggregate.h" #include "catalog/pg_class.h" #include "catalog/pg_language.h" @@ -43,7 +44,6 @@ #include "parser/parse_func.h" #include "rewrite/rewriteManip.h" #include "tcop/tcopprot.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/datum.h" #include "utils/fmgroids.h" diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index e98fad0..a732a17 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -29,6 +29,7 @@ #include "access/amapi.h" #include "access/htup_details.h" #include "access/reloptions.h" +#include "catalog/aclchk.h" #include "catalog/dependency.h" #include "catalog/heap.h" #include "catalog/index.h" @@ -57,7 +58,6 @@ #include "parser/parse_utilcmd.h" #include "parser/parser.h" #include "rewrite/rewriteManip.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/guc.h" #include "utils/lsyscache.h" diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index f82d891..19b092d 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -19,6 +19,7 @@ #include "access/multixact.h" #include "access/transam.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/heap.h" @@ -34,7 +35,6 @@ #include "rewrite/rewriteDefine.h" #include "rewrite/rewriteManip.h" #include "rewrite/rewriteSupport.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/inval.h" #include "utils/lsyscache.h" diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c index 65cd29f..9f693eb 100644 --- a/src/backend/rewrite/rewriteRemove.c +++ b/src/backend/rewrite/rewriteRemove.c @@ -24,7 +24,6 @@ #include "catalog/pg_rewrite.h" #include "miscadmin.h" #include "rewrite/rewriteRemove.h" -#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/inval.h" #include "utils/lsyscache.h" diff --git a/src/backend/tcop/fastpath.c b/src/backend/tcop/fastpath.c index 2cd45e6..a85c4fb 100644 --- a/src/backend/tcop/fastpath.c +++ b/src/backend/tcop/fastpath.c @@ -22,6 +22,7 @@ #include "access/htup_details.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/objectaccess.h" #include "catalog/pg_proc.h" #include "libpq/libpq.h" @@ -30,7 +31,6 @@ #include "miscadmin.h" #include "tcop/fastpath.h" #include "tcop/tcopprot.h" -#include "utils/acl.h" #include "utils/lsyscache.h" #include "utils/snapmgr.h" #include "utils/syscache.h" diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index ac64135..25c1981 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -21,6 +21,7 @@ #include "access/twophase.h" #include "access/xact.h" #include "access/xlog.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/namespace.h" #include "catalog/toasting.h" @@ -62,7 +63,6 @@ #include "storage/fd.h" #include "tcop/pquery.h" #include "tcop/utility.h" -#include "utils/acl.h" #include "utils/guc.h" #include "utils/syscache.h" diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index 025a99e..f168b13 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -17,6 +17,7 @@ #include <ctype.h> #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/namespace.h" #include "catalog/pg_authid.h" diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index 3167bad..711d4cc 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -16,6 +16,7 @@ #include "access/heapam.h" #include "access/htup_details.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/namespace.h" #include "catalog/pg_tablespace.h" @@ -23,7 +24,6 @@ #include "commands/tablespace.h" #include "miscadmin.h" #include "storage/fd.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/numeric.h" #include "utils/rel.h" diff --git a/src/backend/utils/adt/misc.c b/src/backend/utils/adt/misc.c index 5e705e9..6cec713 100644 --- a/src/backend/utils/adt/misc.c +++ b/src/backend/utils/adt/misc.c @@ -39,7 +39,6 @@ #include "utils/lsyscache.h" #include "utils/ruleutils.h" #include "tcop/tcopprot.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/timestamp.h" diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index b476500..df65040 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -33,6 +33,7 @@ #include "access/htup_details.h" #include "access/sysattr.h" #include "access/xact.h" +#include "catalog/aclchk.h" #include "catalog/pg_collation.h" #include "catalog/pg_constraint.h" #include "catalog/pg_operator.h" @@ -44,7 +45,6 @@ #include "parser/parse_coerce.h" #include "parser/parse_relation.h" #include "miscadmin.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" #include "utils/guc.h" diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c index ff762bb..8b3645e 100644 --- a/src/backend/utils/adt/tid.c +++ b/src/backend/utils/adt/tid.c @@ -22,12 +22,12 @@ #include "access/heapam.h" #include "access/sysattr.h" +#include "catalog/aclchk.h" #include "catalog/namespace.h" #include "catalog/pg_type.h" #include "libpq/pqformat.h" #include "miscadmin.h" #include "parser/parsetree.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/rel.h" #include "utils/snapmgr.h" diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c index 7aae350..60dcb64 100644 --- a/src/backend/utils/fmgr/fmgr.c +++ b/src/backend/utils/fmgr/fmgr.c @@ -16,6 +16,7 @@ #include "postgres.h" #include "access/tuptoaster.h" +#include "catalog/aclchk.h" #include "catalog/pg_language.h" #include "catalog/pg_proc.h" #include "executor/functions.h" @@ -24,7 +25,6 @@ #include "miscadmin.h" #include "nodes/nodeFuncs.h" #include "pgstat.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgrtab.h" #include "utils/guc.h" diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 824d5ab..5df5f42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -24,6 +24,7 @@ #include "access/sysattr.h" #include "access/xact.h" #include "access/xlog.h" +#include "catalog/aclchk.h" #include "catalog/catalog.h" #include "catalog/indexing.h" #include "catalog/namespace.h" @@ -49,7 +50,6 @@ #include "storage/sinvaladt.h" #include "storage/smgr.h" #include "tcop/tcopprot.h" -#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/guc.h" #include "utils/memutils.h" diff --git a/src/backend/utils/misc/rls.c b/src/backend/utils/misc/rls.c index c33f29e..9e16fcf 100644 --- a/src/backend/utils/misc/rls.c +++ b/src/backend/utils/misc/rls.c @@ -17,10 +17,10 @@ #include "access/htup.h" #include "access/htup_details.h" #include "access/transam.h" +#include "catalog/aclchk.h" #include "catalog/namespace.h" #include "catalog/pg_class.h" #include "miscadmin.h" -#include "utils/acl.h" #include "utils/builtins.h" #include "utils/elog.h" #include "utils/lsyscache.h" diff --git a/src/include/catalog/aclchk.h b/src/include/catalog/aclchk.h index e69de29..6207709 100644 --- a/src/include/catalog/aclchk.h +++ b/src/include/catalog/aclchk.h @@ -0,0 +1,107 @@ +/*------------------------------------------------------------------------- + * + * aclchk.h + * prototypes for functions in backend/catalog/aclchk.c + * + * + * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/catalog/aclchk.h + * + *------------------------------------------------------------------------- + */ +#ifndef ACLCHK_H +#define ACLCHK_H + +#include "nodes/parsenodes.h" +#include "utils/acl.h" +#include "utils/snapshot.h" + + +/* result codes for pg_*_aclcheck */ +typedef enum +{ + ACLCHECK_OK = 0, + ACLCHECK_NO_PRIV, + ACLCHECK_NOT_OWNER +} AclResult; + + +extern void ExecuteGrantStmt(GrantStmt *stmt); +extern void ExecAlterDefaultPrivilegesStmt(AlterDefaultPrivilegesStmt *stmt); + +extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid); +extern void RemoveDefaultACLById(Oid defaclOid); + +extern AclMode pg_attribute_aclmask(Oid table_oid, AttrNumber attnum, + Oid roleid, AclMode mask, AclMaskHow how); +extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_database_aclmask(Oid db_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_language_aclmask(Oid lang_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid, + AclMode mask, AclMaskHow how, Snapshot snapshot); +extern AclMode pg_namespace_aclmask(Oid nsp_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_tablespace_aclmask(Oid spc_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_foreign_server_aclmask(Oid srv_oid, Oid roleid, + AclMode mask, AclMaskHow how); +extern AclMode pg_type_aclmask(Oid type_oid, Oid roleid, + AclMode mask, AclMaskHow how); + +extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum, + Oid roleid, AclMode mode); +extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid, + AclMode mode, AclMaskHow how); +extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode); +extern AclResult pg_database_aclcheck(Oid db_oid, Oid roleid, AclMode mode); +extern AclResult pg_proc_aclcheck(Oid proc_oid, Oid roleid, AclMode mode); +extern AclResult pg_language_aclcheck(Oid lang_oid, Oid roleid, AclMode mode); +extern AclResult pg_largeobject_aclcheck_snapshot(Oid lang_oid, Oid roleid, + AclMode mode, Snapshot snapshot); +extern AclResult pg_namespace_aclcheck(Oid nsp_oid, Oid roleid, AclMode mode); +extern AclResult pg_tablespace_aclcheck(Oid spc_oid, Oid roleid, AclMode mode); +extern AclResult pg_foreign_data_wrapper_aclcheck(Oid fdw_oid, Oid roleid, AclMode mode); +extern AclResult pg_foreign_server_aclcheck(Oid srv_oid, Oid roleid, AclMode mode); +extern AclResult pg_type_aclcheck(Oid type_oid, Oid roleid, AclMode mode); + +extern void aclcheck_error(AclResult aclerr, AclObjectKind objectkind, + const char *objectname); + +extern void aclcheck_error_col(AclResult aclerr, AclObjectKind objectkind, + const char *objectname, const char *colname); + +extern void aclcheck_error_type(AclResult aclerr, Oid typeOid); + +/* ownercheck routines just return true (owner) or false (not) */ +extern bool pg_class_ownercheck(Oid class_oid, Oid roleid); +extern bool pg_type_ownercheck(Oid type_oid, Oid roleid); +extern bool pg_oper_ownercheck(Oid oper_oid, Oid roleid); +extern bool pg_proc_ownercheck(Oid proc_oid, Oid roleid); +extern bool pg_language_ownercheck(Oid lan_oid, Oid roleid); +extern bool pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid); +extern bool pg_namespace_ownercheck(Oid nsp_oid, Oid roleid); +extern bool pg_tablespace_ownercheck(Oid spc_oid, Oid roleid); +extern bool pg_opclass_ownercheck(Oid opc_oid, Oid roleid); +extern bool pg_opfamily_ownercheck(Oid opf_oid, Oid roleid); +extern bool pg_database_ownercheck(Oid db_oid, Oid roleid); +extern bool pg_collation_ownercheck(Oid coll_oid, Oid roleid); +extern bool pg_conversion_ownercheck(Oid conv_oid, Oid roleid); +extern bool pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid); +extern bool pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid); +extern bool pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid); +extern bool pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid); +extern bool pg_event_trigger_ownercheck(Oid et_oid, Oid roleid); +extern bool pg_extension_ownercheck(Oid ext_oid, Oid roleid); +extern bool has_createrole_privilege(Oid roleid); +extern bool has_bypassrls_privilege(Oid roleid); + +#endif /* ACLCHK_H */ diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h index 4cc49f0..2324e39 100644 --- a/src/include/utils/acl.h +++ b/src/include/utils/acl.h @@ -27,7 +27,6 @@ #include "access/htup.h" #include "nodes/parsenodes.h" #include "utils/array.h" -#include "utils/snapshot.h" /* @@ -165,14 +164,6 @@ typedef enum ACLMASK_ANY /* return when result is known nonzero */ } AclMaskHow; -/* result codes for pg_*_aclcheck */ -typedef enum -{ - ACLCHECK_OK = 0, - ACLCHECK_NO_PRIV, - ACLCHECK_NOT_OWNER -} AclResult; - /* this enum covers all object types that can have privilege errors */ /* currently it's only used to tell aclcheck_error what to say */ typedef enum AclObjectKind @@ -255,83 +246,4 @@ extern Datum hash_aclitem(PG_FUNCTION_ARGS); extern Datum acldefault_sql(PG_FUNCTION_ARGS); extern Datum aclexplode(PG_FUNCTION_ARGS); -/* - * prototypes for functions in aclchk.c - */ -extern void ExecuteGrantStmt(GrantStmt *stmt); -extern void ExecAlterDefaultPrivilegesStmt(AlterDefaultPrivilegesStmt *stmt); - -extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid); -extern void RemoveDefaultACLById(Oid defaclOid); - -extern AclMode pg_attribute_aclmask(Oid table_oid, AttrNumber attnum, - Oid roleid, AclMode mask, AclMaskHow how); -extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_database_aclmask(Oid db_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_language_aclmask(Oid lang_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid, - AclMode mask, AclMaskHow how, Snapshot snapshot); -extern AclMode pg_namespace_aclmask(Oid nsp_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_tablespace_aclmask(Oid spc_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_foreign_server_aclmask(Oid srv_oid, Oid roleid, - AclMode mask, AclMaskHow how); -extern AclMode pg_type_aclmask(Oid type_oid, Oid roleid, - AclMode mask, AclMaskHow how); - -extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum, - Oid roleid, AclMode mode); -extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid, - AclMode mode, AclMaskHow how); -extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode); -extern AclResult pg_database_aclcheck(Oid db_oid, Oid roleid, AclMode mode); -extern AclResult pg_proc_aclcheck(Oid proc_oid, Oid roleid, AclMode mode); -extern AclResult pg_language_aclcheck(Oid lang_oid, Oid roleid, AclMode mode); -extern AclResult pg_largeobject_aclcheck_snapshot(Oid lang_oid, Oid roleid, - AclMode mode, Snapshot snapshot); -extern AclResult pg_namespace_aclcheck(Oid nsp_oid, Oid roleid, AclMode mode); -extern AclResult pg_tablespace_aclcheck(Oid spc_oid, Oid roleid, AclMode mode); -extern AclResult pg_foreign_data_wrapper_aclcheck(Oid fdw_oid, Oid roleid, AclMode mode); -extern AclResult pg_foreign_server_aclcheck(Oid srv_oid, Oid roleid, AclMode mode); -extern AclResult pg_type_aclcheck(Oid type_oid, Oid roleid, AclMode mode); - -extern void aclcheck_error(AclResult aclerr, AclObjectKind objectkind, - const char *objectname); - -extern void aclcheck_error_col(AclResult aclerr, AclObjectKind objectkind, - const char *objectname, const char *colname); - -extern void aclcheck_error_type(AclResult aclerr, Oid typeOid); - -/* ownercheck routines just return true (owner) or false (not) */ -extern bool pg_class_ownercheck(Oid class_oid, Oid roleid); -extern bool pg_type_ownercheck(Oid type_oid, Oid roleid); -extern bool pg_oper_ownercheck(Oid oper_oid, Oid roleid); -extern bool pg_proc_ownercheck(Oid proc_oid, Oid roleid); -extern bool pg_language_ownercheck(Oid lan_oid, Oid roleid); -extern bool pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid); -extern bool pg_namespace_ownercheck(Oid nsp_oid, Oid roleid); -extern bool pg_tablespace_ownercheck(Oid spc_oid, Oid roleid); -extern bool pg_opclass_ownercheck(Oid opc_oid, Oid roleid); -extern bool pg_opfamily_ownercheck(Oid opf_oid, Oid roleid); -extern bool pg_database_ownercheck(Oid db_oid, Oid roleid); -extern bool pg_collation_ownercheck(Oid coll_oid, Oid roleid); -extern bool pg_conversion_ownercheck(Oid conv_oid, Oid roleid); -extern bool pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid); -extern bool pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid); -extern bool pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid); -extern bool pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid); -extern bool pg_event_trigger_ownercheck(Oid et_oid, Oid roleid); -extern bool pg_extension_ownercheck(Oid ext_oid, Oid roleid); -extern bool has_createrole_privilege(Oid roleid); -extern bool has_bypassrls_privilege(Oid roleid); - #endif /* ACL_H */
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers