| /*------------------------------------------------------------------------- |
| * |
| * aclchk_internal.h |
| * |
| * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * src/include/utils/aclchk_internal.h |
| * |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef ACLCHK_INTERNAL_H |
| #define ACLCHK_INTERNAL_H |
| |
| #include "nodes/parsenodes.h" |
| #include "nodes/pg_list.h" |
| |
| /* |
| * The information about one Grant/Revoke statement, in internal format: object |
| * and grantees names have been turned into Oids, the privilege list is an |
| * AclMode bitmask. If 'privileges' is ACL_NO_RIGHTS (the 0 value) and |
| * all_privs is true, 'privileges' will be internally set to the right kind of |
| * ACL_ALL_RIGHTS_*, depending on the object type (NB - this will modify the |
| * InternalGrant struct!) |
| * |
| * Note: 'all_privs' and 'privileges' represent object-level privileges only. |
| * There might also be column-level privilege specifications, which are |
| * represented in col_privs (this is a list of untransformed AccessPriv nodes). |
| * Column privileges are only valid for objtype OBJECT_TABLE. |
| */ |
| typedef struct |
| { |
| bool is_grant; |
| ObjectType objtype; |
| List *objects; |
| bool all_privs; |
| AclMode privileges; |
| List *col_privs; |
| List *grantees; |
| bool grant_option; |
| DropBehavior behavior; |
| } InternalGrant; |
| |
| |
| #endif /* ACLCHK_INTERNAL_H */ |