@cubejs-backend/questdb-driver 1.7.2 → 1.7.3

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.
@@ -10,6 +10,9 @@ export declare class QuestQuery extends BaseQuery {
10
10
  addInterval(date: string, interval: string): string;
11
11
  unixTimestampSql(): string;
12
12
  timeGroupedColumn(granularity: string, dimension: string): string;
13
+ dateBin(interval: string, source: string, origin: string): string;
14
+ private dateBinOriginShift;
15
+ private questFloorStride;
13
16
  dimensionsJoinCondition(leftAlias: string, rightAlias: string): string;
14
17
  baseHaving(query: string, filters: BaseFilter[]): string;
15
18
  renderSqlMeasure(name: string, evaluateSql: string, symbol: any, cubeName: string, parentMeasure: string, orderBySql: string[]): string;
@@ -19,5 +22,8 @@ export declare class QuestQuery extends BaseQuery {
19
22
  desc: boolean;
20
23
  }): string | null;
21
24
  groupByClause(): string;
25
+ countDistinctApprox(sql: string): string;
26
+ limitOffsetClause(limit: string | number | null, offset: string | number | null): string;
27
+ sqlTemplates(): any;
22
28
  }
23
29
  //# sourceMappingURL=QuestQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuestQuery.d.ts","sourceRoot":"","sources":["../../src/QuestQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,iCAAiC,CAAC;AA+BzC,qBAAa,UAAW,SAAQ,SAAS;IAChC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU;IAIlC,iBAAiB,IAAI,cAAc;IAInC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAI3C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAKxD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAKnD,gBAAgB,IAAI,MAAM;IAK1B,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQjE,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAUtE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;IAe/C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAUvI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM;IAY5D,iBAAiB,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI;IAsBrE,aAAa,IAAI,MAAM;CAe/B"}
