@cubejs-backend/clickhouse-driver 0.34.33 → 0.34.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ClickHouseDriver.d.ts.map +1 -1
- package/dist/src/ClickHouseDriver.js +2 -24
- package/dist/src/ClickHouseDriver.js.map +1 -1
- package/dist/src/HydrationStream.d.ts +1 -1
- package/dist/src/HydrationStream.d.ts.map +1 -1
- package/dist/src/HydrationStream.js +53 -19
- package/dist/src/HydrationStream.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickHouseDriver.d.ts","sourceRoot":"","sources":["../../src/ClickHouseDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAoB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ClickHouseDriver.d.ts","sourceRoot":"","sources":["../../src/ClickHouseDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAoB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA+BjD,UAAU,uBAAuB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAW,YAAW,eAAe;IACzE;;OAEG;WACW,qBAAqB,IAAI,MAAM;IAI7C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAEzC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IAE/B;;OAEG;gBAED,MAAM,GAAE,uBAAuB,GAAG;QAChC;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;;WAGG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAC3B;IA+DR,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC;IAkC3D,cAAc;IAIpB,QAAQ;IAMF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAInD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAmBxD,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG;IAcvB,OAAO;IAKb,sBAAsB;cAWV,gCAAgC,CAAC,mBAAmB,EAAE,MAAM;cAU5D,gCAAgC,CAAC,eAAe,EAAE,MAAM;cAYxD,0BAA0B;cAI1B,yBAAyB;IAItB,UAAU,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAIpD,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EAEjB,EAAE,aAAa,EAAE,EAAE,aAAa,GAC/B,OAAO,CAAC,wBAAwB,CAAC;IAmDvB,oBAAoB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAgB/B,aAAa,CAAC,UAAU,EAAE,MAAM;IA0B1B,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,cAAc,CAAC,UAAU,EAAE,MAAM;IAIjC,YAAY,IAAI,kBAAkB;CAK1C"}
|
|
@@ -160,32 +160,10 @@ class ClickHouseDriver extends base_driver_1.BaseDriver {
|
|
|
160
160
|
}));
|
|
161
161
|
}
|
|
162
162
|
normaliseResponse(res) {
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
// ClickHouse returns DateTime as strings in format "YYYY-DD-MM HH:MM:SS"
|
|
166
|
-
// cube.js expects them in format "YYYY-DD-MMTHH:MM:SS.000", so translate them based on the metadata returned
|
|
167
|
-
//
|
|
168
|
-
// ClickHouse returns some number types as js numbers, others as js string, normalise them all to strings
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
163
|
if (res.data) {
|
|
164
|
+
const meta = res.meta.reduce((state, element) => ({ [element.name]: element, ...state }), {});
|
|
172
165
|
res.data.forEach((row) => {
|
|
173
|
-
|
|
174
|
-
const value = row[field];
|
|
175
|
-
if (value !== null) {
|
|
176
|
-
const meta = res.meta.find((m) => m.name === field);
|
|
177
|
-
if (meta.type.includes('DateTime')) {
|
|
178
|
-
row[field] = `${value.substring(0, 10)}T${value.substring(11, 22)}.000`;
|
|
179
|
-
}
|
|
180
|
-
else if (meta.type.includes('Date')) {
|
|
181
|
-
row[field] = `${value}T00:00:00.000`;
|
|
182
|
-
}
|
|
183
|
-
else if (meta.type.includes('Int') || meta.type.includes('Float') || meta.type.includes('Decimal')) {
|
|
184
|
-
// convert all numbers into strings
|
|
185
|
-
row[field] = `${value}`;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
});
|
|
166
|
+
(0, HydrationStream_1.transformRow)(row, meta);
|
|
189
167
|
});
|
|
190
168
|
}
|
|
191
169
|
return res.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickHouseDriver.js","sourceRoot":"","sources":["../../src/ClickHouseDriver.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,mDAGgC;AAChC,6DASqC;AACrC,gEAAiD;AACjD,+BAAoC;AACpC,0DAAkC;
|
|
1
|
+
{"version":3,"file":"ClickHouseDriver.js","sourceRoot":"","sources":["../../src/ClickHouseDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import stream from 'stream';
|
|
3
|
-
export
|
|
3
|
+
export declare function transformRow(row: Record<string, any>, meta: any): void;
|
|
4
4
|
export declare class HydrationStream extends stream.Transform {
|
|
5
5
|
constructor(meta: any);
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydrationStream.d.ts","sourceRoot":"","sources":["../../src/HydrationStream.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"HydrationStream.d.ts","sourceRoot":"","sources":["../../src/HydrationStream.ts"],"names":[],"mappings":";AAAA,OAAO,MAA6B,MAAM,QAAQ,CAAC;AAOnD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,QAmB/D;AAED,qBAAa,eAAgB,SAAQ,MAAM,CAAC,SAAS;gBAChC,IAAI,EAAE,GAAG;CAW7B"}
|
|
@@ -1,33 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HydrationStream = void 0;
|
|
7
|
-
/* eslint-disable no-restricted-syntax */
|
|
29
|
+
exports.HydrationStream = exports.transformRow = void 0;
|
|
8
30
|
const stream_1 = __importDefault(require("stream"));
|
|
31
|
+
const moment = __importStar(require("moment"));
|
|
32
|
+
// ClickHouse returns DateTime as strings in format "YYYY-DD-MM HH:MM:SS"
|
|
33
|
+
// cube.js expects them in format "YYYY-DD-MMTHH:MM:SS.000", so translate them based on the metadata returned
|
|
34
|
+
//
|
|
35
|
+
// ClickHouse returns some number types as js numbers, others as js string, normalise them all to strings
|
|
36
|
+
function transformRow(row, meta) {
|
|
37
|
+
for (const [fieldName, value] of Object.entries(row)) {
|
|
38
|
+
if (value !== null) {
|
|
39
|
+
const metaForField = meta[fieldName];
|
|
40
|
+
if (metaForField.type === 'DateTime') {
|
|
41
|
+
row[fieldName] = `${value.substring(0, 10)}T${value.substring(11, 22)}.000`;
|
|
42
|
+
}
|
|
43
|
+
else if (metaForField.type.includes('DateTime64')) {
|
|
44
|
+
row[fieldName] = moment.utc(value).format(moment.HTML5_FMT.DATETIME_LOCAL_MS);
|
|
45
|
+
}
|
|
46
|
+
else if (metaForField.type.includes('Date')) {
|
|
47
|
+
row[fieldName] = `${value}T00:00:00.000`;
|
|
48
|
+
}
|
|
49
|
+
else if (metaForField.type.includes('Int')
|
|
50
|
+
|| metaForField.type.includes('Float')
|
|
51
|
+
|| metaForField.type.includes('Decimal')) {
|
|
52
|
+
// convert all numbers into strings
|
|
53
|
+
row[fieldName] = `${value}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.transformRow = transformRow;
|
|
9
59
|
class HydrationStream extends stream_1.default.Transform {
|
|
10
60
|
constructor(meta) {
|
|
11
61
|
super({
|
|
12
62
|
objectMode: true,
|
|
13
63
|
transform(row, encoding, callback) {
|
|
14
|
-
|
|
15
|
-
if (value !== null) {
|
|
16
|
-
const metaForField = meta[index];
|
|
17
|
-
if (metaForField.type.includes('DateTime')) {
|
|
18
|
-
row[index] = `${value.substring(0, 10)}T${value.substring(11, 22)}.000`;
|
|
19
|
-
}
|
|
20
|
-
else if (metaForField.type.includes('Date')) {
|
|
21
|
-
row[index] = `${value}T00:00:00.000`;
|
|
22
|
-
}
|
|
23
|
-
else if (metaForField.type.includes('Int')
|
|
24
|
-
|| metaForField.type.includes('Float')
|
|
25
|
-
|| metaForField.type.includes('Decimal')) {
|
|
26
|
-
// convert all numbers into strings
|
|
27
|
-
row[index] = `${value}`;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
64
|
+
transformRow(row, meta);
|
|
31
65
|
this.push(row);
|
|
32
66
|
callback();
|
|
33
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydrationStream.js","sourceRoot":"","sources":["../../src/HydrationStream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HydrationStream.js","sourceRoot":"","sources":["../../src/HydrationStream.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAmD;AACnD,+CAAiC;AAEjC,0EAA0E;AAC1E,8GAA8G;AAC9G,EAAE;AACF,0GAA0G;AAC1G,SAAgB,YAAY,CAAC,GAAwB,EAAE,IAAS;IAC9D,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpD,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE;gBACpC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;aAC7E;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACnD,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;aAC/E;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,KAAK,eAAe,CAAC;aAC1C;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;mBACvC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;mBACnC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EACxC;gBACA,mCAAmC;gBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;aAC7B;SACF;KACF;AACH,CAAC;AAnBD,oCAmBC;AAED,MAAa,eAAgB,SAAQ,gBAAM,CAAC,SAAS;IACnD,YAAmB,IAAS;QAC1B,KAAK,CAAC;YACJ,UAAU,EAAE,IAAI;YAChB,SAAS,CAAC,GAAU,EAAE,QAAwB,EAAE,QAA2B;gBACzE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAExB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,QAAQ,EAAE,CAAC;YACb,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAZD,0CAYC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@cubejs-backend/clickhouse-driver",
|
|
3
3
|
"description": "Cube.js ClickHouse database driver",
|
|
4
4
|
"author": "Cube Dev, Inc.",
|
|
5
|
-
"version": "0.34.
|
|
5
|
+
"version": "0.34.38",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/cube-js/cube.git",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
"@cubejs-backend/base-driver": "^0.34.33",
|
|
32
32
|
"@cubejs-backend/shared": "^0.34.33",
|
|
33
33
|
"generic-pool": "^3.6.0",
|
|
34
|
+
"moment": "^2.24.0",
|
|
34
35
|
"sqlstring": "^2.3.1",
|
|
35
36
|
"uuid": "^8.3.2"
|
|
36
37
|
},
|
|
37
38
|
"license": "Apache-2.0",
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@cubejs-backend/linter": "^0.34.25",
|
|
41
|
+
"@cubejs-backend/testing-shared": "^0.34.38",
|
|
40
42
|
"@types/jest": "^27",
|
|
41
43
|
"jest": "27",
|
|
42
|
-
"stream-to-array": "^2.3.0",
|
|
43
|
-
"testcontainers": "^8.12",
|
|
44
44
|
"typescript": "~5.2.2"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"eslintConfig": {
|
|
53
53
|
"extends": "../cubejs-linter"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "9a7fd5a1eee9657b1ff1808717cd6c7c70b3edf1"
|
|
56
56
|
}
|