codekingpro/portable-devtools
114k
1/*-------------------------------------------------------------------------2 *3 * aclchk_internal.h4 *5 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group6 * Portions Copyright (c) 1994, Regents of the University of California7 *8 * src/include/utils/aclchk_internal.h9 *10 *-------------------------------------------------------------------------11 */12#ifndef ACLCHK_INTERNAL_H13#define ACLCHK_INTERNAL_H14 15#include "nodes/parsenodes.h"16#include "nodes/pg_list.h"17 18/*19 * The information about one Grant/Revoke statement, in internal format: object20 * and grantees names have been turned into Oids, the privilege list is an21 * AclMode bitmask. If 'privileges' is ACL_NO_RIGHTS (the 0 value) and22 * all_privs is true, 'privileges' will be internally set to the right kind of23 * ACL_ALL_RIGHTS_*, depending on the object type (NB - this will modify the24 * InternalGrant struct!)25 *26 * Note: 'all_privs' and 'privileges' represent object-level privileges only.27 * There might also be column-level privilege specifications, which are28 * represented in col_privs (this is a list of untransformed AccessPriv nodes).29 * Column privileges are only valid for objtype OBJECT_TABLE.30 */31typedef struct32{33 bool is_grant;34 ObjectType 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 */46 