diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index 6d88b690d8..f827c178de 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -5608,10 +5608,6 @@ getObjectIdentityParts(const ObjectAddress *object, HeapTuple tup; Form_pg_event_trigger trigForm; - /* no objname support here */ - if (objname) - *objname = NIL; - tup = SearchSysCache1(EVENTTRIGGEROID, ObjectIdGetDatum(object->objectId)); if (!HeapTupleIsValid(tup)) @@ -5624,6 +5620,8 @@ getObjectIdentityParts(const ObjectAddress *object, trigForm = (Form_pg_event_trigger) GETSTRUCT(tup); appendStringInfoString(&buffer, quote_identifier(NameStr(trigForm->evtname))); + if (objname) + *objname = lappend(*objname, pstrdup(NameStr(trigForm->evtname))); ReleaseSysCache(tup); break; } diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out index bdd0ffcdaf..802f5ae93a 100644 --- a/src/test/regress/expected/event_trigger.out +++ b/src/test/regress/expected/event_trigger.out @@ -533,6 +533,21 @@ DROP POLICY p2 ON event_trigger_test; NOTICE: DROP POLICY - ddl_command_start NOTICE: DROP POLICY - sql_drop NOTICE: DROP POLICY - ddl_command_end +SELECT + evtname, + pg_describe_object('pg_event_trigger'::regclass,oid,0), + pg_identify_object('pg_event_trigger'::regclass,oid,0), + pg_identify_object_as_address('pg_event_trigger'::regclass,oid,0) +FROM pg_event_trigger +WHERE evtname IN ('start_rls_command','end_rls_command','sql_drop_command') +ORDER BY evtname; + evtname | pg_describe_object | pg_identify_object | pg_identify_object_as_address +-------------------+---------------------------------+--------------------------------------------------------+------------------------------------------ + end_rls_command | event trigger end_rls_command | ("event trigger",,end_rls_command,end_rls_command) | ("event trigger",{end_rls_command},{}) + sql_drop_command | event trigger sql_drop_command | ("event trigger",,sql_drop_command,sql_drop_command) | ("event trigger",{sql_drop_command},{}) + start_rls_command | event trigger start_rls_command | ("event trigger",,start_rls_command,start_rls_command) | ("event trigger",{start_rls_command},{}) +(3 rows) + DROP EVENT TRIGGER start_rls_command; DROP EVENT TRIGGER end_rls_command; DROP EVENT TRIGGER sql_drop_command; diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql index 18b2a267cb..4fd405f770 100644 --- a/src/test/regress/sql/event_trigger.sql +++ b/src/test/regress/sql/event_trigger.sql @@ -426,6 +426,15 @@ ALTER POLICY p1 ON event_trigger_test USING (TRUE); ALTER POLICY p1 ON event_trigger_test RENAME TO p2; DROP POLICY p2 ON event_trigger_test; +SELECT + evtname, + pg_describe_object('pg_event_trigger'::regclass,oid,0), + pg_identify_object('pg_event_trigger'::regclass,oid,0), + pg_identify_object_as_address('pg_event_trigger'::regclass,oid,0) +FROM pg_event_trigger +WHERE evtname IN ('start_rls_command','end_rls_command','sql_drop_command') +ORDER BY evtname; + DROP EVENT TRIGGER start_rls_command; DROP EVENT TRIGGER end_rls_command; DROP EVENT TRIGGER sql_drop_command;