diff --git a/lib/dialects/postgres/index.js b/lib/dialects/postgres/index.js index e033761c..d5218803 100644 --- a/lib/dialects/postgres/index.js +++ b/lib/dialects/postgres/index.js @@ -108,9 +108,13 @@ assign(Client_PG.prototype, { PGQueryStream = process.browser ? undefined : require('pg-query-stream'); var sql = obj.sql = this.positionBindings(obj.sql); return new Promise(function (resolver, rejecter) { + var queryStream = connection.query(new PGQueryStream(sql, obj.bindings, options)); + // 'error' is not propagated by .pipe, but it breaks the pipe + queryStream.on('error', rejecter); stream.on('error', rejecter); + // 'end' IS propagated by .pipe, by default stream.on('end', resolver); - connection.query(new PGQueryStream(sql, obj.bindings, options)).pipe(stream); + queryStream.pipe(stream); }); }, @@ -165,4 +169,4 @@ assign(Client_PG.prototype, { } } }); -module.exports = Client_PG; \ No newline at end of file +module.exports = Client_PG; diff --git a/lib/runner.js b/lib/runner.js index 907bc85e..755b8442 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -89,8 +89,6 @@ assign(Runner.prototype, { if (hasHandler) throw err; stream.emit('error', err); } - return sql; - }).then(function (sql) { return runner.client.stream(runner.connection, sql, stream, options); }); @@ -143,4 +141,4 @@ assign(Runner.prototype, { }); -module.exports = Runner; \ No newline at end of file +module.exports = Runner;