Skip to content

Commit dfcbe2c

Browse files
committed
feat: allow specifying a timeout on a per query base
1 parent b1a8947 commit dfcbe2c

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

packages/pg/lib/client.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ class Client extends EventEmitter {
515515
query.callback = query.callback || values
516516
}
517517
} else {
518-
readTimeout = this.connectionParameters.query_timeout
518+
readTimeout = config.query_timeout || this.connectionParameters.query_timeout
519519
query = new Query(config, values, callback)
520520
if (!query.callback) {
521521
result = new this._Promise((resolve, reject) => {

packages/pg/test/integration/client/api-tests.js

+15
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,21 @@ suite.test('query no timeout', (cb) => {
102102
})
103103
})
104104

105+
suite.test('query with timeout on query basis', (cb) => {
106+
const pool = new pg.Pool()
107+
pool.connect().then((client) => {
108+
client.query(
109+
{text: 'SELECT pg_sleep(20)', query_timeout: 1000},
110+
assert.calls(function (err, result) {
111+
assert(err)
112+
assert(err.message === 'Query read timeout')
113+
client.release()
114+
pool.end(cb)
115+
})
116+
)
117+
})
118+
})
119+
105120
suite.test('callback API', (done) => {
106121
const client = new helper.Client()
107122
client.query('CREATE TEMP TABLE peep(name text)')

0 commit comments

Comments
 (0)