From 33be525dbb2ad6f2c701539d3dd17ce5baa0c165 Mon Sep 17 00:00:00 2001 From: "Brian M. Carlson" Date: Wed, 23 Oct 2013 17:11:43 -0500 Subject: [PATCH] Add ability to configure highWaterMark and batchSize --- index.js | 9 +++------ test/config.js | 10 ++++++++++ test/instant.js | 17 +++++++++++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 test/config.js create mode 100644 test/instant.js diff --git a/index.js b/index.js index 45b26223..b29eab0c 100644 --- a/index.js +++ b/index.js @@ -17,20 +17,17 @@ var Result = require(path.join(pgdir, 'result')) var utils = require(path.join(pgdir, 'utils')) var QueryStream = module.exports = function(text, values, options) { - options = options || { - highWaterMark: 100, - batchSize: 100 - } + options = options || { } Readable.call(this, { objectMode: true, - highWaterMark: 100 + highWaterMark: options.highWaterMark || 1000 }) this.text = text assert(this.text, 'text cannot be falsy') this.values = (values || []).map(utils.prepareValue) this.name = '' this._result = new Result() - this.batchSize = 100 + this.batchSize = options.batchSize || 100 this._idle = true } diff --git a/test/config.js b/test/config.js new file mode 100644 index 00000000..4ed5b1b9 --- /dev/null +++ b/test/config.js @@ -0,0 +1,10 @@ +var assert = require('assert') +var QueryStream = require('../') + +var stream = new QueryStream('SELECT NOW()', [], { + highWaterMark: 999, + batchSize: 88 +}) + +assert.equal(stream._readableState.highWaterMark, 999) +assert.equal(stream.batchSize, 88) diff --git a/test/instant.js b/test/instant.js new file mode 100644 index 00000000..1b245162 --- /dev/null +++ b/test/instant.js @@ -0,0 +1,17 @@ +var pg = require('pg') +var assert = require('assert') +var gonna = require('gonna') +var concat = require('concat-stream') + +var QueryStream = require('../') + +var client = new pg.Client() +var query = new QueryStream('SELECT pg_sleep(1)', []) +var stream = client.query(query) +var done = gonna('read results', 5000) +stream.pipe(concat(function(res) { + assert.equal(res.length, 1) + done() + client.end() +})) +client.connect()