I'm doing this:
CREATE TABLE data ( val int4 ); CREATE TABLE pos ( ) INHERITS ( data ); CREATE TABLE neg ( ) INHERITS ( data );
CREATE RULE data_to_pos AS ON INSERT TO data WHERE NEW.val > 0 DO INSTEAD INSERT INTO pos ( val ) VALUES ( NEW.val
);
CREATE RULE data_to_neg AS ON INSERT TO data WHERE NEW.val < 0 DO INSTEAD INSERT INTO neg ( val ) VALUES ( NEW.val
);
So far, I think, so good. (Though, sometimes it looks like the second
rule is never triggered even though val < 0. The real application
that this simple example comes from has a bunch of triggers, though,
so it could be some weird interaction...) Now I want to do:
CREATE RULE data_val AS ON SELECT TO data DO INSTEAD SELECT * FROM pos UNION SELECT * FROM neg;
Can this be done? I'm not having much success...
This is 7.0.2...
-itai