Since the subject of transition tables came up, I thought I'd test how this case works:
=# create table qwr(a int); CREATE TABLE =# create function qq() returns trigger as $$ begin raise notice '%', (select count(*) from oo); return null; end $$ language plpgsql; CREATE FUNCTION =# create trigger xx after insert on qwr referencing new table as oo for each statement execute procedure qq(); CREATE TRIGGER =# with t as (insert into qwr values (1)) insert into qwr values (2), (3); NOTICE: 3 NOTICE: 3 INSERT 0 2 to me, this means that it doesn't work. Surely one of the trigger invocations should say 1, and the other 2. Or was this intentional? .m