RULES doesn't work as expected

Поиск
Список
Период
Сортировка
От John Hansen
Тема RULES doesn't work as expected
Дата
Msg-id 5066E5A966339E42AA04BA10BA706AE5622B@rodrick.geeknet.com.au
обсуждение исходный текст
Ответы Re: RULES doesn't work as expected  (Richard Huxton <dev@archonet.com>)
Список pgsql-bugs
It seems rules don't work as expected.
I could be wrong,... In which case, what am I doing wrong?

Clearly, the first insert below should not update the table as well.

... John


CREATE TABLE test (a text, b int4[]);

CREATE RULE test_rule AS 
  ON INSERT TO test 
  WHERE exists(SELECT 1 FROM test WHERE a = NEW.a)
  DO INSTEAD
    UPDATE test SET b = b + NEW.b WHERE a = NEW.a;


db1=# INSERT INTO test (a,b) VALUES (1,'{1}'::int4[]);
INSERT 0 1
db1=# SELECT * FROM test;
 a |   b
---+-------
 1 | {1,1}
(1 row)

db1=# INSERT INTO test (a,b) VALUES (1,'{1}'::int4[]);
INSERT 0 0
db1=# SELECT * FROM test;
 a |    b
---+---------
 1 | {1,1,1}
(1 row)



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

Предыдущее
От: pgsql-bugs@postgresql.org
Дата:
Сообщение: Returned due to virus; was:Hello
Следующее
От: "Gustav Lindenberg"
Дата:
Сообщение: BUG #1389: 2 x 3.1 Gz Intel Cpu, 4Gb RAM, 2Gb Swap, Linux, Kernel 2.4.21-20.ELsmp #1 SMP