mirror of
https://github.com/postgres/postgres.git
synced 2026-01-13 12:22:55 +03:00
Refactor some bits in aclchk.c in order to reduce code duplication.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/utils/acl.h,v 1.90 2005/11/22 18:17:31 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/utils/acl.h,v 1.91 2005/12/01 02:03:01 alvherre Exp $
|
||||
*
|
||||
* NOTES
|
||||
* An ACL array is simply an array of AclItems, representing the union
|
||||
@@ -181,6 +181,26 @@ typedef enum AclObjectKind
|
||||
MAX_ACL_KIND /* MUST BE LAST */
|
||||
} AclObjectKind;
|
||||
|
||||
/*
|
||||
* 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, it will be internally turned into the right kind of
|
||||
* ACL_ALL_RIGHTS_*, depending on the object type (NB - this will modify the
|
||||
* InternalGrant struct!)
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
bool is_grant;
|
||||
GrantObjectType objtype;
|
||||
List *objects;
|
||||
bool all_privs;
|
||||
AclMode privileges;
|
||||
List *grantees;
|
||||
bool grant_option;
|
||||
DropBehavior behavior;
|
||||
} InternalGrant;
|
||||
|
||||
/*
|
||||
* routines used internally
|
||||
*/
|
||||
@@ -221,9 +241,7 @@ extern Datum hash_aclitem(PG_FUNCTION_ARGS);
|
||||
* prototypes for functions in aclchk.c
|
||||
*/
|
||||
extern void ExecuteGrantStmt(GrantStmt *stmt);
|
||||
extern void ExecGrantStmt_oids(bool is_grant, GrantObjectType objtype,
|
||||
List *objects, bool all_privs, AclMode privileges,
|
||||
List *grantees, bool grant_option, DropBehavior behavior);
|
||||
extern void ExecGrantStmt_oids(InternalGrant *istmt);
|
||||
|
||||
extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid,
|
||||
AclMode mask, AclMaskHow how);
|
||||
|
||||
Reference in New Issue
Block a user