BUG #5202: Rule affecting more than one row is only fired once with LIMIT 1
| От | Marcel Wieland |
|---|---|
| Тема | BUG #5202: Rule affecting more than one row is only fired once with LIMIT 1 |
| Дата | |
| Msg-id | 200911201458.nAKEw1t2071641@wwwmaster.postgresql.org обсуждение исходный текст |
| Ответы |
Re: BUG #5202: Rule affecting more than one row is only fired
once with LIMIT 1
|
| Список | pgsql-bugs |
The following bug has been logged online:
Bug reference: 5202
Logged by: Marcel Wieland
Email address: marcel.wieland@fondsnet.de
PostgreSQL version: 8.2
Operating system: Linux
Description: Rule affecting more than one row is only fired once with
LIMIT 1
Details:
BEGIN;
-- Create testing Tables
CREATE TABLE footable (
name char
);
CREATE TABLE bartable (
foo char
);
-- Insert testing Values
INSERT INTO footable (name) VALUES('a'), ('b');
-- RULE with LIMIT 1
CREATE OR REPLACE RULE foorule AS ON UPDATE TO footable DO
INSERT INTO bartable (foo) SELECT name FROM footable WHERE name =
old.name LIMIT 1;
-- Query fires Rule
UPDATE footable SET name = name;
-- Result
SELECT * FROM bartable;
-- Reset
DELETE FROM bartable;
-- RULE without LIMIT 1
CREATE OR REPLACE RULE foorule AS ON UPDATE TO footable DO
INSERT INTO bartable (foo) SELECT name FROM footable WHERE name =
old.name;
-- Query fires Rule
UPDATE footable SET name = name;
-- Result
SELECT * FROM bartable;
-- Cleanup
DROP TABLE footable;
DROP TABLE bartable;
ROLLBACK;
В списке pgsql-bugs по дате отправления: