Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)

From: Michal Vanek <michal(dot)vanek(at)gmail(dot)com>
To: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
Cc: pgadmin-support(at)postgresql(dot)org
Subject: Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)
Date: 2012-01-04 15:04:54
Message-ID: CAKp0xYhDhYhe3gDSsg1RbYV-3m5-Ub5yoEZUc5yTGnnNFe5ySg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

2012/1/4 Guillaume Lelarge <guillaume(at)lelarge(dot)info>

> On Wed, 2012-01-04 at 15:46 +0100, Guillaume Lelarge wrote:
> > On Wed, 2012-01-04 at 05:17 -0800, Miso Vanek wrote:
> > > On 2. Jan, 22:57 h., guilla(dot)(dot)(dot)(at)lelarge(dot)info (Guillaume Lelarge) wrote:
> > > > On Mon, 2011-12-19 at 10:50 +0100, Guillaume Lelarge wrote:
> > > > > On Thu, 2011-12-15 at 15:39 +0200, Julius Tuskenis wrote:
> > > > > > Hello,
> > > >
> > > > > > After installing pgAdmin 1.14.1 I have noticed that CREATE
> CONSTRAINT
> > > > > > TRIGGER statements are shown in SQL pane when selecting table
> from
> > > > > > treeview. Is this done on purpose?
> > > > > > Frankly, I find no real use of statements like:
> > > > > > CREATE CONSTRAINT TRIGGER "RI_ConstraintTrigger_73501293"
> > > > > > AFTER DELETE
> > > > > > ON b_dok
> > > > > > FOR EACH ROW
> > > > > > EXECUTE PROCEDURE "RI_FKey_cascade_del"();
> > > >
> > > > > > I think the constraint triggers should not be shown (at least by
> > > > > > default). They might be a good thing for debugging but not for
> > > > > > administrating the DB. I support the opinion stated in
> > > > > >http://www.pgadmin.org/support/faq.php:
> > > >
> > > > > > "
> > > > > > <...>
> > > > > > pgAdmin III considers constraint triggers as an internal
> implementation
> > > > > > detail, not interesting for the common administrator. In fact,
> CREATE
> > > > > > CONSTRAINT TRIGGER is for backward compatibility only, and
> shouldn't be
> > > > > > used in newer scripts any more. Some tools (e.g. pgAdmin II)
> imply this,
> > > > > > by showing a ADD CONSTRAINT when reverse engineering, while
> actually the
> > > > > > constraint information in the database is missing.
> > > > > > Run the adddepend script, which can be found in the backend's
> sources
> > > > > > contrib/adddepend directory. [AP]"
> > > >
> > > > > > I'd be glad if they disappeared from the SQL pane.
> > > >
> > > > > > pgAdmin 1.14.1
> > > > > > WinXp SP3
> > > > > > PostgreSQL 8.3.4 on i686-pc-linux-gnu, compiled by GCC gcc
> (Gentoo
> > > > > > 4.3.2-r3 p1.6, pie-10.1.5) 4.3.2
> > > >
> > > > > System constraints triggers shouldn't appear at all if you didn't
> select
> > > > > the "Show system objects". They never should appear in the SQL
> pane of a
> > > > > table description for example.
> > > >
> > > > > User constraints triggers should always appear.
> > > >
> > > > > The fact that system constraint triggers appear wasn't done on
> purpose.
> > > > > As a matter of fact, this is a bug.
> > > >
> > > > I tried to make it appear many times, but failed. Do you have
> > > > self-contained test case that I could use? Thanks.
> > > >
> > > > --
> > > > Guillaume
> > > > http://blog.guillaume.lelarge.info
> > > > http://www.dalibo.com
> > > > PostgreSQL Sessions #3:http://www.postgresql-sessions.org
> > > >
> > > > --
> > > > Sent via pgadmin-support mailing list (
> pgadmin-supp(dot)(dot)(dot)(at)postgresql(dot)org)
> > > > To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-support
> > >
> > > i have noticed it too.
> > >
> > > Ubuntu 11.10
> > > postgresql 9.1
> > > pgadmin 1.14.1
> > > compiled using gcc/g++, no additinional flags, only ./configure, make,
> > > make install
> > > rev: REL-1_14_1
> > > show system objects - not enabled
> > >
> > > example of SQL pane:
> > >
> > > CREATE TABLE projects
> > > (
> > > id serial NOT NULL,
> > > name text NOT NULL,
> > > handler text,
> > > CONSTRAINT projects_pkey PRIMARY KEY (id )
> > > )
> > > WITH (
> > > OIDS=FALSE
> > > );
> > > ALTER TABLE projects
> > > OWNER TO smsgtwlive;
> > >
> > > -- Trigger: RI_ConstraintTrigger_4601055 on projects
> > >
> > > -- DROP TRIGGER "RI_ConstraintTrigger_4601055" ON projects;
> > >
> > > CREATE CONSTRAINT TRIGGER "RI_ConstraintTrigger_4601055"
> > > AFTER DELETE
> > > ON projects
> > > FOR EACH ROW
> > > EXECUTE PROCEDURE "RI_FKey_restrict_del"();
> > >
> > > -- Trigger: RI_ConstraintTrigger_4601056 on projects
> > >
> > > -- DROP TRIGGER "RI_ConstraintTrigger_4601056" ON projects;
> > >
> > > CREATE CONSTRAINT TRIGGER "RI_ConstraintTrigger_4601056"
> > > AFTER UPDATE
> > > ON projects
> > > FOR EACH ROW
> > > EXECUTE PROCEDURE "RI_FKey_restrict_upd"();
> > >
> >
> > How did you create the table?
> >
>
> OK, got it. I'm able to reproduce it on 8.3.
>
>
> --
> Guillaume
> http://blog.guillaume.lelarge.info
> http://www.dalibo.com
> PostgreSQL Sessions #3: http://www.postgresql-sessions.org
>
>
sorry, postgreSQL version is 8.4 not 9.1.
Table was created using this SQL query in pgadmin's query tool. id is
foreign key in other tables.

CREATE TABLE projects
(
id serial NOT NULL,
name text NOT NULL,
handler text,
CONSTRAINT projects_pkey PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);

--
Michal Vanek

In response to

Responses

Browse pgadmin-support by date

  From Date Subject
Next Message Guillaume Lelarge 2012-01-04 15:17:23 Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)
Previous Message Julius Tuskenis 2012-01-04 14:58:02 Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)