@@ -905,9 +905,96 @@ EventTriggerSupportsObjectType(ObjectType obtype)
905905case OBJECT_EVENT_TRIGGER :
906906/* no support for event triggers on event triggers */
907907return false;
908- default :
908+ case OBJECT_AGGREGATE :
909+ case OBJECT_ATTRIBUTE :
910+ case OBJECT_CAST :
911+ case OBJECT_COLUMN :
912+ case OBJECT_CONSTRAINT :
913+ case OBJECT_COLLATION :
914+ case OBJECT_CONVERSION :
915+ case OBJECT_DOMAIN :
916+ case OBJECT_EXTENSION :
917+ case OBJECT_FDW :
918+ case OBJECT_FOREIGN_SERVER :
919+ case OBJECT_FOREIGN_TABLE :
920+ case OBJECT_FUNCTION :
921+ case OBJECT_INDEX :
922+ case OBJECT_LANGUAGE :
923+ case OBJECT_LARGEOBJECT :
924+ case OBJECT_MATVIEW :
925+ case OBJECT_OPCLASS :
926+ case OBJECT_OPERATOR :
927+ case OBJECT_OPFAMILY :
928+ case OBJECT_RULE :
929+ case OBJECT_SCHEMA :
930+ case OBJECT_SEQUENCE :
931+ case OBJECT_TABLE :
932+ case OBJECT_TRIGGER :
933+ case OBJECT_TSCONFIGURATION :
934+ case OBJECT_TSDICTIONARY :
935+ case OBJECT_TSPARSER :
936+ case OBJECT_TSTEMPLATE :
937+ case OBJECT_TYPE :
938+ case OBJECT_VIEW :
939+ return true;
940+ }
941+ return true;
942+ }
943+
944+ /*
945+ * Do event triggers support this object class?
946+ */
947+ bool
948+ EventTriggerSupportsObjectClass (ObjectClass objclass )
949+ {
950+ switch (objclass )
951+ {
952+ case OCLASS_DATABASE :
953+ case OCLASS_TBLSPACE :
954+ case OCLASS_ROLE :
955+ /* no support for global objects */
956+ return false;
957+ case OCLASS_EVENT_TRIGGER :
958+ /* no support for event triggers on event triggers */
959+ return false;
960+ case OCLASS_CLASS :
961+ case OCLASS_PROC :
962+ case OCLASS_TYPE :
963+ case OCLASS_CAST :
964+ case OCLASS_COLLATION :
965+ case OCLASS_CONSTRAINT :
966+ case OCLASS_CONVERSION :
967+ case OCLASS_DEFAULT :
968+ case OCLASS_LANGUAGE :
969+ case OCLASS_LARGEOBJECT :
970+ case OCLASS_OPERATOR :
971+ case OCLASS_OPCLASS :
972+ case OCLASS_OPFAMILY :
973+ case OCLASS_AMOP :
974+ case OCLASS_AMPROC :
975+ case OCLASS_REWRITE :
976+ case OCLASS_TRIGGER :
977+ case OCLASS_SCHEMA :
978+ case OCLASS_TSPARSER :
979+ case OCLASS_TSDICT :
980+ case OCLASS_TSTEMPLATE :
981+ case OCLASS_TSCONFIG :
982+ case OCLASS_FDW :
983+ case OCLASS_FOREIGN_SERVER :
984+ case OCLASS_USER_MAPPING :
985+ case OCLASS_DEFACL :
986+ case OCLASS_EXTENSION :
987+ return true;
988+
989+ case MAX_OCLASS :
990+ /*
991+ * This shouldn't ever happen, but we keep the case to avoid a
992+ * compiler warning without a "default" clause in the switch.
993+ */
994+ Assert (false);
909995break ;
910996}
997+
911998return true;
912999}
9131000
@@ -1011,7 +1098,7 @@ EventTriggerSQLDropAddObject(ObjectAddress *object)
10111098if (!currentEventTriggerState )
10121099return ;
10131100
1014- Assert (EventTriggerSupportsObjectType (getObjectClass (object )));
1101+ Assert (EventTriggerSupportsObjectClass (getObjectClass (object )));
10151102
10161103/* don't report temp schemas */
10171104if (object -> classId == NamespaceRelationId &&