@@ -159,8 +159,8 @@ static Oid insert_event_trigger_tuple(const char *trigname, const char *eventnam
159
159
static void validate_ddl_tags (const char * filtervar , List * taglist );
160
160
static void validate_table_rewrite_tags (const char * filtervar , List * taglist );
161
161
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 );
164
164
165
165
/*
166
166
* Create an event trigger.
@@ -1199,41 +1199,6 @@ EventTriggerSupportsObjectClass(ObjectClass objclass)
1199
1199
return false;
1200
1200
}
1201
1201
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
-
1237
1202
/*
1238
1203
* Prepare event trigger state for a new complete query to run, if necessary;
1239
1204
* returns whether this was done. If it was, EventTriggerEndCompleteQuery must
@@ -2196,7 +2161,7 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
2196
2161
values [i ++ ] = CStringGetTextDatum (cmd -> d .grant .istmt -> is_grant ?
2197
2162
"GRANT" : "REVOKE" );
2198
2163
/* object_type */
2199
- values [i ++ ] = CStringGetTextDatum (stringify_grantobjtype (
2164
+ values [i ++ ] = CStringGetTextDatum (stringify_grant_objtype (
2200
2165
cmd -> d .grant .istmt -> objtype ));
2201
2166
/* schema */
2202
2167
nulls [i ++ ] = true;
@@ -2219,92 +2184,164 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
2219
2184
}
2220
2185
2221
2186
/*
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
2223
2188
* REVOKE commands.
2224
2189
*/
2225
2190
static const char *
2226
- stringify_grantobjtype ( GrantObjectType objtype )
2191
+ stringify_grant_objtype ( ObjectType objtype )
2227
2192
{
2228
2193
switch (objtype )
2229
2194
{
2230
- case ACL_OBJECT_COLUMN :
2195
+ case OBJECT_COLUMN :
2231
2196
return "COLUMN" ;
2232
- case ACL_OBJECT_RELATION :
2197
+ case OBJECT_TABLE :
2233
2198
return "TABLE" ;
2234
- case ACL_OBJECT_SEQUENCE :
2199
+ case OBJECT_SEQUENCE :
2235
2200
return "SEQUENCE" ;
2236
- case ACL_OBJECT_DATABASE :
2201
+ case OBJECT_DATABASE :
2237
2202
return "DATABASE" ;
2238
- case ACL_OBJECT_DOMAIN :
2203
+ case OBJECT_DOMAIN :
2239
2204
return "DOMAIN" ;
2240
- case ACL_OBJECT_FDW :
2205
+ case OBJECT_FDW :
2241
2206
return "FOREIGN DATA WRAPPER" ;
2242
- case ACL_OBJECT_FOREIGN_SERVER :
2207
+ case OBJECT_FOREIGN_SERVER :
2243
2208
return "FOREIGN SERVER" ;
2244
- case ACL_OBJECT_FUNCTION :
2209
+ case OBJECT_FUNCTION :
2245
2210
return "FUNCTION" ;
2246
- case ACL_OBJECT_LANGUAGE :
2211
+ case OBJECT_LANGUAGE :
2247
2212
return "LANGUAGE" ;
2248
- case ACL_OBJECT_LARGEOBJECT :
2213
+ case OBJECT_LARGEOBJECT :
2249
2214
return "LARGE OBJECT" ;
2250
- case ACL_OBJECT_NAMESPACE :
2215
+ case OBJECT_SCHEMA :
2251
2216
return "SCHEMA" ;
2252
- case ACL_OBJECT_PROCEDURE :
2217
+ case OBJECT_PROCEDURE :
2253
2218
return "PROCEDURE" ;
2254
- case ACL_OBJECT_ROUTINE :
2219
+ case OBJECT_ROUTINE :
2255
2220
return "ROUTINE" ;
2256
- case ACL_OBJECT_TABLESPACE :
2221
+ case OBJECT_TABLESPACE :
2257
2222
return "TABLESPACE" ;
2258
- case ACL_OBJECT_TYPE :
2223
+ case OBJECT_TYPE :
2259
2224
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 );
2260
2262
}
2261
2263
2262
- elog (ERROR , "unrecognized grant object type: %d" , (int ) objtype );
2263
2264
return "???" ; /* keep compiler quiet */
2264
2265
}
2265
2266
2266
2267
/*
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
2268
2269
* in ALTER DEFAULT PRIVILEGES commands instead. Generally this is just
2269
2270
* the plural.
2270
2271
*/
2271
2272
static const char *
2272
- stringify_adefprivs_objtype (GrantObjectType objtype )
2273
+ stringify_adefprivs_objtype (ObjectType objtype )
2273
2274
{
2274
2275
switch (objtype )
2275
2276
{
2276
- case ACL_OBJECT_COLUMN :
2277
+ case OBJECT_COLUMN :
2277
2278
return "COLUMNS" ;
2278
- case ACL_OBJECT_RELATION :
2279
+ case OBJECT_TABLE :
2279
2280
return "TABLES" ;
2280
- case ACL_OBJECT_SEQUENCE :
2281
+ case OBJECT_SEQUENCE :
2281
2282
return "SEQUENCES" ;
2282
- case ACL_OBJECT_DATABASE :
2283
+ case OBJECT_DATABASE :
2283
2284
return "DATABASES" ;
2284
- case ACL_OBJECT_DOMAIN :
2285
+ case OBJECT_DOMAIN :
2285
2286
return "DOMAINS" ;
2286
- case ACL_OBJECT_FDW :
2287
+ case OBJECT_FDW :
2287
2288
return "FOREIGN DATA WRAPPERS" ;
2288
- case ACL_OBJECT_FOREIGN_SERVER :
2289
+ case OBJECT_FOREIGN_SERVER :
2289
2290
return "FOREIGN SERVERS" ;
2290
- case ACL_OBJECT_FUNCTION :
2291
+ case OBJECT_FUNCTION :
2291
2292
return "FUNCTIONS" ;
2292
- case ACL_OBJECT_LANGUAGE :
2293
+ case OBJECT_LANGUAGE :
2293
2294
return "LANGUAGES" ;
2294
- case ACL_OBJECT_LARGEOBJECT :
2295
+ case OBJECT_LARGEOBJECT :
2295
2296
return "LARGE OBJECTS" ;
2296
- case ACL_OBJECT_NAMESPACE :
2297
+ case OBJECT_SCHEMA :
2297
2298
return "SCHEMAS" ;
2298
- case ACL_OBJECT_PROCEDURE :
2299
+ case OBJECT_PROCEDURE :
2299
2300
return "PROCEDURES" ;
2300
- case ACL_OBJECT_ROUTINE :
2301
+ case OBJECT_ROUTINE :
2301
2302
return "ROUTINES" ;
2302
- case ACL_OBJECT_TABLESPACE :
2303
+ case OBJECT_TABLESPACE :
2303
2304
return "TABLESPACES" ;
2304
- case ACL_OBJECT_TYPE :
2305
+ case OBJECT_TYPE :
2305
2306
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 );
2306
2344
}
2307
2345
2308
- elog (ERROR , "unrecognized grant object type: %d" , (int ) objtype );
2309
2346
return "???" ; /* keep compiler quiet */
2310
2347
}
0 commit comments