Skip to content

Commit 01721b6

Browse files
committed
Ensure empty results have field metadata
1 parent 2bc0ead commit 01721b6

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

lib/build-result.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ class Result {
2626
}
2727
}
2828

29-
consumeRows (pq, tupleCount) {
29+
consumeRows (pq) {
30+
const tupleCount = pq.ntuples()
3031
for (var i = 0; i < tupleCount; i++) {
3132
const row = this._arrayMode ? this.consumeRowAsArray(pq, i) : this.consumeRowAsObject(pq, i)
3233
this.rows.push(row)
@@ -65,12 +66,9 @@ class Result {
6566

6667
function buildResult (pq, types, arrayMode) {
6768
const result = new Result(types, arrayMode)
68-
var tupleCount = pq.ntuples()
6969
result.consumeCommand(pq)
70-
if (tupleCount > 0) {
71-
result.consumeFields(pq)
72-
result.consumeRows(pq, tupleCount)
73-
}
70+
result.consumeFields(pq)
71+
result.consumeRows(pq)
7472

7573
return result
7674
}

test/empty-query.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
var Client = require('../')
2+
var assert = require('assert')
3+
4+
describe('empty query', () => {
5+
it('has field metadata in result', (done) => {
6+
const client = new Client()
7+
client.connectSync()
8+
client.query('SELECT NOW() as now LIMIT 0', (err, rows, res) => {
9+
assert(!err)
10+
assert.equal(rows.length, 0)
11+
assert(Array.isArray(res.fields))
12+
assert.equal(res.fields.length, 1)
13+
client.end(done)
14+
})
15+
})
16+
})

0 commit comments

Comments
 (0)