PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> in postgres 10.19
> psql -c "SET statement_timeout = 1000;select pg_sleep(2);"
> pg_sleep
> ----------
> (1 row)
> Why statement_timeout does not work always in postgres 10.19?
When you use -c that way, the two statements are sent as a single Query
message. PG versions before 11 interpreted the timeout as taking effect
beginning with the next Query message. 11 and later define it
differently. There's no bug here, or at least nothing we're going to change.
A workaround you could use in older versions is to use two separate -c
switches (although you need a 9.6 or later psql for that).
regards, tom lane