@cubejs-backend/duckdb-driver 0.35.80 → 0.36.0
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.
|
@@ -2,7 +2,15 @@ import { BaseFilter, BaseQuery } from '@cubejs-backend/schema-compiler';
|
|
|
2
2
|
export declare class DuckDBQuery extends BaseQuery {
|
|
3
3
|
newFilter(filter: any): BaseFilter;
|
|
4
4
|
convertTz(field: string): string;
|
|
5
|
+
timeStampCast(value: string): string;
|
|
5
6
|
timeGroupedColumn(granularity: string, dimension: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Returns sql for source expression floored to timestamps aligned with
|
|
9
|
+
* intervals relative to origin timestamp point.
|
|
10
|
+
* DuckDB operates with whole intervals as is without measuring them in plain seconds,
|
|
11
|
+
* so the resulting date will be human-expected aligned with intervals.
|
|
12
|
+
*/
|
|
13
|
+
dateBin(interval: string, source: string, origin: string): string;
|
|
6
14
|
countDistinctApprox(sql: string): string;
|
|
7
15
|
sqlTemplates(): any;
|
|
8
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DuckDBQuery.d.ts","sourceRoot":"","sources":["../../src/DuckDBQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAgBxE,qBAAa,WAAY,SAAQ,SAAS;IACjC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU;IAIlC,SAAS,CAAC,KAAK,EAAE,MAAM;IAIvB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"DuckDBQuery.d.ts","sourceRoot":"","sources":["../../src/DuckDBQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAgBxE,qBAAa,WAAY,SAAQ,SAAS;IACjC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU;IAIlC,SAAS,CAAC,KAAK,EAAE,MAAM;IAIvB,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI/D;;;;;OAKG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAWjE,mBAAmB,CAAC,GAAG,EAAE,MAAM;IAI/B,YAAY;CAOpB"}
|
package/dist/src/DuckDBQuery.js
CHANGED
|
@@ -21,9 +21,27 @@ class DuckDBQuery extends schema_compiler_1.BaseQuery {
|
|
|
21
21
|
convertTz(field) {
|
|
22
22
|
return `timezone('${this.timezone}', ${field}::timestamptz)`;
|
|
23
23
|
}
|
|
24
|
+
timeStampCast(value) {
|
|
25
|
+
return `'${value}'::TIMESTAMPTZ`;
|
|
26
|
+
}
|
|
24
27
|
timeGroupedColumn(granularity, dimension) {
|
|
25
28
|
return GRANULARITY_TO_INTERVAL[granularity](dimension);
|
|
26
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns sql for source expression floored to timestamps aligned with
|
|
32
|
+
* intervals relative to origin timestamp point.
|
|
33
|
+
* DuckDB operates with whole intervals as is without measuring them in plain seconds,
|
|
34
|
+
* so the resulting date will be human-expected aligned with intervals.
|
|
35
|
+
*/
|
|
36
|
+
dateBin(interval, source, origin) {
|
|
37
|
+
const timeUnit = this.diffTimeUnitForInterval(interval);
|
|
38
|
+
const beginOfTime = this.timeStampCast('1970-01-01 00:00:00.000');
|
|
39
|
+
return `${this.timeStampCast(origin)}' + INTERVAL '${interval}' *
|
|
40
|
+
floor(
|
|
41
|
+
date_diff('${timeUnit}', ${this.timeStampCast(origin)}, ${source}) /
|
|
42
|
+
date_diff('${timeUnit}', ${beginOfTime}, ${beginOfTime} + INTERVAL '${interval}')
|
|
43
|
+
)::int`;
|
|
44
|
+
}
|
|
27
45
|
countDistinctApprox(sql) {
|
|
28
46
|
return `approx_count_distinct(${sql})`;
|
|
29
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DuckDBQuery.js","sourceRoot":"","sources":["../../src/DuckDBQuery.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AAExE,MAAM,uBAAuB,GAA6C;IACxE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,GAAG;IACzC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,GAAG;IAC7C,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,yBAAyB,IAAI,GAAG;IACjD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;CAC5C,CAAC;AAEF,MAAM,YAAa,SAAQ,4BAAU;CACpC;AAED,MAAa,WAAY,SAAQ,2BAAS;IACjC,SAAS,CAAC,MAAW;QAC1B,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,OAAO,aAAa,IAAI,CAAC,QAAQ,MAAM,KAAK,gBAAgB,CAAC;IAC/D,CAAC;IAEM,iBAAiB,CAAC,WAAmB,EAAE,SAAiB;QAC7D,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAEM,mBAAmB,CAAC,GAAW;QACpC,OAAO,yBAAyB,GAAG,GAAG,CAAC;IACzC,CAAC;IAEM,YAAY;QACjB,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,+BAA+B,CAAC;QAChE,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,0BAA0B,CAAC;QACvD,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,6BAA6B,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"DuckDBQuery.js","sourceRoot":"","sources":["../../src/DuckDBQuery.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AAExE,MAAM,uBAAuB,GAA6C;IACxE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,GAAG;IACzC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,GAAG;IAC7C,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,yBAAyB,IAAI,GAAG;IACjD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;CAC5C,CAAC;AAEF,MAAM,YAAa,SAAQ,4BAAU;CACpC;AAED,MAAa,WAAY,SAAQ,2BAAS;IACjC,SAAS,CAAC,MAAW;QAC1B,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,OAAO,aAAa,IAAI,CAAC,QAAQ,MAAM,KAAK,gBAAgB,CAAC;IAC/D,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,OAAO,IAAI,KAAK,gBAAgB,CAAC;IACnC,CAAC;IAEM,iBAAiB,CAAC,WAAmB,EAAE,SAAiB;QAC7D,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,QAAgB,EAAE,MAAc,EAAE,MAAc;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;QAElE,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,QAAQ;;qBAE5C,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM;qBACnD,QAAQ,MAAM,WAAW,KAAK,WAAW,gBAAgB,QAAQ;aACzE,CAAC;IACZ,CAAC;IAEM,mBAAmB,CAAC,GAAW;QACpC,OAAO,yBAAyB,GAAG,GAAG,CAAC;IACzC,CAAC;IAEM,YAAY;QACjB,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,+BAA+B,CAAC;QAChE,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,0BAA0B,CAAC;QACvD,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,6BAA6B,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA7CD,kCA6CC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@cubejs-backend/duckdb-driver",
|
|
3
3
|
"description": "Cube DuckDB database driver",
|
|
4
4
|
"author": "Cube Dev, Inc.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.36.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/cube-js/cube.git",
|
|
@@ -27,17 +27,17 @@
|
|
|
27
27
|
"lint:fix": "eslint --fix src/* --ext .ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@cubejs-backend/base-driver": "^0.
|
|
31
|
-
"@cubejs-backend/schema-compiler": "^0.
|
|
32
|
-
"@cubejs-backend/shared": "^0.
|
|
30
|
+
"@cubejs-backend/base-driver": "^0.36.0",
|
|
31
|
+
"@cubejs-backend/schema-compiler": "^0.36.0",
|
|
32
|
+
"@cubejs-backend/shared": "^0.36.0",
|
|
33
33
|
"duckdb": "^1.0.0"
|
|
34
34
|
},
|
|
35
35
|
"license": "Apache-2.0",
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@cubejs-backend/linter": "^0.
|
|
38
|
-
"@cubejs-backend/testing-shared": "^0.
|
|
37
|
+
"@cubejs-backend/linter": "^0.36.0",
|
|
38
|
+
"@cubejs-backend/testing-shared": "^0.36.0",
|
|
39
39
|
"@types/jest": "^27",
|
|
40
|
-
"@types/node": "^
|
|
40
|
+
"@types/node": "^18",
|
|
41
41
|
"jest": "^27",
|
|
42
42
|
"typescript": "~5.2.2"
|
|
43
43
|
},
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"eslintConfig": {
|
|
51
51
|
"extends": "../cubejs-linter"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "84c176ca957c71efe09d2049acd863b68532cf88"
|
|
54
54
|
}
|