Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly - Mailing list pgsql-general
From | Adrian Klaver |
---|---|
Subject | Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly |
Date | |
Msg-id | 5696D8DC.5040405@aklaver.com Whole thread Raw |
In response to | Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly (David Rowley <david.rowley@2ndquadrant.com>) |
Responses |
Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly
Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly |
List | pgsql-general |
On 01/13/2016 02:51 PM, David Rowley wrote: > On 14 January 2016 at 11:32, Adrian Klaver <adrian.klaver@aklaver.com > <mailto:adrian.klaver@aklaver.com>> wrote: > > On 01/13/2016 02:24 PM, Tom Lane wrote: > > "Williamson, Michael" <Michael.Williamson@tamucc.edu > <mailto:Michael.Williamson@tamucc.edu>> writes: > > I'm attempting to drop a trigger that may or may not exist, > so am using > the "IF EXISTS" clause. Â This works fine for tables, views, > functions, > domains, and types, but for some reason seems to be ignored for > triggers. Â I'd expect to see more about this online if it > were a bug, > so I'm thinking I may be missing something obvious. > > > Example: > DROP TRIGGER IF EXISTS udf_customer_update_trigger ON customer; > > > Expected Output: > NOTICE:Â Â trigger "udf_customer_update_trigger" does not > exist, skipping > > > Observed Output: > ERROR:Â Â relation "udf_customer_update_trigger" does not exist > > > Environment: > CentOS 6.6 > postgresql91-server-9.1.14-1PGDG.rhel6.x86_64 > > > This has worked the way you're imagining since (I think) 9.4. > Before > that the "if exists" semantics only applied to the trigger itself, > not to the relation. > > > Alright now I am confused. Other then changing table to table_name I > am not seeing where the below changed. In both cases a NOTICE is > supposed to be raised. > > http://www.postgresql.org/docs/9.1/interactive/sql-droptrigger.html > > http://www.postgresql.org/docs/9.4/interactive/sql-droptrigger.html > > > Seems to have been changed in > http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=b152c6cd0de1827ba58756e24e18110cf902182a I will take a look at this at some point. The part that has me confused from the original post is this: ERROR: relation "udf_customer_update_trigger" does not exist If the ERROR is because the table does not exist, why not?: ERROR: relation "customer" does not exist > > Perhaps that commit should have also made changes to the documents to > change things such as: > > Do not throw an error if the trigger does not exist. A notice is issued > in this case. > > To > > Do not throw an error if the trigger or table does not exist. A notice > is issued in this case. > > -- > David Rowley http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Training & Services -- Adrian Klaver adrian.klaver@aklaver.com
pgsql-general by date: