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

Поиск
Список
Период
Сортировка
От Michal Vanek
Тема Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)
Дата
Msg-id CAKp0xYhDhYhe3gDSsg1RbYV-3m5-Ub5yoEZUc5yTGnnNFe5ySg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)  (Guillaume Lelarge <guillaume@lelarge.info>)
Ответы Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)  (Guillaume Lelarge <guillaume@lelarge.info>)
Список pgadmin-support


2012/1/4 Guillaume Lelarge <guillaume@lelarge.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...@lelarge.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...@postgresql.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.

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

В списке pgadmin-support по дате отправления:

Предыдущее
От: Julius Tuskenis
Дата:
Сообщение: Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)
Следующее
От: Guillaume Lelarge
Дата:
Сообщение: Re: CREATE CONSTRAINT TRIGGER in SQL pane (pgAdmin 1.14.1)