1
+ {"version":3,"file":"QuestQuery.d.ts","sourceRoot":"","sources":["../../src/QuestQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,iCAAiC,CAAC;AA8DzC,qBAAa,UAAW,SAAQ,SAAS;IAChC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU;IAIlC,iBAAiB,IAAI,cAAc;IAInC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAI3C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOxD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOnD,gBAAgB,IAAI,MAAM;IAK1B,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQjE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAexE,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,gBAAgB;IAQjB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAUtE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;IAe/C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAUvI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM;IAY5D,iBAAiB,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI;IAsBrE,aAAa,IAAI,MAAM;IAgBvB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAMxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM;IAkBxF,YAAY;CA0CpB"}
@@ -1,19 +1,71 @@
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
29
  exports.QuestQuery = void 0;
7
30
  const ramda_1 = __importDefault(require("ramda"));
31
+ const moment = __importStar(require("moment"));
8
32
  const schema_compiler_1 = require("@cubejs-backend/schema-compiler");
9
33
  const GRANULARITY_TO_INTERVAL = {
10
34
  second: 's',
11
35
  minute: 'm',
12
36
  hour: 'h',
13
37
  day: 'd',
38
+ week: 'w',
14
39
  month: 'M',
15
40
  year: 'y'
16
41
  };
42
+ const QUEST_UNIT_TO_MOMENT = {
43
+ s: 'seconds',
44
+ m: 'minutes',
45
+ h: 'hours',
46
+ d: 'days',
47
+ w: 'weeks',
48
+ M: 'months',
49
+ y: 'years',
50
+ };
51
+ // A fixed instant that precedes any realistic analytics data. A custom
52
+ // granularity's origin is shifted back to just before this anchor so QuestDB's
53
+ // timestamp_floor() always buckets forward from an origin at/under the data.
54
+ const DATE_BIN_ORIGIN_ANCHOR = '1000-01-01T00:00:00.000Z';
55
+ const INT32_MAX = 2147483647;
56
+ // QuestDB dateadd/datediff take a single-character period unit (e.g. 'd', 'M'),
57
+ // not the full word Cube's parseInterval yields ('day', 'month', …).
58
+ const INTERVAL_TO_QUEST_DATE_UNIT = {
59
+ second: { unit: 's', factor: 1 },
60
+ minute: { unit: 'm', factor: 1 },
61
+ hour: { unit: 'h', factor: 1 },
62
+ day: { unit: 'd', factor: 1 },
63
+ week: { unit: 'w', factor: 1 },
64
+ month: { unit: 'M', factor: 1 },
65
+ // no quarter unit, 3 months
66
+ quarter: { unit: 'M', factor: 3 },
67
+ year: { unit: 'y', factor: 1 },
68
+ };
17
69
  class QuestParamAllocator extends schema_compiler_1.ParamAllocator {
18
70
  paramPlaceHolder(paramIndex) {
19
71
  return `$${paramIndex + 1}`;
@@ -51,11 +103,13 @@ class QuestQuery extends schema_compiler_1.BaseQuery {
51
103
  }
52
104
  subtractInterval(date, interval) {
53
105
  const [number, type] = this.parseInterval(interval);
54
- return `dateadd('${type}', ${-number}, ${date})`;
106
+ const { unit, factor } = INTERVAL_TO_QUEST_DATE_UNIT[type];
107
+ return `dateadd('${unit}', ${-number * factor}, ${date})`;
55
108
  }
56
109
  addInterval(date, interval) {
57
110
  const [number, type] = this.parseInterval(interval);
58
- return `dateadd('${type}', ${number}, ${date})`;
111
+ const { unit, factor } = INTERVAL_TO_QUEST_DATE_UNIT[type];
112
+ return `dateadd('${unit}', ${number * factor}, ${date})`;
59
113
  }
60
114
  unixTimestampSql() {
61
115
  // QuestDB's now() function returns epoch timestamp with microsecond granularity.
@@ -68,6 +122,38 @@ class QuestQuery extends schema_compiler_1.BaseQuery {
68
122
  }
69
123
  return `timestamp_floor('${GRANULARITY_TO_INTERVAL[granularity]}', ${dimension})`;
70
124
  }
125
+ dateBin(interval, source, origin) {
126
+ const { stride, unit, count } = this.questFloorStride(interval);
127
+ // timestamp_floor(stride, ts, origin) only buckets forward from `origin`, so
128
+ // an origin later than the data collapses every row into a single bucket.
129
+ // Shift `origin` back by a whole number of strides (which preserves the bin
130
+ // phase, as flooring is periodic modulo the stride) to just before a fixed
131
+ // anchor that precedes any realistic data.
132
+ const shift = this.dateBinOriginShift(origin, unit, count);
133
+ const shiftedOrigin = shift > 0
134
+ ? `dateadd('${unit}', ${-shift}, cast('${origin}' as timestamp))`
135
+ : `cast('${origin}' as timestamp)`;
136
+ return `timestamp_floor('${stride}', ${source}, ${shiftedOrigin})`;
137
+ }
138
+ dateBinOriginShift(origin, unit, count) {
139
+ const parsedOrigin = moment.utc(origin);
140
+ if (!parsedOrigin.isValid()) {
141
+ throw new Error(`QuestDB custom granularity has an unparseable origin: ${origin}`);
142
+ }
143
+ const anchor = moment.utc(DATE_BIN_ORIGIN_ANCHOR);
144
+ const strides = Math.ceil(parsedOrigin.diff(anchor, QUEST_UNIT_TO_MOMENT[unit]) / count);
145
+ const shift = strides > 0 ? strides * count : 0;
146
+ if (shift > INT32_MAX) {
147
+ throw new Error(`QuestDB cannot anchor custom granularity '${count} ${unit}': origin shift ${shift} exceeds dateadd()'s 32-bit range`);
148
+ }
149
+ return shift;
150
+ }
151
+ questFloorStride(interval) {
152
+ const [duration, type] = this.parseInterval(interval);
153
+ const { unit, factor } = INTERVAL_TO_QUEST_DATE_UNIT[type];
154
+ const count = duration * factor;
155
+ return { stride: `${count}${unit}`, unit, count };
156
+ }
71
157
  dimensionsJoinCondition(leftAlias, rightAlias) {
72
158
  const dimensionAliases = this.dimensionAliasNames();
73
159
  if (!dimensionAliases.length) {
@@ -140,6 +226,63 @@ class QuestQuery extends schema_compiler_1.BaseQuery {
140
226
  const names = this.dimensionAliasNames();
141
227
  return names.length ? ` GROUP BY ${names.join(', ')}` : '';
142
228
  }
229
+ countDistinctApprox(sql) {
230
+ return `approx_count_distinct(${sql})`;
231
+ }
232
+ // QuestDB has no standalone OFFSET keyword; it uses `LIMIT lo, hi` (skip `lo`
233
+ // rows, return up to position `hi`).
234
+ limitOffsetClause(limit, offset) {
235
+ const o = offset != null ? parseInt(`${offset}`, 10) : null;
236
+ const l = limit != null ? parseInt(`${limit}`, 10) : null;
237
+ if (o != null && l != null) {
238
+ return ` LIMIT ${o}, ${o + l}`;
239
+ }
240
+ if (o != null) {
241
+ return ` LIMIT ${o}, 2147483647`;
242
+ }
243
+ if (l != null) {
244
+ return ` LIMIT ${l}`;
245
+ }
246
+ return '';
247
+ }
248
+ sqlTemplates() {
249
+ const templates = super.sqlTemplates();
250
+ // eslint-disable-next-line no-template-curly-in-string
251
+ templates.params.param = '${{ param_index + 1 }}';
252
+ // QuestDB does not support the `NULLS FIRST/LAST` ordering keywords.
253
+ templates.expressions.sort = '{{ expr }} {% if asc %}ASC{% else %}DESC{% endif %}';
254
+ templates.expressions.order_by = '{% if index %}{{ index }}{% else %}{{ expr }}{% endif %} {% if asc %}ASC{% else %}DESC{% endif %}';
255
+ templates.statements.time_series_select = 'SELECT cast(dates.f as timestamp) date_from, cast(dates.t as timestamp) date_to \n' +
256
+ 'FROM (\n' +
257
+ '{% for time_item in seria %}' +
258
+ ' select \'{{ time_item[0] }}\' f, \'{{ time_item[1] }}\' t \n' +
259
+ '{% if not loop.last %} UNION ALL\n{% endif %}' +
260
+ '{% endfor %}' +
261
+ ') AS dates';
262
+ // QuestDB uses `LIMIT lo, hi` instead of `LIMIT n OFFSET m` (there is no
263
+ // standalone OFFSET keyword). The only change from the base SELECT template
264
+ // is the limit/offset tail: hi = offset + limit, or a large sentinel when
265
+ // only an offset is given.
266
+ templates.statements.select = '{% if ctes %} WITH {% if recursive %}RECURSIVE {% endif %}\n' +
267
+ '{{ ctes | join(\',\n\') }}\n' +
268
+ '{% endif %}' +
269
+ 'SELECT {% if distinct %}DISTINCT {% endif %}' +
270
+ '{{ select_concat | map(attribute=\'aliased\') | join(\', \') }} {% if from %}\n' +
271
+ 'FROM (\n' +
272
+ '{{ from | indent(2, true) }}\n' +
273
+ ') AS {{ from_alias }}{% elif from_prepared %}\n' +
274
+ 'FROM {{ from_prepared }}' +
275
+ '{% endif %}' +
276
+ '{% for join in joins %}\n{{ join }}{% endfor %}' +
277
+ '{% if filter %}\nWHERE {{ filter }}{% endif %}' +
278
+ '{% if group_by %}\nGROUP BY {{ group_by }}{% endif %}' +
279
+ '{% if having %}\nHAVING {{ having }}{% endif %}' +
280
+ '{% if order_by %}\nORDER BY {{ order_by | map(attribute=\'expr\') | join(\', \') }}{% endif %}' +
281
+ '{% if offset is not none and limit is not none %}\nLIMIT {{ offset }}, {{ (offset | int) + (limit | int) }}' +
282
+ '{% elif offset is not none %}\nLIMIT {{ offset }}, 2147483647' +
283
+ '{% elif limit is not none %}\nLIMIT {{ limit }}{% endif %}';
284
+ return templates;
285
+ }
143
286
  }
144
287
  exports.QuestQuery = QuestQuery;
145
288
  //# sourceMappingURL=QuestQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuestQuery.js","sourceRoot":"","sources":["../../src/QuestQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuestQuery.js","sourceRoot":"","sources":["../../src/QuestQuery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@cubejs-backend/questdb-driver",
3
3
  "description": "Cube.js QuestDB database driver",
4
4
  "author": "Cube Dev, Inc.",
5
- "version": "1.7.2",
5
+ "version": "1.7.3",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/cube-js/cube.git",
@@ -27,9 +27,9 @@
27
27
  "lint:fix": "eslint --fix src/* --ext .ts"
28
28
  },
29
29
  "dependencies": {
30
- "@cubejs-backend/base-driver": "1.7.2",
31
- "@cubejs-backend/schema-compiler": "1.7.2",
32
- "@cubejs-backend/shared": "1.7.2",
30
+ "@cubejs-backend/base-driver": "1.7.3",
31
+ "@cubejs-backend/schema-compiler": "1.7.3",
32
+ "@cubejs-backend/shared": "1.7.3",
33
33
  "@types/pg": "^8.6.0",
34
34
  "moment": "^2.24.0",
35
35
  "pg": "^8.7.0",
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "license": "Apache-2.0",
39
39
  "devDependencies": {
40
- "@cubejs-backend/linter": "1.7.2",
41
- "@cubejs-backend/testing-shared": "1.7.2",
40
+ "@cubejs-backend/linter": "1.7.3",
41
+ "@cubejs-backend/testing-shared": "1.7.3",
42
42
  "testcontainers": "^10.28.0",
43
43
  "typescript": "~5.2.2"
44
44
  },
@@ -51,5 +51,5 @@
51
51
  "eslintConfig": {
52
52
  "extends": "../cubejs-linter"
53
53
  },
54
- "gitHead": "cc1f0782e71c3bddf0cf101786b28a589bac9e14"
54
+ "gitHead": "b8cfde8a2b0af0445fb8e3d9443ab1873b515e59"
55
55
  }