public inbox for [email protected]
help / color / mirror / Atom feedFrom: Marcelo Fernandes <[email protected]>
To: [email protected]
Subject: Resetting the lock_timeout value for a transaction
Date: Mon, 28 Apr 2025 11:28:41 +1200
Message-ID: <CAM2F1VM86387XCtNgbTbVQO6PfYBjCHg74XLsfavWJ-o-OZE+Q@mail.gmail.com> (raw)
Hi folks,
I have been using:
-- Setting the SESSION lock timeout to 10 seconds
SET lock_timeout = '10s';
-- Setting the TRANSACTION lock timeout to 20 seconds
BEGIN;
SET LOCAL lock_timeout = '20s';
COMMIT;
However, I have been caught by the behaviour of "RESET lock_timeout;" when
inside and outside a transaction.
-- Resets the lock_timeout value for the SESSION.
RESET lock_timeout;
-- WARNING: This will reset BOTH the SESSION and TRANSACTION lock_timeouts.
BEGIN;
SET LOCAL lock_timeout = '20s';
RESET lock_timeout;
COMMIT;
I would have expected that the "RESET lock_timeout;" inside a transaction would
only reset the value of lock_timeout for that specific transaction. Or else,
there would be an equivalent "RESET LOCAL lock_timeout;" to be used for that.
But I can't find anything that does just that.
Am I missing something? Example script for convenience:
-- This is the default lock_timeout (0s)
SHOW lock_timeout;
-- Set the SESSION lock timeout (42s)
SET lock_timeout = '42s';
SHOW lock_timeout;
BEGIN;
-- WARNING: This will set a new value for the SESSION lock_timeout from within
-- the transaction because it is missing the LOCAL key word!
SET lock_timeout = '10s';
SHOW lock_timeout;
-- Set it again but this time only for the transaction. This value will not
-- affect the session lock_timeout.
SET LOCAL lock_timeout = '9s';
SHOW lock_timeout;
-- Reset BOTH the SESSION and Transaction lock_timeout (both go back to 0, the
-- default).
RESET lock_timeout;
SHOW lock_timeout;
COMMIT;
-- Should now be 0s because it was reset inside the transaction.
SHOW lock_timeout;
Thanks, Marcelo
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: Resetting the lock_timeout value for a transaction
In-Reply-To: <CAM2F1VM86387XCtNgbTbVQO6PfYBjCHg74XLsfavWJ-o-OZE+Q@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox