From 54048235c590e3aee322e88d56093ad7f42ae4a4 Mon Sep 17 00:00:00 2001 From: Aravindan Ve Date: Fri, 10 Jul 2020 11:43:32 +0530 Subject: [PATCH] fix: use types configured on pg client in pg-query-stream --- packages/pg-query-stream/index.js | 3 +++ .../pg-query-stream/test/client-options.js | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packages/pg-query-stream/test/client-options.js diff --git a/packages/pg-query-stream/index.js b/packages/pg-query-stream/index.js index 914a7e32b..3806e60aa 100644 --- a/packages/pg-query-stream/index.js +++ b/packages/pg-query-stream/index.js @@ -16,6 +16,9 @@ class PgQueryStream extends Readable { this.handleReadyForQuery = this.cursor.handleReadyForQuery.bind(this.cursor) this.handleError = this.cursor.handleError.bind(this.cursor) this.handleEmptyQuery = this.cursor.handleEmptyQuery.bind(this.cursor) + + // pg client sets types via _result property + this._result = this.cursor._result } submit(connection) { diff --git a/packages/pg-query-stream/test/client-options.js b/packages/pg-query-stream/test/client-options.js new file mode 100644 index 000000000..3820d96b2 --- /dev/null +++ b/packages/pg-query-stream/test/client-options.js @@ -0,0 +1,27 @@ +var pg = require('pg') +var assert = require('assert') +var QueryStream = require('../') + +describe('client options', function () { + it('uses custom types from client config', function (done) { + const types = { + getTypeParser: () => (string) => string, + } + var client = new pg.Client({ types }) + client.connect() + var stream = new QueryStream('SELECT * FROM generate_series(0, 10) num') + var query = client.query(stream) + var result = [] + query.on('data', (datum) => { + result.push(datum) + }) + query.on('end', () => { + const expected = new Array(11).fill(0).map((_, i) => ({ + num: i.toString(), + })) + assert.deepEqual(result, expected) + client.end() + done() + }) + }) +})