From 81d125fe18b56e4f0979b5a9b5f5ca072c9dd51d Mon Sep 17 00:00:00 2001 From: kesavkolla Date: Thu, 11 Dec 2014 12:10:14 +0530 Subject: [PATCH 1/3] Making a conditional check for type parser The code is failing with pg-copy-streams. The pg-copy-streams creates a query object but it doesn't have any _result. Make the type parser an optional only when _result object available on query then only set the type parser. --- lib/client.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/client.js b/lib/client.js index 8c281725..3b688f94 100644 --- a/lib/client.js +++ b/lib/client.js @@ -313,7 +313,9 @@ Client.prototype.query = function(config, values, callback) { if(this.binary && !query.binary) { query.binary = true; } - query._result._getTypeParser = this._types.getTypeParser.bind(this._types); + if(query._result) { + query._result._getTypeParser = this._types.getTypeParser.bind(this._types); + } this.queryQueue.push(query); this._pulseQueryQueue(); From 0994d6b7954cc4a63eb63b1fbcc1b5f3067429d2 Mon Sep 17 00:00:00 2001 From: Kesav Kumar Kolla Date: Fri, 12 Dec 2014 13:53:09 +0530 Subject: [PATCH 2/3] Added test cases for issue #699 --- package.json | 3 ++- test/integration/gh-issues/699-tests.js | 30 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 test/integration/gh-issues/699-tests.js diff --git a/package.json b/package.json index e1d38479..65eaa314 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "pg-connection-string": "0.1.3", "pg-types": "1.6.0", "pgpass": "0.0.3", - "semver": "^4.1.0" + "semver": "^4.1.0", + "pg-copy-streams":"~0.3.0" }, "devDependencies": { "async": "0.9.0", diff --git a/test/integration/gh-issues/699-tests.js b/test/integration/gh-issues/699-tests.js new file mode 100644 index 00000000..d1d861a3 --- /dev/null +++ b/test/integration/gh-issues/699-tests.js @@ -0,0 +1,30 @@ +var helper = require('../test-helper'); +var assert = require('assert'); +var copyFrom = require('pg-copy-streams').from; + + +helper.pg.connect(function (err, client, done) { + if (err) throw err; + + var c = 'CREATE TEMP TABLE employee (id integer, fname varchar(400), lname varchar(400))'; + + client.query(c, function (err) { + if (err) throw err; + + var stream = con.query(copyFrom("COPY employee FROM STDIN")); + stream.on('end', function () { + done(); + helper.pg.end(); + }); + + stream.on('error', function () { + throw new Error('Error in copy stream'); + }); + + for (var i = 1; i <= 5; i++) { + var line = ['1\ttest', i, '\tuser', i, '\n']; + stream.write(line.join('')); + } + stream.end(); + }); +}); From 1094040344d00d0a01766bca02b31792e1c7a3d5 Mon Sep 17 00:00:00 2001 From: "Brian M. Carlson" Date: Sat, 13 Dec 2014 12:25:07 -0500 Subject: [PATCH 3/3] Fix test --- test/integration/gh-issues/699-tests.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/test/integration/gh-issues/699-tests.js b/test/integration/gh-issues/699-tests.js index d1d861a3..f3716bb5 100644 --- a/test/integration/gh-issues/699-tests.js +++ b/test/integration/gh-issues/699-tests.js @@ -2,6 +2,7 @@ var helper = require('../test-helper'); var assert = require('assert'); var copyFrom = require('pg-copy-streams').from; +if(helper.args.native) return; helper.pg.connect(function (err, client, done) { if (err) throw err; @@ -11,16 +12,12 @@ helper.pg.connect(function (err, client, done) { client.query(c, function (err) { if (err) throw err; - var stream = con.query(copyFrom("COPY employee FROM STDIN")); + var stream = client.query(copyFrom("COPY employee FROM STDIN")); stream.on('end', function () { done(); helper.pg.end(); }); - stream.on('error', function () { - throw new Error('Error in copy stream'); - }); - for (var i = 1; i <= 5; i++) { var line = ['1\ttest', i, '\tuser', i, '\n']; stream.write(line.join(''));