Add new way for callback and fix test

This commit is contained in:
Andrew Derbitov
2019-01-12 17:23:36 +03:00
parent 9b504c37bd
commit b9df4fb866
3 changed files with 27 additions and 11 deletions

View File

@@ -574,8 +574,12 @@ class ClickHouse {
}
query(sql, params) {
return new QueryCursor(sql, this._getReqParams(sql, params), this.opts);
query(...args) {
if (args.length === 2 && typeof args[args.length - 1] === 'function') {
return new QueryCursor(args[0], this._getReqParams(args[0], null), this.opts).exec(args[args.length - 1]);
} else {
return new QueryCursor(args[0], this._getReqParams(args[0], args[1]), this.opts);
}
}

View File

@@ -7,9 +7,9 @@
},
"dependencies": {
"JSONStream": "1.3.4",
"lodash": "^4.17.11",
"lodash": "4.17.11",
"querystring": "0.2.0",
"request": "^2.88.0"
"request": "2.88.0"
},
"description": "Client for ClickHouse",
"devDependencies": {
@@ -30,7 +30,7 @@
}
],
"name": "clickhouse",
"version": "1.2.7",
"version": "1.2.9",
"repository": {
"type": "git",
"url": "https://github.com/TimonKK/clickhouse.git"

View File

@@ -57,6 +57,18 @@ describe('Select', () => {
});
it('use callback #2', callback => {
clickhouse.query(sql, (err, rows) => {
expect(err).to.not.be.ok();
expect(rows).to.have.length(rowCount);
expect(rows[0]).to.eql({ number: 0, str: '0', date: '1970-01-02' });
callback();
});
});
it('use stream', function(callback) {
this.timeout(10000);
@@ -279,7 +291,7 @@ describe('queries', () => {
const result9 = await clickhouse.query('SELECT count(*) AS count FROM session_temp').toPromise();
const result10 = await clickhouse.query('SELECT count(*) AS count FROM session_temp2').toPromise();
expect(result9).to.eql(result10);
const result11 = await clickhouse.query('SELECT date FROM test.test_array GROUP BY date WITH TOTALS').withTotals().toPromise();
expect(result11).to.have.key('meta');
expect(result11).to.have.key('data');
@@ -287,16 +299,16 @@ describe('queries', () => {
expect(result11).to.have.key('rows');
expect(result11).to.have.key('statistics');
const result11 = await clickhouse.query('DROP TABLE IF EXISTS test_int_temp').toPromise();
expect(result11).to.be.ok();
const result111 = await clickhouse.query('DROP TABLE IF EXISTS test_int_temp').toPromise();
expect(result111).to.be.ok();
const result12 = await clickhouse.query('CREATE TABLE test_int_temp (int_value Int8 ) ENGINE=Memory').toPromise();
expect(result12).to.be.ok();
const int_value_data = [{int_value: 0}]
const result13 = await clickhouse.insert('INSERT INTO test_int_temp (int_value)', int_value_data).toPromise();
expect(result13).to.be.ok();
const result14 = await clickhouse.query('SELECT int_value FROM test_int_temp').toPromise();
expect(result14).to.eql(int_value_data);
});