From fabf39c6063d01fe76c61b2d80d221a7c9410604 Mon Sep 17 00:00:00 2001 From: Charmander <~@charmander.me> Date: Fri, 4 May 2018 17:59:39 +0000 Subject: [PATCH] Count only test query itself (#87) * Count only test query itself This breaks more obviously in PostgreSQL 10 (https://wiki.postgresql.org/wiki/New_in_postgres_10#Significant_Expansion_of_Wait_Events_in_pg_stat_activity). * Fix query counting for PostgreSQL 9.1 --- test/sizing.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/sizing.js b/test/sizing.js index 9e926877..b310b3d3 100644 --- a/test/sizing.js +++ b/test/sizing.js @@ -33,11 +33,17 @@ describe('pool size of 1', () => { it('can only send 1 query at a time', co.wrap(function * () { const pool = new Pool({ max: 1 }) - const queries = _.times(20, (i) => { - return pool.query('SELECT COUNT(*) as counts FROM pg_stat_activity') - }) + + // the query text column name changed in PostgreSQL 9.2 + const versionResult = yield pool.query('SHOW server_version_num') + const version = parseInt(versionResult.rows[0].server_version_num, 10) + const queryColumn = version < 90200 ? 'current_query' : 'query' + + const queryText = 'SELECT COUNT(*) as counts FROM pg_stat_activity WHERE ' + queryColumn + ' = $1' + const queries = _.times(20, () => + pool.query(queryText, [queryText])) const results = yield Promise.all(queries) - const counts = results.map(res => parseInt(res.rows[0].counts), 10) + const counts = results.map(res => parseInt(res.rows[0].counts, 10)) expect(counts).to.eql(_.times(20, i => 1)) return yield pool.end() }))