Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement

jian he <jian.universality@gmail.com>

From: jian he <jian.universality@gmail.com>
To: Philip Alger <paalger0@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2025-10-14T05:54:17Z
Lists: pgsql-hackers
On Tue, Oct 14, 2025 at 12:03 PM Philip Alger <paalger0@gmail.com> wrote:
>
>
>
> On Mon, Oct 13, 2025 at 9:28 PM jian he <jian.universality@gmail.com> wrote:
>>
>>
>> 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?
>
>
> Thank you for checking that. Short answer: no.
>
> Please see v2. The latest version should take care of the (null) relation issue now, since it is checking if the OID exists for the table. I've included a test for that as well. It should return a clearer error if the relation does not exist.
>

select  pg_get_trigger_ddl(-1, 'h');
ERROR:  relation with OID 4294967295 does not exist

this error obviously is not good.
we can follow the approach used by pg_get_viewdef(oid)