@@ -905,9 +905,96 @@ EventTriggerSupportsObjectType(ObjectType obtype)
905
905
case OBJECT_EVENT_TRIGGER :
906
906
/* no support for event triggers on event triggers */
907
907
return 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);
909
995
break ;
910
996
}
997
+
911
998
return true;
912
999
}
913
1000
@@ -1011,7 +1098,7 @@ EventTriggerSQLDropAddObject(ObjectAddress *object)
1011
1098
if (!currentEventTriggerState )
1012
1099
return ;
1013
1100
1014
- Assert (EventTriggerSupportsObjectType (getObjectClass (object )));
1101
+ Assert (EventTriggerSupportsObjectClass (getObjectClass (object )));
1015
1102
1016
1103
/* don't report temp schemas */
1017
1104
if (object -> classId == NamespaceRelationId &&
0 commit comments