On Tue, Apr 1, 2014 at 9:13 AM, Andrzej Mazurkiewicz <
andrzej@mazurkiewicz.org> wrote:
>
> It seems that if the trigger is internal (tgisinternal = true) it is not
> visible to the DROP TRIGGER command. So it cannot be deleted using DROP
> TRIGGER command, although the dependency type is DEPENDENCY_AUTOMATIC (ref. to
> the last SELECT).
>
> Please have a look at the following actions.
>
> They are performed by a lipa user. The lipa user is not a superuser;
>
> postgres=# CREATE USER lipa;
> CREATE ROLE
> postgres=# CREATE DATABASE lipa OWNER lipa;
> CREATE DATABASE
>
>
> postgres93@tata:~$ psql -W lipa lipa
> Password for user lipa:
> psql (9.3.3)
> Type "help" for help.
>
> lipa=> SELECT CURRENT_USER;
> current_user
> --------------
> lipa
> (1 row)
>
> lipa=> CREATE TABLE master (master_a int, CONSTRAINT pk_master PRIMARY KEY
> (master_a));
> CREATE TABLE
> lipa=> CREATE TABLE detail (master_a int, detail_a int, CONSTRAINT fk0_detail
> FOREIGN KEY (master_a) REFERENCES master(master_a));
> CREATE TABLE
> lipa=> SELECT oid, tgrelid, tgname FROM pg_trigger ;
> oid | tgrelid | tgname
> -------+---------+------------------------------
> 19322 | 19313 | RI_ConstraintTrigger_a_19322
> 19323 | 19313 | RI_ConstraintTrigger_a_19323
> 19324 | 19318 | RI_ConstraintTrigger_c_19324
> 19325 | 19318 | RI_ConstraintTrigger_c_19325
> (4 rows)
>
> lipa=> DROP TRIGGER RI_ConstraintTrigger_c_19322 ON master;
> ERROR: trigger "ri_constrainttrigger_c_19322" for table "master" does not
> exist
> lipa=> DROP TRIGGER RI_ConstraintTrigger_c_19322 ON detail;
> ERROR: trigger "ri_constrainttrigger_c_19322" for table "detail" does not
> exist
>
> lipa=> SELECT oid, tgrelid, tgname, tgconstraint FROM pg_trigger ;
> oid | tgrelid | tgname | tgconstraint
> -------+---------+------------------------------+--------------
> 19322 | 19313 | RI_ConstraintTrigger_a_19322 | 19321
> 19323 | 19313 | RI_ConstraintTrigger_a_19323 | 19321
> 19324 | 19318 | RI_ConstraintTrigger_c_19324 | 19321
> 19325 | 19318 | RI_ConstraintTrigger_c_19325 | 19321
> (4 rows)
>