The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/14/sql-do.html Description:
Apparently now DO blocks support COMMIT; - which make them more like procedures than functions. Tried it with: create table z (a int4, b int4); insert into z (a,b) select i, i from generate_Series(1,10) i; do $$ declare begin update z set b = 2; commit; perform pg_sleep(120); end; $$ language plpgsql; And while it was running, in another psql sessions, I: 1. could see b= 2 2. could update any of the rows in z. Is it documented anywhere? DO docs say that do is like function, which it doesn't seem to be?