Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2c6f37e

Browse files
committed
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 b256f24. 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 <[email protected]> Reviewed-by: Stephen Frost <[email protected]>
1 parent 42b5856 commit 2c6f37e

File tree

14 files changed

+302
-285
lines changed

14 files changed

+302
-285
lines changed

src/backend/catalog/aclchk.c

+122-122
Large diffs are not rendered by default.

src/backend/catalog/heap.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -1143,11 +1143,11 @@ heap_create_with_catalog(const char *relname,
11431143
case RELKIND_MATVIEW:
11441144
case RELKIND_FOREIGN_TABLE:
11451145
case RELKIND_PARTITIONED_TABLE:
1146-
relacl = get_user_default_acl(ACL_OBJECT_RELATION, ownerid,
1146+
relacl = get_user_default_acl(OBJECT_TABLE, ownerid,
11471147
relnamespace);
11481148
break;
11491149
case RELKIND_SEQUENCE:
1150-
relacl = get_user_default_acl(ACL_OBJECT_SEQUENCE, ownerid,
1150+
relacl = get_user_default_acl(OBJECT_SEQUENCE, ownerid,
11511151
relnamespace);
11521152
break;
11531153
default:

src/backend/catalog/pg_namespace.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp)
6363
errmsg("schema \"%s\" already exists", nspName)));
6464

