Skip to content

Commit d82386e

Browse files
committed
Merge pull request #4 from tbuchok/master
maxListeners on timestamp queries
2 parents 0f13c80 + cab956b commit d82386e

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

Diff for: index.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ var QueryStream = module.exports = function(text, values, options) {
1111
})
1212
this.batchSize = options.batchSize || 100
1313
this._ready = false
14+
this.once('end', function() {
15+
setImmediate(function() { this.emit('close') }.bind(this));
16+
})
1417
//kick reader
1518
this.read()
1619
}
@@ -35,7 +38,6 @@ QueryStream.prototype._read = function(n) {
3538
if(!rows.length) {
3639
setImmediate(function() {
3740
self.push(null)
38-
self.once('end', self.emit.bind(self, 'close'))
3941
})
4042
}
4143
self._reading = false

Diff for: test/stream-tester-timestamp.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
var pg = require('pg.js')
2+
var QueryStream = require('../')
3+
var spec = require('stream-spec')
4+
var assert = require('assert')
5+
6+
require('./helper')(function(client) {
7+
it('should not warn about max listeners', function(done) {
8+
var sql = 'SELECT * FROM generate_series(\'1983-12-30 00:00\'::timestamp, \'2013-12-30 00:00\', \'1 years\')'
9+
var result = []
10+
var stream = new QueryStream(sql, [])
11+
var ended = false
12+
var query = client.query(stream)
13+
query.
14+
on('end', function() { ended = true })
15+
spec(query)
16+
.readable()
17+
.pausable({strict: true})
18+
.validateOnExit()
19+
;
20+
var checkListeners = function() {
21+
assert(stream.listeners('end').length < 10)
22+
if (!ended)
23+
setImmediate(checkListeners)
24+
else
25+
done()
26+
}
27+
checkListeners()
28+
})
29+
})

0 commit comments

Comments
 (0)