PostgreSQL Source Code  git master
aclchk_internal.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * aclchk_internal.h
4  *
5  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
6  * Portions Copyright (c) 1994, Regents of the University of California
7  *
8  * src/include/utils/aclchk_internal.h
9  *
10  *-------------------------------------------------------------------------
11  */
12 #ifndef ACLCHK_INTERNAL_H
13 #define ACLCHK_INTERNAL_H
14 
15 #include "nodes/parsenodes.h"
16 #include "nodes/pg_list.h"
17 
18 /*
19  * The information about one Grant/Revoke statement, in internal format: object
20  * and grantees names have been turned into Oids, the privilege list is an
21  * AclMode bitmask. If 'privileges' is ACL_NO_RIGHTS (the 0 value) and
22  * all_privs is true, 'privileges' will be internally set to the right kind of
23  * ACL_ALL_RIGHTS_*, depending on the object type (NB - this will modify the
24  * InternalGrant struct!)
25  *
26  * Note: 'all_privs' and 'privileges' represent object-level privileges only.
27  * There might also be column-level privilege specifications, which are
28  * represented in col_privs (this is a list of untransformed AccessPriv nodes).
29  * Column privileges are only valid for objtype OBJECT_TABLE.
30  */
31 typedef struct
32 {
33  bool is_grant;
36  bool all_privs;
43 
44 
45 #endif /* ACLCHK_INTERNAL_H */
uint64 AclMode
Definition: parsenodes.h:74
DropBehavior
Definition: parsenodes.h:2181
ObjectType
Definition: parsenodes.h:2108
DropBehavior behavior
AclMode privileges
ObjectType objtype
Definition: pg_list.h:54