On 14 January 2016 at 11:32, Adrian Klaver <adrian.kla...@aklaver.com>
wrote:

> On 01/13/2016 02:24 PM, Tom Lane wrote:
>
>> "Williamson, Michael" <michael.william...@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

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

Reply via email to