From: | "Marcel Wieland" <marcel(dot)wieland(at)fondsnet(dot)de> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #5203: Rule affecting more than one row is only fired once, when there is no reference to the row. |
Date: | 2009-11-20 15:11:19 |
Message-ID: | 200911201511.nAKFBJoq079158@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 5203
Logged by: Marcel Wieland
Email address: marcel(dot)wieland(at)fondsnet(dot)de
PostgreSQL version: 8.2
Operating system: Linux
Description: Rule affecting more than one row is only fired once,
when there is no reference to the row.
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 without row-reference
CREATE OR REPLACE RULE foorule AS ON UPDATE TO footable DO
INSERT INTO bartable (foo) SELECT * FROM (SELECT 'a' UNION SELECT 'b')
AS x;
-- Query fires Rule
UPDATE footable SET name = name;
-- Result
SELECT * FROM bartable;
-- Reset
DELETE FROM bartable;
-- RULE with row-reference
CREATE OR REPLACE RULE foorule AS ON UPDATE TO footable DO
INSERT INTO bartable (foo) SELECT * FROM (SELECT 'a' UNION SELECT 'b')
AS x WHERE old.name = old.name;
-- Query fires Rule
UPDATE footable SET name = name;
-- Result
SELECT * FROM bartable;
-- Cleanup
DROP TABLE footable;
DROP TABLE bartable;
ROLLBACK;
From | Date | Subject | |
---|---|---|---|
Next Message | Alan Martin | 2009-11-20 15:51:33 | BUG #5204: ODBC connection NOT working |
Previous Message | Marcel Wieland | 2009-11-20 14:58:01 | BUG #5202: Rule affecting more than one row is only fired once with LIMIT 1 |