On Tue, Oct 14, 2025 at 9:59 AM Philip Alger <[email protected]> wrote: > > Hello, > > I am submitting patch as a part of a larger Retail DDL functions project > described by Andrew Dunstan here: > https://www.postgresql.org/message-id/945db7c5-be75-45bf-b55b-cb1e56f2e3e9%40dunslane.net > > This patch creates a function pg_get_trigger_ddl, designed to retrieve the > full DDL statement for a trigger. Users can obtain the DDL by providing the > table and trigger names, like the following: > > SELECT pg_get_trigger_ddl('my_table_name', 'my_trigger_name'); > > While pg_get_triggerdef currently provides a similar SQL statement, it > requires the trigger's OID, making it less convenient. This function > simplifies this by allowing direct input of the table and trigger names, > eliminating the need to find the OID beforehand. I opted not to include the > "pretty" formatting capability that pg_get_triggerdef offers. > > This patch includes documentation, comments, and regression tests, all of > which have run successfully. >
I just did a quick test. src1=# SELECT pg_get_trigger_ddl(2, 'foo_trigger'); ERROR: trigger "foo_trigger" for table "(null)" does not exist src1=# SELECT pg_get_trigger_ddl(0, 'foo_trigger'); ERROR: trigger "foo_trigger" for table "(null)" does not exist this error message is use facing, is the above error message what we expected?
