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

Reply via email to