aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/event_trigger.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-10-11 18:35:19 -0400
committerPeter Eisentraut <peter_e@gmx.net>2018-01-19 14:01:14 -0500
commit2c6f37ed62114bd5a092c20fe721bd11b3bcb91e (patch)
tree080292978101fbbd094f886c05b03a94c43c877c /src/backend/commands/event_trigger.c
parent42b5856038a5af6bb4ec3c09b62d9d9a3ab43172 (diff)
downloadpostgresql-2c6f37ed62114bd5a092c20fe721bd11b3bcb91e.tar.gz
postgresql-2c6f37ed62114bd5a092c20fe721bd11b3bcb91e.zip
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/backend/commands/event_trigger.c')
-rw-r--r--src/backend/commands/event_trigger.c185
1 files changed, 111 insertions, 74 deletions
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 8455138ed39..82c7b6a0ba0 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -159,8 +159,8 @@ static Oid insert_event_trigger_tuple(const char *trigname, const char *eventnam
static void validate_ddl_tags(const char *filtervar, List *taglist);
static void validate_table_rewrite_tags(const char *filtervar, List *taglist);
static void EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata);
-static const char *stringify_grantobjtype(GrantObjectType objtype);
-static const char *stringify_adefprivs_objtype(GrantObjectType objtype);
+static const char *stringify_grant_objtype(ObjectType objtype);
+static const char *stringify_adefprivs_objtype(ObjectType objtype);
/*
* Create an event trigger.
@@ -1199,41 +1199,6 @@ EventTriggerSupportsObjectClass(ObjectClass objclass)
return false;
}
-bool
-EventTriggerSupportsGrantObjectType(GrantObjectType objtype)
-{
- switch (objtype)
- {
- case ACL_OBJECT_DATABASE:
- case ACL_OBJECT_TABLESPACE:
- /* no support for global objects */
- return false;
-
- case ACL_OBJECT_COLUMN:
- case ACL_OBJECT_RELATION:
- case ACL_OBJECT_SEQUENCE:
- case ACL_OBJECT_DOMAIN:
- case ACL_OBJECT_FDW:
- case ACL_OBJECT_FOREIGN_SERVER:
- case ACL_OBJECT_FUNCTION:
- case ACL_OBJECT_LANGUAGE:
- case ACL_OBJECT_LARGEOBJECT:
- case ACL_OBJECT_NAMESPACE:
- case ACL_OBJECT_PROCEDURE:
- case ACL_OBJECT_ROUTINE:
- case ACL_OBJECT_TYPE:
- return true;
-
- /*
- * There's intentionally no default: case here; we want the
- * compiler to warn if a new ACL class hasn't been handled above.
- */
- }
-
- /* Shouldn't get here, but if we do, say "no support" */
- return false;
-}
-
/*
* Prepare event trigger state for a new complete query to run, if necessary;
* returns whether this was done. If it was, EventTriggerEndCompleteQuery must
@@ -2196,7 +2161,7 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
values[i++] = CStringGetTextDatum(cmd->d.grant.istmt->is_grant ?
"GRANT" : "REVOKE");
/* object_type */
- values[i++] = CStringGetTextDatum(stringify_grantobjtype(
+ values[i++] = CStringGetTextDatum(stringify_grant_objtype(
cmd->d.grant.istmt->objtype));
/* schema */
nulls[i++] = true;
@@ -2219,92 +2184,164 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
}
/*
- * Return the GrantObjectType as a string, as it would appear in GRANT and
+ * Return the ObjectType as a string, as it would appear in GRANT and
* REVOKE commands.
*/
static const char *
-stringify_grantobjtype(GrantObjectType objtype)
+stringify_grant_objtype(ObjectType objtype)
{
switch (objtype)
{
- case ACL_OBJECT_COLUMN:
+ case OBJECT_COLUMN:
return "COLUMN";
- case ACL_OBJECT_RELATION:
+ case OBJECT_TABLE:
return "TABLE";
- case ACL_OBJECT_SEQUENCE:
+ case OBJECT_SEQUENCE:
return "SEQUENCE";
- case ACL_OBJECT_DATABASE:
+ case OBJECT_DATABASE:
return "DATABASE";
- case ACL_OBJECT_DOMAIN:
+ case OBJECT_DOMAIN:
return "DOMAIN";
- case ACL_OBJECT_FDW:
+ case OBJECT_FDW:
return "FOREIGN DATA WRAPPER";
- case ACL_OBJECT_FOREIGN_SERVER:
+ case OBJECT_FOREIGN_SERVER:
return "FOREIGN SERVER";
- case ACL_OBJECT_FUNCTION:
+ case OBJECT_FUNCTION:
return "FUNCTION";
- case ACL_OBJECT_LANGUAGE:
+ case OBJECT_LANGUAGE:
return "LANGUAGE";
- case ACL_OBJECT_LARGEOBJECT:
+ case OBJECT_LARGEOBJECT:
return "LARGE OBJECT";
- case ACL_OBJECT_NAMESPACE:
+ case OBJECT_SCHEMA:
return "SCHEMA";
- case ACL_OBJECT_PROCEDURE:
+ case OBJECT_PROCEDURE:
return "PROCEDURE";
- case ACL_OBJECT_ROUTINE:
+ case OBJECT_ROUTINE:
return "ROUTINE";
- case ACL_OBJECT_TABLESPACE:
+ case OBJECT_TABLESPACE:
return "TABLESPACE";
- case ACL_OBJECT_TYPE:
+ case OBJECT_TYPE:
return "TYPE";
+ /* these currently aren't used */
+ case OBJECT_ACCESS_METHOD:
+ case OBJECT_AGGREGATE:
+ case OBJECT_AMOP:
+ case OBJECT_AMPROC:
+ case OBJECT_ATTRIBUTE:
+ case OBJECT_CAST:
+ case OBJECT_COLLATION:
+ case OBJECT_CONVERSION:
+ case OBJECT_DEFAULT:
+ case OBJECT_DEFACL:
+ case OBJECT_DOMCONSTRAINT:
+ case OBJECT_EVENT_TRIGGER:
+ case OBJECT_EXTENSION:
+ case OBJECT_FOREIGN_TABLE:
+ case OBJECT_INDEX:
+ case OBJECT_MATVIEW:
+ case OBJECT_OPCLASS:
+ case OBJECT_OPERATOR:
+ case OBJECT_OPFAMILY:
+ case OBJECT_POLICY:
+ case OBJECT_PUBLICATION:
+ case OBJECT_PUBLICATION_REL:
+ case OBJECT_ROLE:
+ case OBJECT_RULE:
+ case OBJECT_STATISTIC_EXT:
+ case OBJECT_SUBSCRIPTION:
+ case OBJECT_TABCONSTRAINT:
+ case OBJECT_TRANSFORM:
+ case OBJECT_TRIGGER:
+ case OBJECT_TSCONFIGURATION:
+ case OBJECT_TSDICTIONARY:
+ case OBJECT_TSPARSER:
+ case OBJECT_TSTEMPLATE:
+ case OBJECT_USER_MAPPING:
+ case OBJECT_VIEW:
+ elog(ERROR, "unsupported object type: %d", (int) objtype);
}
- elog(ERROR, "unrecognized grant object type: %d", (int) objtype);
return "???"; /* keep compiler quiet */
}
/*
- * Return the GrantObjectType as a string; as above, but use the spelling
+ * Return the ObjectType as a string; as above, but use the spelling
* in ALTER DEFAULT PRIVILEGES commands instead. Generally this is just
* the plural.
*/
static const char *
-stringify_adefprivs_objtype(GrantObjectType objtype)
+stringify_adefprivs_objtype(ObjectType objtype)
{
switch (objtype)
{
- case ACL_OBJECT_COLUMN:
+ case OBJECT_COLUMN:
return "COLUMNS";
- case ACL_OBJECT_RELATION:
+ case OBJECT_TABLE:
return "TABLES";
- case ACL_OBJECT_SEQUENCE:
+ case OBJECT_SEQUENCE:
return "SEQUENCES";
- case ACL_OBJECT_DATABASE:
+ case OBJECT_DATABASE:
return "DATABASES";
- case ACL_OBJECT_DOMAIN:
+ case OBJECT_DOMAIN:
return "DOMAINS";
- case ACL_OBJECT_FDW:
+ case OBJECT_FDW:
return "FOREIGN DATA WRAPPERS";
- case ACL_OBJECT_FOREIGN_SERVER:
+ case OBJECT_FOREIGN_SERVER:
return "FOREIGN SERVERS";
- case ACL_OBJECT_FUNCTION:
+ case OBJECT_FUNCTION:
return "FUNCTIONS";
- case ACL_OBJECT_LANGUAGE:
+ case OBJECT_LANGUAGE:
return "LANGUAGES";
- case ACL_OBJECT_LARGEOBJECT:
+ case OBJECT_LARGEOBJECT:
return "LARGE OBJECTS";
- case ACL_OBJECT_NAMESPACE:
+ case OBJECT_SCHEMA:
return "SCHEMAS";
- case ACL_OBJECT_PROCEDURE:
+ case OBJECT_PROCEDURE:
return "PROCEDURES";
- case ACL_OBJECT_ROUTINE:
+ case OBJECT_ROUTINE:
return "ROUTINES";
- case ACL_OBJECT_TABLESPACE:
+ case OBJECT_TABLESPACE:
return "TABLESPACES";
- case ACL_OBJECT_TYPE:
+ case OBJECT_TYPE:
return "TYPES";
+ /* these currently aren't used */
+ case OBJECT_ACCESS_METHOD:
+ case OBJECT_AGGREGATE:
+ case OBJECT_AMOP:
+ case OBJECT_AMPROC:
+ case OBJECT_ATTRIBUTE:
+ case OBJECT_CAST:
+ case OBJECT_COLLATION:
+ case OBJECT_CONVERSION:
+ case OBJECT_DEFAULT:
+ case OBJECT_DEFACL:
+ case OBJECT_DOMCONSTRAINT:
+ case OBJECT_EVENT_TRIGGER:
+ case OBJECT_EXTENSION:
+ case OBJECT_FOREIGN_TABLE:
+ case OBJECT_INDEX:
+ case OBJECT_MATVIEW:
+ case OBJECT_OPCLASS:
+ case OBJECT_OPERATOR:
+ case OBJECT_OPFAMILY:
+ case OBJECT_POLICY:
+ case OBJECT_PUBLICATION:
+ case OBJECT_PUBLICATION_REL:
+ case OBJECT_ROLE:
+ case OBJECT_RULE:
+ case OBJECT_STATISTIC_EXT:
+ case OBJECT_SUBSCRIPTION:
+ case OBJECT_TABCONSTRAINT:
+ case OBJECT_TRANSFORM:
+ case OBJECT_TRIGGER:
+ case OBJECT_TSCONFIGURATION:
+ case OBJECT_TSDICTIONARY:
+ case OBJECT_TSPARSER:
+ case OBJECT_TSTEMPLATE:
+ case OBJECT_USER_MAPPING:
+ case OBJECT_VIEW:
+ elog(ERROR, "unsupported object type: %d", (int) objtype);
}
- elog(ERROR, "unrecognized grant object type: %d", (int) objtype);
return "???"; /* keep compiler quiet */
}