mirror of
https://github.com/brianc/node-postgres.git
synced 2026-01-18 15:55:05 +00:00
feat: allow specifying a timeout on a per query base (#3074)
This commit is contained in:
parent
b7d5b3b667
commit
9baa56eaa2
@ -514,7 +514,7 @@ class Client extends EventEmitter {
|
||||
query.callback = query.callback || values
|
||||
}
|
||||
} else {
|
||||
readTimeout = this.connectionParameters.query_timeout
|
||||
readTimeout = config.query_timeout || this.connectionParameters.query_timeout
|
||||
query = new Query(config, values, callback)
|
||||
if (!query.callback) {
|
||||
result = new this._Promise((resolve, reject) => {
|
||||
|
||||
@ -167,7 +167,7 @@ Client.prototype.query = function (config, values, callback) {
|
||||
config.callback = values
|
||||
}
|
||||
} else {
|
||||
readTimeout = this.connectionParameters.query_timeout
|
||||
readTimeout = config.query_timeout || this.connectionParameters.query_timeout
|
||||
query = new NativeQuery(config, values, callback)
|
||||
if (!query.callback) {
|
||||
let resolveOut, rejectOut
|
||||
|
||||
@ -102,6 +102,21 @@ suite.test('query no timeout', (cb) => {
|
||||
})
|
||||
})
|
||||
|
||||
suite.test('query with timeout on query basis', (cb) => {
|
||||
const pool = new pg.Pool()
|
||||
pool.connect().then((client) => {
|
||||
client.query(
|
||||
{text: 'SELECT pg_sleep(20)', query_timeout: 1000},
|
||||
assert.calls(function (err, result) {
|
||||
assert(err)
|
||||
assert(err.message === 'Query read timeout')
|
||||
client.release()
|
||||
pool.end(cb)
|
||||
})
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
suite.test('callback API', (done) => {
|
||||
const client = new helper.Client()
|
||||
client.query('CREATE TEMP TABLE peep(name text)')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user