Hello all,
i have a problem migrating my application from version 7.4 to 8.0. Everything is fine in 7.4 but with 8.0 i get the following error:
infinite recursion detected in rules for relation "..."
I've been able to narrow the problem down to the attached SQL.
I don't know wether its a bug or a "feature".
Can someone explain me this behaviour.
Thanks in advance
Sebastian
CREATE TABLE ref ( name TEXT NOT NULL PRIMARY KEY );
CREATE TABLE test ( id SERIAL PRIMARY KEY, col1 TEXT NOT NULL UNIQUE, col2 TEXT NOT NULL REFERENCES ref ON UPDATE CASCADE ); CREATE TABLE log ( id INTEGER NOT NULL, col1 TEXT NOT NULL, col2 TEXT NOT NULL ); CREATE OR REPLACE RULE log AS ON UPDATE TO test DO INSERT INTO log VALUES (OLD.id,OLD.col1,OLD.col2); CREATE VIEW bug AS SELECT * FROM test; CREATE OR REPLACE RULE upd AS ON UPDATE TO bug DO INSTEAD NOTHING; CREATE OR REPLACE RULE upd_col1 AS ON UPDATE TO bug WHERE NEW.col1 <> OLD.col1 DO UPDATE test SET col1 = NEW.col1 WHERE id = OLD.id; CREATE OR REPLACE RULE upd_col2 AS ON UPDATE TO bug WHERE NEW.col2 <> OLD.col2 DO UPDATE test SET col2 = NEW.col2 WHERE id = OLD.id; INSERT INTO ref (name) VALUES ('Name'); INSERT INTO test (col1,col2) VALUES ('Test 1','Name'); UPDATE bug SET col1 = 'Test' WHERE id = 1;
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])