Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Williamson, Michael" <Michael(dot)Williamson(at)tamucc(dot)edu>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly
Date: 2016-01-13 22:24:11
Message-ID: 1413.1452723851@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Williamson, Michael" <Michael(dot)Williamson(at)tamucc(dot)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.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2016-01-13 22:27:09 Re: v9.1, DROP TRIGGER IF EXISTS behaving oddly
Previous Message Williamson, Michael 2016-01-13 22:14:33 v9.1, DROP TRIGGER IF EXISTS behaving oddly