6565
if (!isTemp)
66-
nspacl = get_user_default_acl(ACL_OBJECT_NAMESPACE, ownerId,
66+
nspacl = get_user_default_acl(OBJECT_SCHEMA, ownerId,
6767
InvalidOid);
6868
else
6969
nspacl = NULL;

src/backend/catalog/pg_proc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ ProcedureCreate(const char *procedureName,
582582
/* Creating a new procedure */
583583

584584
/* First, get default permissions and set up proacl */
585-
proacl = get_user_default_acl(ACL_OBJECT_FUNCTION, proowner,
585+
proacl = get_user_default_acl(OBJECT_FUNCTION, proowner,
586586
procNamespace);
587587
if (proacl != NULL)
588588
values[Anum_pg_proc_proacl - 1] = PointerGetDatum(proacl);

src/backend/catalog/pg_type.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ TypeCreate(Oid newTypeOid,
380380
else
381381
nulls[Anum_pg_type_typdefault - 1] = true;
382382

383-
typacl = get_user_default_acl(ACL_OBJECT_TYPE, ownerId,
383+
typacl = get_user_default_acl(OBJECT_TYPE, ownerId,
384384
typeNamespace);
385385
if (typacl != NULL)
386386
values[Anum_pg_type_typacl - 1] = PointerGetDatum(typacl);

src/backend/commands/event_trigger.c

+111-74
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,8 @@ static Oid insert_event_trigger_tuple(const char *trigname, const char *eventnam
159159
static void validate_ddl_tags(const char *filtervar, List *taglist);
160160
static void validate_table_rewrite_tags(const char *filtervar, List *taglist);
161161
static void EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata);
162-
static const char *stringify_grantobjtype(GrantObjectType objtype);
163-
static const char *stringify_adefprivs_objtype(GrantObjectType objtype);
162+
static const char *stringify_grant_objtype(ObjectType objtype);
163+
static const char *stringify_adefprivs_objtype(ObjectType objtype);
164164

165165
/*
166166
* Create an event trigger.
@@ -1199,41 +1199,6 @@ EventTriggerSupportsObjectClass(ObjectClass objclass)
11991199
return false;
12001200
}
12011201

1202-
bool
1203-
EventTriggerSupportsGrantObjectType(GrantObjectType objtype)
1204-
{
1205-
switch (objtype)
1206-
{
1207-
case ACL_OBJECT_DATABASE:
1208-
case ACL_OBJECT_TABLESPACE:
1209-
/* no support for global objects */
1210-
return false;
1211-
1212-
case ACL_OBJECT_COLUMN:
1213-
case ACL_OBJECT_RELATION:
1214-
case ACL_OBJECT_SEQUENCE:
1215-
case ACL_OBJECT_DOMAIN:
1216-
case ACL_OBJECT_FDW:
1217-
case ACL_OBJECT_FOREIGN_SERVER:
1218-
case ACL_OBJECT_FUNCTION:
1219-
case ACL_OBJECT_LANGUAGE:
1220-
case ACL_OBJECT_LARGEOBJECT:
1221-
case ACL_OBJECT_NAMESPACE:
1222-
case ACL_OBJECT_PROCEDURE:
1223-
case ACL_OBJECT_ROUTINE:
1224-
case ACL_OBJECT_TYPE:
1225-
return true;
1226-
1227-
/*
1228-
* There's intentionally no default: case here; we want the
1229-
* compiler to warn if a new ACL class hasn't been handled above.
1230-
*/
1231-
}
1232-
1233-
/* Shouldn't get here, but if we do, say "no support" */
1234-
return false;
1235-
}
1236-
12371202
/*
12381203
* Prepare event trigger state for a new complete query to run, if necessary;
12391204
* returns whether this was done. If it was, EventTriggerEndCompleteQuery must
@@ -2196,7 +2161,7 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
21962161
values[i++] = CStringGetTextDatum(cmd->d.grant.istmt->is_grant ?
21972162
"GRANT" : "REVOKE");
21982163
/* object_type */
2199-
values[i++] = CStringGetTextDatum(stringify_grantobjtype(
2164+
values[i++] = CStringGetTextDatum(stringify_grant_objtype(
22002165
cmd->d.grant.istmt->objtype));
22012166
/* schema */
22022167
nulls[i++] = true;
@@ -2219,92 +2184,164 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
22192184
}
22202185

22212186
/*
2222-
* Return the GrantObjectType as a string, as it would appear in GRANT and
2187+
* Return the ObjectType as a string, as it would appear in GRANT and
22232188
* REVOKE commands.
22242189
*/
22252190
static const char *
2226-
stringify_grantobjtype(GrantObjectType objtype)
2191+
stringify_grant_objtype(ObjectType objtype)
22272192
{
22282193
switch (objtype)
22292194
{
2230-
case ACL_OBJECT_COLUMN:
2195+
case OBJECT_COLUMN:
22312196
return "COLUMN";
2232-
case ACL_OBJECT_RELATION:
2197+
case OBJECT_TABLE:
22332198
return "TABLE";
2234-
case ACL_OBJECT_SEQUENCE:
2199+
case OBJECT_SEQUENCE:
22352200
return "SEQUENCE";
2236-
case ACL_OBJECT_DATABASE:
2201+
case OBJECT_DATABASE:
22372202
return "DATABASE";
2238-
case ACL_OBJECT_DOMAIN:
2203+
case OBJECT_DOMAIN:
22392204
return "DOMAIN";
2240-
case ACL_OBJECT_FDW:
2205+
case OBJECT_FDW:
22412206
return "FOREIGN DATA WRAPPER";
2242-
case ACL_OBJECT_FOREIGN_SERVER:
2207+
case OBJECT_FOREIGN_SERVER:
22432208
return "FOREIGN SERVER";
2244-
case ACL_OBJECT_FUNCTION:
2209+
case OBJECT_FUNCTION:
22452210
return "FUNCTION";
2246-
case ACL_OBJECT_LANGUAGE:
2211+
case OBJECT_LANGUAGE:
22472212
return "LANGUAGE";
2248-
case ACL_OBJECT_LARGEOBJECT:
2213+
case OBJECT_LARGEOBJECT:
22492214
return "LARGE OBJECT";
2250-
case ACL_OBJECT_NAMESPACE:
2215+
case OBJECT_SCHEMA:
22512216
return "SCHEMA";
2252-
case ACL_OBJECT_PROCEDURE:
2217+
case OBJECT_PROCEDURE:
22532218
return "PROCEDURE";
2254-
case ACL_OBJECT_ROUTINE:
2219+
case OBJECT_ROUTINE:
22552220
return "ROUTINE";
2256-
case ACL_OBJECT_TABLESPACE:
2221+
case OBJECT_TABLESPACE:
22572222
return "TABLESPACE";
2258-
case ACL_OBJECT_TYPE:
2223+
case OBJECT_TYPE:
22592224
return "TYPE";
2225+
/* these currently aren't used */
2226+
case OBJECT_ACCESS_METHOD:
2227+
case OBJECT_AGGREGATE:
2228+
case OBJECT_AMOP:
2229+
case OBJECT_AMPROC:
2230+
case OBJECT_ATTRIBUTE:
2231+
case OBJECT_CAST:
2232+
case OBJECT_COLLATION:
2233+
case OBJECT_CONVERSION:
2234+
case OBJECT_DEFAULT:
2235+
case OBJECT_DEFACL:
2236+
case OBJECT_DOMCONSTRAINT:
2237+
case OBJECT_EVENT_TRIGGER:
2238+
case OBJECT_EXTENSION:
2239+
case OBJECT_FOREIGN_TABLE:
2240+
case OBJECT_INDEX:
2241+
case OBJECT_MATVIEW:
2242+
case OBJECT_OPCLASS:
2243+
case OBJECT_OPERATOR:
2244+
case OBJECT_OPFAMILY:
2245+
case OBJECT_POLICY:
2246+
case OBJECT_PUBLICATION:
2247+
case OBJECT_PUBLICATION_REL:
2248+
case OBJECT_ROLE:
2249+
case OBJECT_RULE:
2250+
case OBJECT_STATISTIC_EXT:
2251+
case OBJECT_SUBSCRIPTION:
2252+
case OBJECT_TABCONSTRAINT:
2253+
case OBJECT_TRANSFORM:
2254+
case OBJECT_TRIGGER:
2255+
case OBJECT_TSCONFIGURATION:
2256+
case OBJECT_TSDICTIONARY:
2257+
case OBJECT_TSPARSER:
2258+
case OBJECT_TSTEMPLATE:
2259+
case OBJECT_USER_MAPPING:
2260+
case OBJECT_VIEW:
2261+
elog(ERROR, "unsupported object type: %d", (int) objtype);
22602262
}
22612263

2262-
elog(ERROR, "unrecognized grant object type: %d", (int) objtype);
22632264
return "???"; /* keep compiler quiet */
22642265
}
22652266

22662267
/*
2267-
* Return the GrantObjectType as a string; as above, but use the spelling
2268+
* Return the ObjectType as a string; as above, but use the spelling
22682269
* in ALTER DEFAULT PRIVILEGES commands instead. Generally this is just
22692270
* the plural.
22702271
*/
22712272
static const char *
2272-
stringify_adefprivs_objtype(GrantObjectType objtype)
2273+
stringify_adefprivs_objtype(ObjectType objtype)
22732274
{
22742275
switch (objtype)
22752276
{
2276-
case ACL_OBJECT_COLUMN:
2277+
case OBJECT_COLUMN:
22772278
return "COLUMNS";
2278-
case ACL_OBJECT_RELATION:
2279+
case OBJECT_TABLE:
22792280
return "TABLES";
2280-
case ACL_OBJECT_SEQUENCE:
2281+
case OBJECT_SEQUENCE:
22812282
return "SEQUENCES";
2282-
case ACL_OBJECT_DATABASE:
2283+
case OBJECT_DATABASE:
22832284
return "DATABASES";
2284-
case ACL_OBJECT_DOMAIN:
2285+
case OBJECT_DOMAIN:
22852286
return "DOMAINS";
2286-
case ACL_OBJECT_FDW:
2287+
case OBJECT_FDW:
22872288
return "FOREIGN DATA WRAPPERS";
2288-
case ACL_OBJECT_FOREIGN_SERVER:
2289+
case OBJECT_FOREIGN_SERVER:
22892290
return "FOREIGN SERVERS";
2290-
case ACL_OBJECT_FUNCTION:
2291+
case OBJECT_FUNCTION:
22912292
return "FUNCTIONS";
2292-
case ACL_OBJECT_LANGUAGE:
2293+
case OBJECT_LANGUAGE:
22932294
return "LANGUAGES";
2294-
case ACL_OBJECT_LARGEOBJECT:
2295+
case OBJECT_LARGEOBJECT:
22952296
return "LARGE OBJECTS";
2296-
case ACL_OBJECT_NAMESPACE:
2297+
case OBJECT_SCHEMA:
22972298
return "SCHEMAS";
2298-
case ACL_OBJECT_PROCEDURE:
2299+
case OBJECT_PROCEDURE:
22992300
return "PROCEDURES";
2300-
case ACL_OBJECT_ROUTINE:
2301+
case OBJECT_ROUTINE:
23012302
return "ROUTINES";
2302-
case ACL_OBJECT_TABLESPACE:
2303+
case OBJECT_TABLESPACE:
23032304
return "TABLESPACES";
2304-
case ACL_OBJECT_TYPE:
2305+
case OBJECT_TYPE:
23052306
return "TYPES";
2307+
/* these currently aren't used */
2308+
case OBJECT_ACCESS_METHOD:
2309+
case OBJECT_AGGREGATE:
2310+
case OBJECT_AMOP:
2311+
case OBJECT_AMPROC:
2312+
case OBJECT_ATTRIBUTE:
2313+
case OBJECT_CAST:
2314+
case OBJECT_COLLATION:
2315+
case OBJECT_CONVERSION:
2316+
case OBJECT_DEFAULT:
2317+
case OBJECT_DEFACL:
2318+
case OBJECT_DOMCONSTRAINT:
2319+
case OBJECT_EVENT_TRIGGER:
2320+
case OBJECT_EXTENSION:
2321+
case OBJECT_FOREIGN_TABLE:
2322+
case OBJECT_INDEX:
2323+
case OBJECT_MATVIEW:
2324+
case OBJECT_OPCLASS:
2325+
case OBJECT_OPERATOR:
2326+
case OBJECT_OPFAMILY:
2327+
case OBJECT_POLICY:
2328+
case OBJECT_PUBLICATION:
2329+
case OBJECT_PUBLICATION_REL:
2330+
case OBJECT_ROLE:
2331+
case OBJECT_RULE:
2332+
case OBJECT_STATISTIC_EXT:
2333+
case OBJECT_SUBSCRIPTION:
2334+
case OBJECT_TABCONSTRAINT:
2335+
case OBJECT_TRANSFORM:
2336+
case OBJECT_TRIGGER:
2337+
case OBJECT_TSCONFIGURATION:
2338+
case OBJECT_TSDICTIONARY:
2339+
case OBJECT_TSPARSER:
2340+
case OBJECT_TSTEMPLATE:
2341+
case OBJECT_USER_MAPPING:
2342+
case OBJECT_VIEW:
2343+
elog(ERROR, "unsupported object type: %d", (int) objtype);
23062344
}
23072345

2308-
elog(ERROR, "unrecognized grant object type: %d", (int) objtype);
23092346
return "???"; /* keep compiler quiet */
23102347
}

0 commit comments

Comments
 (0)