Hi, What are the rules about what tables/views can be referenced from the RETURNING clause of an INSERT? I am particularly puzzled by the following. Given these definitions: CREATE TABLE test (id serial primary key, name varchar); CREATE VIEW tv AS SELECT * FROM test; This works: CREATE RULE _update AS ON UPDATE TO tv DO INSTEAD UPDATE test SET name = NEW.name WHERE id = OLD.id RETURNING NEW.*; But this does not: CREATE RULE _insert AS ON INSERT TO tv DO INSTEAD INSERT INTO test (name) VALUES (NEW.name) RETURNING NEW.*; It gives ERROR: invalid reference to FROM-clause entry for table "*NEW*" LINE 2: INSERT INTO test (name) VALUES (NEW.name) RETURNING NEW.*; ^ HINT: There is an entry for table "*NEW*", but it cannot be referenced from this part of the query. Why is there a difference? Thanks! Mike