Pavel Stehule <pavel.stehule@xxxxxxxxx> writes: > po 17. 2. 2020 v 17:36 odesílatel Laurenz Albe <laurenz.albe@xxxxxxxxxxx> > napsal: >> Either use shorter transactions, or start fewer subtransactions. > it is interesting topic, but I don't see it in my example > CREATE OR REPLACE FUNCTION public.fx(integer) > RETURNS void > LANGUAGE plpgsql > AS $function$ > begin > for i in 1..$1 loop > begin > --raise notice 'xx'; > exception when others then > raise notice 'yyy'; > end; > end loop; > end; > $function$ This example doesn't create or modify any table rows within the subtransactions, so (I think) we won't assign XIDs to them. It's consumption of subtransaction XIDs that causes the issue. regards, tom lane