PgSQL - update rule - ERROR unrecognized node type: 651

Filip Jirsák Filip.Jirsak na gymnacel.cz
Pátek Leden 7 11:16:23 CET 2005


Zdravím,
mám problém s následujícím kódem v PostgreSQL:

----------------

CREATE SCHEMA test
    AUTHORIZATION postgres;

CREATE TABLE test.table1 (
	uid int4,
	col1 int4,
	col2 int4,
	col3 int4
);

CREATE TABLE test.table2 (
	col4 int4
) INHERITS (test.table1);

CREATE TABLE test.table3 (
	col5 int4
) INHERITS (test.table1);

CREATE VIEW test.view1 AS
	SELECT uid, col1,col2,col3 FROM test.table2
UNION
	SELECT uid, col1,col2,col3 FROM test.table3;

INSERT INTO test.table1 VALUES (1,1,1,1);
INSERT INTO test.table1 VALUES (2,2,2,2);
INSERT INTO test.table1 VALUES (3,3,3,3);
INSERT INTO test.table1 VALUES (4,4,4,4);
INSERT INTO test.table2 VALUES (5,5,5,5,5);
INSERT INTO test.table2 VALUES (6,6,6,6,6);
INSERT INTO test.table2 VALUES (7,7,7,7,7);
INSERT INTO test.table2 VALUES (8,8,8,8,8);
INSERT INTO test.table3 VALUES (9,9,9,9,9);
INSERT INTO test.table3 VALUES (10,10,10,10,10);
INSERT INTO test.table3 VALUES (11,11,11,11,11);
INSERT INTO test.table3 VALUES (12,12,12,12,12);

CREATE OR REPLACE RULE r1 AS
      ON UPDATE TO test.view1 DO INSTEAD
	UPDATE test.table1 SET col1 = 100;

UPDATE test.view1 SET col2 = 101 WHERE uid=1;
----------------

Dostanu

ERROR:  unrecognized node type: 651

Přičemž update bez podmínky WHERE proběhne vpořádku. Pokud VIEW
nevytvářím jako UNION, ale dám tam pouze SELECT z jedné tabulky (což
bohužel v reálu nemůžu použít), proběhne update i s podmínkou WHERE.
Prostě nemůžu zkombinovat VIEW přes SELECT UNION a UPDATE RULE s
podmínkou WHERE. Mám někde nějakou chybu, nebo je to nějaká feature/bug?
DB je PostgreSQL 7.4.5 na Linuxu.
Díky moc.
Filip Jirsák

-- 
Filip Jirsák
správce počítačové sítě
Gymnázium Čelákovice


Další informace o konferenci Databases