Skip to content

Commit 3e53d06

Browse files
authored
Support lock_timeout (#2779)
1 parent 68160a2 commit 3e53d06

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

packages/pg/lib/client.js

+3
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,9 @@ class Client extends EventEmitter {
403403
if (params.statement_timeout) {
404404
data.statement_timeout = String(parseInt(params.statement_timeout, 10))
405405
}
406+
if (params.lock_timeout) {
407+
data.lock_timeout = String(parseInt(params.lock_timeout, 10))
408+
}
406409
if (params.idle_in_transaction_session_timeout) {
407410
data.idle_in_transaction_session_timeout = String(parseInt(params.idle_in_transaction_session_timeout, 10))
408411
}

packages/pg/lib/connection-parameters.js

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class ConnectionParameters {
103103
this.application_name = val('application_name', config, 'PGAPPNAME')
104104
this.fallback_application_name = val('fallback_application_name', config, false)
105105
this.statement_timeout = val('statement_timeout', config, false)
106+
this.lock_timeout = val('lock_timeout', config, false)
106107
this.idle_in_transaction_session_timeout = val('idle_in_transaction_session_timeout', config, false)
107108
this.query_timeout = val('query_timeout', config, false)
108109

packages/pg/lib/defaults.js

+4
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ module.exports = {
5454
// false=unlimited
5555
statement_timeout: false,
5656

57+
// Abort any statement that waits longer than the specified duration in milliseconds while attempting to acquire a lock.
58+
// false=unlimited
59+
lock_timeout: false,
60+
5761
// Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds
5862
// false=unlimited
5963
idle_in_transaction_session_timeout: false,

packages/pg/test/unit/connection-parameters/creation-tests.js

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var compare = function (actual, expected, type) {
2828
assert.equal(actual.password, expected.password, type + ' password')
2929
assert.equal(actual.binary, expected.binary, type + ' binary')
3030
assert.equal(actual.statement_timeout, expected.statement_timeout, type + ' statement_timeout')
31+
assert.equal(actual.lock_timeout, expected.lock_timeout, type + ' lock_timeout')
3132
assert.equal(actual.options, expected.options, type + ' options')
3233
assert.equal(
3334
actual.idle_in_transaction_session_timeout,
@@ -51,6 +52,7 @@ suite.test('ConnectionParameters initializing from defaults with connectionStrin
5152
host: 'foo.bar.net',
5253
binary: defaults.binary,
5354
statement_timeout: false,
55+
lock_timeout: false,
5456
idle_in_transaction_session_timeout: false,
5557
options: '-c geqo=off',
5658
}
@@ -78,6 +80,7 @@ suite.test('ConnectionParameters initializing from config', function () {
7880
asdf: 'blah',
7981
},
8082
statement_timeout: 15000,
83+
lock_timeout: 15000,
8184
idle_in_transaction_session_timeout: 15000,
8285
options: '-c geqo=off',
8386
}

0 commit comments

Comments
 (0)