]> granicus.if.org Git - postgresql/blob - src/include/utils/aclchk_internal.h
Phase 2 of pgindent updates.
[postgresql] / src / include / utils / aclchk_internal.h
1 /*-------------------------------------------------------------------------
2  *
3  * aclchk_internal.h
4  *
5  * Portions Copyright (c) 1996-2017, 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 ACL_OBJECT_RELATION.
30  */
31 typedef struct
32 {
33         bool            is_grant;
34         GrantObjectType objtype;
35         List       *objects;
36         bool            all_privs;
37         AclMode         privileges;
38         List       *col_privs;
39         List       *grantees;
40         bool            grant_option;
41         DropBehavior behavior;
42 } InternalGrant;
43
44
45 #endif                                                  /* ACLCHK_INTERNAL_H */