BUG #3696: FK integrity check bypassed using rules.

Поиск
Список
Период
Сортировка
От Pierre-yves Strub
Тема BUG #3696: FK integrity check bypassed using rules.
Дата
Msg-id 200710251328.l9PDSTPg091717@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #3696: FK integrity check bypassed using rules.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      3696
Logged by:          Pierre-yves Strub
Email address:      pierre.yves.strub@gmail.com
PostgreSQL version: 8.2.5 / 8.3b
Operating system:   Linux 2.6
Description:        FK integrity check bypassed using rules.
Details:

Hello.

Here is a SQL script reproducing the error.

CREATE SEQUENCE "sequence";

CREATE TABLE data (
  id INTEGER PRIMARY KEY DEFAULT nextval('sequence'),
  ref_id INTEGER NULL REFERENCES data(id) ON DELETE CASCADE
);

CREATE RULE data_delete_rule
AS ON DELETE TO data WHERE OLD.ref_id IS NOT NULL
DO INSTEAD NOTHING;

INSERT INTO data (ref_id) VALUES (NULL);
INSERT INTO data (ref_id) SELECT id FROM data LIMIT 1;
DELETE FROM data WHERE ref_id IS NULL;

SELECT * FROM data;

The result of the last SELECT is:

 id | ref_id
----+--------
  2 |      1
(1 row)

which shows that we have bypassed the foreign key integrity check.

Regards, Pierre-yves.

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

Предыдущее
От: "Gergely Bor"
Дата:
Сообщение: Yet another problem with ILIKE and UTF-8
Следующее
От: Gregory Stark
Дата:
Сообщение: Re: Yet another problem with ILIKE and UTF-8