Christophe Pettus <xof@xxxxxxxxxxxx> writes: >> On Sep 27, 2021, at 10:42, Christophe Pettus <xof@xxxxxxxxxxxx> wrote: >> We've encountered some unexpected behavior with statement_timeout not cancelling a query in DECLARE CURSOR, but only if the DECLARE CURSOR is outside of a transaction: > A bit more poking revealed the reason: The ON HOLD cursor's query is executed at commit time (which is, logically, not interruptible), but that's all wrapped in the single statement outside of a transaction. Hmm ... seems like a bit of a UX failure. I wonder why we don't persist such cursors before we get into the uninterruptible part of COMMIT. regards, tom lane