[pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken

Поиск
Список
Период
Сортировка
От pgAdmin Trac
Тема [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken
Дата
Msg-id 045.3cfa2936adf6ceda81194cc1fd04feed@code.pgadmin.org
обсуждение исходный текст
Ответы Re: [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken  ("pgAdmin Trac" <trac@code.pgadmin.org>)
Re: [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken  ("pgAdmin Trac" <trac@code.pgadmin.org>)
Re: [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken  ("pgAdmin Trac" <trac@code.pgadmin.org>)
Re: [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken  ("pgAdmin Trac" <trac@code.pgadmin.org>)
Re: [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken  ("pgAdmin Trac" <trac@code.pgadmin.org>)
Список pgadmin-hackers
#332: SQL for TRIGGER with WHEN clause broken
----------------------+-----------------------------------------------------
 Reporter:  brsa      |       Owner:  dpage
     Type:  bug       |      Status:  new  
 Priority:  minor     |   Milestone:       
Component:  pgadmin   |     Version:  trunk
 Keywords:  SQL pane  |    Platform:  all  
----------------------+-----------------------------------------------------
 Brackets around the WHEN condition are missing or unmatched in the SQL
 pane. (See ticket #98)

 pg feature applies to postgresql 9.0+
 Tested with pgAdmin 1.14.0 Beta 3 on Win XP; pg 9.0.4 on Debian Squeeze.

 Docs:
 http://www.postgresql.org/docs/9.0/interactive/sql-createtrigger.html


 -- Test case --

 CREATE TABLE foo(a serial, b text, c text, d text);

 CREATE OR REPLACE FUNCTION trg_foo_upaft() RETURNS trigger AS
 $BODY$
 BEGIN

 -- do something
 RETURN NEW;

 END;
 $BODY$  LANGUAGE plpgsql VOLATILE;


 -- Test 1.)
 -- I say:
 -- DROP TRIGGER up_aft ON foo;
 CREATE TRIGGER up_aft
   AFTER UPDATE
   ON foo
   FOR EACH ROW
   WHEN ((old.b, old.c, old.d) <> (new.b, new.c, new.d))
   EXECUTE PROCEDURE trg_foo_upaft();

 --> pgAdmin says:
 CREATE TRIGGER up_aft
   AFTER UPDATE
   ON foo
   FOR EACH ROW
   WHEN (old.b <> new.b) OR (old.c <> new.c) OR (old.d <> new.d)
   EXECUTE PROCEDURE trg_foo_upaft();
 --! no enclosing brackets !


 -- Test 2.)
 -- I say:
 -- DROP TRIGGER up_aft ON foo;
 CREATE TRIGGER up_aft
   AFTER UPDATE
   ON foo
   FOR EACH ROW
   WHEN ((old.b <> new.b) OR (old.c <> new.c) OR (old.d <> new.d))
   EXECUTE PROCEDURE trg_foo_upaft();

 --> pgAdmin says:
 CREATE TRIGGER up_aft
   AFTER UPDATE
   ON foo
   FOR EACH ROW
   WHEN (old.b <> new.b) OR (old.c <> new.c)) OR (old.d <> new.d)
   EXECUTE PROCEDURE trg_foo_upaft();
 --! unmatched bracket and missing enclosing brackets !

--
Ticket URL: <http://code.pgadmin.org/trac/ticket/332>
pgAdmin III <http://code.pgadmin.org/trac/>
pgAdmin III

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

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: Weird git messages
Следующее
От: "pgAdmin Trac"
Дата:
Сообщение: Re: [pgAdmin III] #332: SQL for TRIGGER with WHEN clause broken