summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorPeter Eisentraut2017-10-11 22:35:19 +0000
committerPeter Eisentraut2018-01-19 19:01:14 +0000
commit2c6f37ed62114bd5a092c20fe721bd11b3bcb91e (patch)
tree080292978101fbbd094f886c05b03a94c43c877c /src/include
parent42b5856038a5af6bb4ec3c09b62d9d9a3ab43172 (diff)
Replace GrantObjectType with ObjectType
There used to be a lot of different *Type and *Kind symbol groups to address objects within different commands, most of which have been replaced by ObjectType, starting with b256f2426433c56b4bea3a8102757749885b81ba. But this conversion was never done for the ACL commands until now. This change ends up being just a plain replacement of the types and symbols, without any code restructuring needed, except deleting some now redundant code. Reviewed-by: Michael Paquier <michael.paquier@gmail.com> Reviewed-by: Stephen Frost <sfrost@snowman.net>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/commands/event_trigger.h1
-rw-r--r--src/include/nodes/parsenodes.h21
-rw-r--r--src/include/tcop/deparse_utility.h2
-rw-r--r--src/include/utils/acl.h6
-rw-r--r--src/include/utils/aclchk_internal.h4
5 files changed, 7 insertions, 27 deletions
diff --git a/src/include/commands/event_trigger.h b/src/include/commands/event_trigger.h
index 8e4142391dd..0e1959462eb 100644
--- a/src/include/commands/event_trigger.h
+++ b/src/include/commands/event_trigger.h
@@ -50,7 +50,6 @@ extern void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId);
extern bool EventTriggerSupportsObjectType(ObjectType obtype);
extern bool EventTriggerSupportsObjectClass(ObjectClass objclass);
-extern bool EventTriggerSupportsGrantObjectType(GrantObjectType objtype);
extern void EventTriggerDDLCommandStart(Node *parsetree);
extern void EventTriggerDDLCommandEnd(Node *parsetree);
extern void EventTriggerSQLDrop(Node *parsetree);
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 0296784726f..93122adae85 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -1845,31 +1845,12 @@ typedef enum GrantTargetType
ACL_TARGET_DEFAULTS /* ALTER DEFAULT PRIVILEGES */
} GrantTargetType;
-typedef enum GrantObjectType
-{
- ACL_OBJECT_COLUMN, /* column */
- ACL_OBJECT_RELATION, /* table, view */
- ACL_OBJECT_SEQUENCE, /* sequence */
- ACL_OBJECT_DATABASE, /* database */
- ACL_OBJECT_DOMAIN, /* domain */
- ACL_OBJECT_FDW, /* foreign-data wrapper */
- ACL_OBJECT_FOREIGN_SERVER, /* foreign server */
- ACL_OBJECT_FUNCTION, /* function */
- ACL_OBJECT_LANGUAGE, /* procedural language */
- ACL_OBJECT_LARGEOBJECT, /* largeobject */
- ACL_OBJECT_NAMESPACE, /* namespace */
- ACL_OBJECT_PROCEDURE, /* procedure */
- ACL_OBJECT_ROUTINE, /* routine */
- ACL_OBJECT_TABLESPACE, /* tablespace */
- ACL_OBJECT_TYPE /* type */
-} GrantObjectType;
-
typedef struct GrantStmt
{
NodeTag type;
bool is_grant; /* true = GRANT, false = REVOKE */
GrantTargetType targtype; /* type of the grant target */
- GrantObjectType objtype; /* kind of object being operated on */
+ ObjectType objtype; /* kind of object being operated on */
List *objects; /* list of RangeVar nodes, ObjectWithArgs
* nodes, or plain names (as Value strings) */
List *privileges; /* list of AccessPriv nodes */
diff --git a/src/include/tcop/deparse_utility.h b/src/include/tcop/deparse_utility.h
index 9b78748bfd0..8459463391a 100644
--- a/src/include/tcop/deparse_utility.h
+++ b/src/include/tcop/deparse_utility.h
@@ -97,7 +97,7 @@ typedef struct CollectedCommand
/* ALTER DEFAULT PRIVILEGES */
struct
{
- GrantObjectType objtype;
+ ObjectType objtype;
} defprivs;
} d;
} CollectedCommand;
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h
index 67c7b2d4acc..7db1606b8f0 100644
--- a/src/include/utils/acl.h
+++ b/src/include/utils/acl.h
@@ -163,7 +163,7 @@ typedef ArrayType Acl;
#define ACL_ALL_RIGHTS_FUNCTION (ACL_EXECUTE)
#define ACL_ALL_RIGHTS_LANGUAGE (ACL_USAGE)
#define ACL_ALL_RIGHTS_LARGEOBJECT (ACL_SELECT|ACL_UPDATE)
-#define ACL_ALL_RIGHTS_NAMESPACE (ACL_USAGE|ACL_CREATE)
+#define ACL_ALL_RIGHTS_SCHEMA (ACL_USAGE|ACL_CREATE)
#define ACL_ALL_RIGHTS_TABLESPACE (ACL_CREATE)
#define ACL_ALL_RIGHTS_TYPE (ACL_USAGE)
@@ -217,8 +217,8 @@ typedef enum AclObjectKind
/*
* routines used internally
*/
-extern Acl *acldefault(GrantObjectType objtype, Oid ownerId);
-extern Acl *get_user_default_acl(GrantObjectType objtype, Oid ownerId,
+extern Acl *acldefault(ObjectType objtype, Oid ownerId);
+extern Acl *get_user_default_acl(ObjectType objtype, Oid ownerId,
Oid nsp_oid);
extern Acl *aclupdate(const Acl *old_acl, const AclItem *mod_aip,
diff --git a/src/include/utils/aclchk_internal.h b/src/include/utils/aclchk_internal.h
index 1843f50b5a0..f7c44fcd4ba 100644
--- a/src/include/utils/aclchk_internal.h
+++ b/src/include/utils/aclchk_internal.h
@@ -26,12 +26,12 @@
* 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 ACL_OBJECT_RELATION.
+ * Column privileges are only valid for objtype OBJECT_TABLE.
*/
typedef struct
{
bool is_grant;
- GrantObjectType objtype;
+ ObjectType objtype;
List *objects;
bool all_privs;
AclMode privileges;