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.


Reply via email to