@@ -159,8 +159,8 @@ static Oid insert_event_trigger_tuple(const char *trigname, const char *eventnam
159159static void validate_ddl_tags (const char * filtervar ,List * taglist );
160160static void validate_table_rewrite_tags (const char * filtervar ,List * taglist );
161161static 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)
11991199return 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)
21962161values [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 (
22002165cmd -> d .grant .istmt -> objtype ));
22012166/* schema */
22022167nulls [i ++ ]= true;
@@ -2219,92 +2184,164 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
22192184}
22202185
22212186/*
2222- * Return theGrantObjectType as a string, as it would appear in GRANT and
2187+ * Return theObjectType as a string, as it would appear in GRANT and
22232188 * REVOKE commands.
22242189 */
22252190static const char *
2226- stringify_grantobjtype ( GrantObjectType objtype )
2191+ stringify_grant_objtype ( ObjectType objtype )
22272192{
22282193switch (objtype )
22292194{
2230- case ACL_OBJECT_COLUMN :
2195+ case OBJECT_COLUMN :
22312196return "COLUMN" ;
2232- case ACL_OBJECT_RELATION :
2197+ case OBJECT_TABLE :
22332198return "TABLE" ;
2234- case ACL_OBJECT_SEQUENCE :
2199+ case OBJECT_SEQUENCE :
22352200return "SEQUENCE" ;
2236- case ACL_OBJECT_DATABASE :
2201+ case OBJECT_DATABASE :
22372202return "DATABASE" ;
2238- case ACL_OBJECT_DOMAIN :
2203+ case OBJECT_DOMAIN :
22392204return "DOMAIN" ;
2240- case ACL_OBJECT_FDW :
2205+ case OBJECT_FDW :
22412206return "FOREIGN DATA WRAPPER" ;
2242- case ACL_OBJECT_FOREIGN_SERVER :
2207+ case OBJECT_FOREIGN_SERVER :
22432208return "FOREIGN SERVER" ;
2244- case ACL_OBJECT_FUNCTION :
2209+ case OBJECT_FUNCTION :
22452210return "FUNCTION" ;
2246- case ACL_OBJECT_LANGUAGE :
2211+ case OBJECT_LANGUAGE :
22472212return "LANGUAGE" ;
2248- case ACL_OBJECT_LARGEOBJECT :
2213+ case OBJECT_LARGEOBJECT :
22492214return "LARGE OBJECT" ;
2250- case ACL_OBJECT_NAMESPACE :
2215+ case OBJECT_SCHEMA :
22512216return "SCHEMA" ;
2252- case ACL_OBJECT_PROCEDURE :
2217+ case OBJECT_PROCEDURE :
22532218return "PROCEDURE" ;
2254- case ACL_OBJECT_ROUTINE :
2219+ case OBJECT_ROUTINE :
22552220return "ROUTINE" ;
2256- case ACL_OBJECT_TABLESPACE :
2221+ case OBJECT_TABLESPACE :
22572222return "TABLESPACE" ;
2258- case ACL_OBJECT_TYPE :
2223+ case OBJECT_TYPE :
22592224return "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 );
22632264return "???" ;/* keep compiler quiet */
22642265}
22652266
22662267/*
2267- * Return theGrantObjectType as a string; as above, but use the spelling
2268+ * Return theObjectType as a string; as above, but use the spelling
22682269 * in ALTER DEFAULT PRIVILEGES commands instead. Generally this is just
22692270 * the plural.
22702271 */
22712272static const char *
2272- stringify_adefprivs_objtype (GrantObjectType objtype )
2273+ stringify_adefprivs_objtype (ObjectType objtype )
22732274{
22742275switch (objtype )
22752276{
2276- case ACL_OBJECT_COLUMN :
2277+ case OBJECT_COLUMN :
22772278return "COLUMNS" ;
2278- case ACL_OBJECT_RELATION :
2279+ case OBJECT_TABLE :
22792280return "TABLES" ;
2280- case ACL_OBJECT_SEQUENCE :
2281+ case OBJECT_SEQUENCE :
22812282return "SEQUENCES" ;
2282- case ACL_OBJECT_DATABASE :
2283+ case OBJECT_DATABASE :
22832284return "DATABASES" ;
2284- case ACL_OBJECT_DOMAIN :
2285+ case OBJECT_DOMAIN :
22852286return "DOMAINS" ;
2286- case ACL_OBJECT_FDW :
2287+ case OBJECT_FDW :
22872288return "FOREIGN DATA WRAPPERS" ;
2288- case ACL_OBJECT_FOREIGN_SERVER :
2289+ case OBJECT_FOREIGN_SERVER :
22892290return "FOREIGN SERVERS" ;
2290- case ACL_OBJECT_FUNCTION :
2291+ case OBJECT_FUNCTION :
22912292return "FUNCTIONS" ;
2292- case ACL_OBJECT_LANGUAGE :
2293+ case OBJECT_LANGUAGE :
22932294return "LANGUAGES" ;
2294- case ACL_OBJECT_LARGEOBJECT :
2295+ case OBJECT_LARGEOBJECT :
22952296return "LARGE OBJECTS" ;
2296- case ACL_OBJECT_NAMESPACE :
2297+ case OBJECT_SCHEMA :
22972298return "SCHEMAS" ;
2298- case ACL_OBJECT_PROCEDURE :
2299+ case OBJECT_PROCEDURE :
22992300return "PROCEDURES" ;
2300- case ACL_OBJECT_ROUTINE :
2301+ case OBJECT_ROUTINE :
23012302return "ROUTINES" ;
2302- case ACL_OBJECT_TABLESPACE :
2303+ case OBJECT_TABLESPACE :
23032304return "TABLESPACES" ;
2304- case ACL_OBJECT_TYPE :
2305+ case OBJECT_TYPE :
23052306return "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 );
23092346return "???" ;/* keep compiler quiet */
23102347}