From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Philip Alger <paalger0(at)gmail(dot)com>, Cary Huang <cary(dot)huang(at)highgo(dot)ca> |
Cc: | jian he <jian(dot)universality(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement |
Date: | 2025-10-15 19:10:03 |
Message-ID: | 0e9afaf3-6131-42dd-b579-a21ac9293adb@dunslane.net |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2025-10-14 Tu 5:29 PM, Philip Alger wrote:
> Apologies, I forgot to add a new version of the patch with the
> documentation change.
>
> This is my first time doing this.
>
>
> your documentation and the function's comment specifically say
> that the
> function take a trigger name and a table name, so it should
> not use
> regclass type, which allows OID as input as well.
>
>
> Thanks for pointing that out in the documentation.
>
> I think the regclass type actually makes it easier to use because
> you can input a name or OID, but you're right in that it is
> essentially 'table_name'::regclass::oid. However, isn't the point
> of the regclass type to make it easier to do table lookups? In
> that case, using a name seems easier.
>
I think you should change the documentation. It seems better to use the
regfoo types where available to save a lot a code duplication.
>
> There is already a family of pg_get_[xxx]def functions
> available in
> PostgreSQL. pg_get_triggerdef() being one of them and it
> already can take
> OID as input and output the same text, so regclass type is not
> necessary.
>
>
> True, but you have to look for the trigger OID. If you have more
> than one table using the same trigger name, then you have to
> figure that out as well. Using names over OIDs seems more
> intuitive and less error prone than having to look up all the OIDs
> in my opinion. Also, having the added option of using an OID as
> well shouldn't be frowned upon since that's what it's using under
> the hood with regclass, but I understand what you're saying about
> pg_get_triggerdef(OID) doing the same thing with the OID only.
>
Yes, what this function buys us anything is that you don't need to get
the trigger OID.
> The term "DDL statement" may be a little misleading here, it
> does not return
> the actual DDL statements executed to create the trigger. The
> documentation for
> "pg_get_triggerdef" calls this statement as follows :
>
> "the creating command for a trigger. (This is a decompiled
> reconstruction,
> not the original text of the command.)"
>
>
> True, Cary. Appreciate calling that out. I can fix that in the
> documentation as well.
>
by "DDL statement" we mean a statement that would create the object as
it exists now if it were not already present, not the original creation
statement. I don't think we need to state that all over the place.
cheers
andrew
--
Andrew Dunstan
EDB:https://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2025-10-15 19:20:31 | Re: Thoughts on a "global" client configuration? |
Previous Message | Peter Eisentraut | 2025-10-15 19:07:58 | Re: Thoughts on a "global" client configuration? |