On 18.03.24 11:01, jian he wrote:
select relname from pg_class where relisshared and relkind = 'r';
relname
-----------------------
pg_authid
pg_subscription
pg_database
pg_db_role_setting
pg_tablespace
pg_auth_members
pg_shdepend
pg_shdescription
pg_replication_origin
pg_shseclabel
pg_parameter_acl
(11 rows)
EventTriggerSupportsObject should return false for the following:
SharedSecLabelRelationId
SharedDescriptionRelationId
DbRoleSettingRelationId
SharedDependRelationId
but I am not sure ReplicationOriginRelationId.
EventTriggerSupportsObject() (currently named
EventTriggerSupportsObjectClass()) is only used by the deletion code,
and these additional classes are not supported there anyway. Also, if
they happen to show up there for some reason, then
EventTriggerSQLDropAddObject() would error out in
getObjectIdentityParts() or getObjectTypeDescription(). So you wouldn't
get an event trigger firing on a previously unsupported class by
accident. So I think this is robust enough.