@cubejs-backend/schema-compiler 1.7.30 → 1.7.32

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.
@@ -130,6 +130,7 @@ export class BaseQuery {
130
130
  }[] | undefined;
131
131
  useNativeSqlPlanner: any;
132
132
  canUseNativeSqlPlannerPreAggregation: any;
133
+ localRefreshKey: any;
133
134
  queryLevelJoinHints: any;
134
135
  cubeAliasPrefix: any;
135
136
  preAggregationsSchemaOption: any;
@@ -803,6 +804,32 @@ export class BaseQuery {
803
804
  interval: number;
804
805
  dayOffset: number;
805
806
  };
807
+ /**
808
+ * Both the rendered SQL and the descriptor handed to the orchestrator for local
809
+ * evaluation derive from this, so they cannot disagree on the formula.
810
+ *
811
+ * @return {{ utcOffset: number, interval: number, dayOffset: number, cron: boolean }}
812
+ */
813
+ everyRefreshKeyParts(refreshKey: any): {
814
+ utcOffset: number;
815
+ interval: number;
816
+ dayOffset: number;
817
+ cron: boolean;
818
+ };
819
+ /**
820
+ * @protected
821
+ * @param {BaseQuery} [query] the instance that rendered the SQL, when it differs from `this`
822
+ */
823
+ protected localRefreshKeyOptions(refreshKey: any, query?: BaseQuery | undefined): {
824
+ localRefreshKey: {
825
+ utcOffset: number;
826
+ interval: number;
827
+ dayOffset: number;
828
+ cron: boolean;
829
+ };
830
+ } | {
831
+ localRefreshKey?: undefined;
832
+ };
806
833
  everyRefreshKeySql(refreshKey: any, external?: boolean): any;
807
834
  granularityFor(momentDate: any): "hour" | "day" | "week" | "month" | "year" | "minute" | "second";
808
835
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"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"}
@@ -256,6 +256,7 @@ class BaseQuery {
256
256
  memberToAlias: this.options.memberToAlias,
257
257
  expressionParams: this.options.expressionParams,
258
258
  convertTzForRawTimeDimension: this.options.convertTzForRawTimeDimension,
259
+ localRefreshKey: this.options.localRefreshKey,
259
260
  from: this.options.from,
260
261
  multiStageQuery: this.options.multiStageQuery,
261
262
  multiStageDimensions: this.options.multiStageDimensions,
@@ -325,6 +326,9 @@ class BaseQuery {
325
326
  // toggled independently. The neverUseSqlPlannerPreaggregation() guard still opts
326
327
  // specific query types (e.g. CubeStoreQuery) out for correctness.
327
328
  this.canUseNativeSqlPlannerPreAggregation = this.useNativeSqlPlanner && !this.neverUseSqlPlannerPreaggregation();
329
+ // Gated at emit time so that with the flag off the refresh key tuples stay
330
+ // byte-identical and nothing downstream re-hashes to a new cache key.
331
+ this.localRefreshKey = this.options.localRefreshKey ?? (0, shared_1.getEnv)('refreshKeyLocalTime');
328
332
  this.queryLevelJoinHints = this.options.joinHints ?? [];
329
333
  this.prebuildJoin();
330
334
  this.cubeAliasPrefix = this.options.cubeAliasPrefix;
@@ -1529,11 +1533,20 @@ class BaseQuery {
1529
1533
  // If we have custom granularities in time dimension
1530
1534
  if (td.granularities) {
1531
1535
  for (const granularityName of Object.keys(td.granularities)) {
1532
- const grObj = new Granularity_1.Granularity(this, { dimension: dimensionKey, granularity: granularityName });
1533
- hierarchies[`${dimensionKey}.${granularityName}`] = [
1534
- granularityName,
1535
- ...standardGranularitiesParents[grObj.minGranularity()],
1536
- ];
1536
+ const granularity = this.cubeEvaluator.resolveGranularity([cube, tdName, 'granularities', granularityName]);
1537
+ // A granularity that only overrides the SQL of its time dimension has no
1538
+ // interval to derive a hierarchy from. Such a granularity can only be
1539
+ // matched by a rollup declaring it by name, which is what a missing
1540
+ // hierarchy entry already means.
1541
+ // An unresolvable granularity is a different matter and keeps
1542
+ // reporting itself from the constructor below.
1543
+ if (!granularity || granularity.interval) {
1544
+ const grObj = new Granularity_1.Granularity(this, { dimension: dimensionKey, granularity: granularityName });
1545
+ hierarchies[`${dimensionKey}.${granularityName}`] = [
1546
+ granularityName,
1547
+ ...standardGranularitiesParents[grObj.minGranularity()],
1548
+ ];
1549
+ }
1537
1550
  }
1538
1551
  }
1539
1552
  }
@@ -3398,6 +3411,7 @@ class BaseQuery {
3398
3411
  externalQueryClass: this.options.externalQueryClass,
3399
3412
  queryFactory: this.options.queryFactory,
3400
3413
  useNativeSqlPlanner: this.options.useNativeSqlPlanner,
3414
+ localRefreshKey: this.options.localRefreshKey,
3401
3415
  ...options,
3402
3416
  };
3403
3417
  }
@@ -3432,18 +3446,21 @@ class BaseQuery {
3432
3446
  this.refreshKeySelect(sql),
3433
3447
  {
3434
3448
  external,
3435
- renewalThreshold: this.refreshKeyRenewalThresholdForInterval(cubeFromPath.refreshKey)
3449
+ renewalThreshold: this.refreshKeyRenewalThresholdForInterval(cubeFromPath.refreshKey),
3450
+ ...this.localRefreshKeyOptions(cubeFromPath.refreshKey, query)
3436
3451
  },
3437
3452
  query
3438
3453
  ];
3439
3454
  }
3440
3455
  }
3441
- const [sql, external, query] = this.everyRefreshKeySql(this.defaultEveryRefreshKey());
3456
+ const defaultEveryRefreshKey = this.defaultEveryRefreshKey();
3457
+ const [sql, external, query] = this.everyRefreshKeySql(defaultEveryRefreshKey);
3442
3458
  return [
3443
3459
  this.refreshKeySelect(sql),
3444
3460
  {
3445
3461
  external,
3446
- renewalThreshold: this.defaultRefreshKeyRenewalThreshold()
3462
+ renewalThreshold: this.defaultRefreshKeyRenewalThreshold(),
3463
+ ...this.localRefreshKeyOptions(defaultEveryRefreshKey, query)
3447
3464
  },
3448
3465
  query
3449
3466
  ];
@@ -3640,8 +3657,27 @@ class BaseQuery {
3640
3657
  FLOOR: 'FLOOR({{ args_concat }})',
3641
3658
  CEIL: 'CEIL({{ args_concat }})',
3642
3659
  TRUNC: 'TRUNC({{ args_concat }})',
3660
+ // Window functions. The SQL API resolves a window function to `functions/<NAME>`
3661
+ // just like any other function, so a built-in without an entry here is never
3662
+ // pushed down: the window, and everything computed on top of it, is left to
3663
+ // post processing over a row-capped result. These are the SQL:2003 window
3664
+ // functions, supported by every dialect that supports windowing at all, so they
3665
+ // live in the base and a dialect missing one deletes it.
3643
3666
  LAG: 'LAG({{ args_concat }})',
3644
3667
  LEAD: 'LEAD({{ args_concat }})',
3668
+ ROW_NUMBER: 'ROW_NUMBER({{ args_concat }})',
3669
+ RANK: 'RANK({{ args_concat }})',
3670
+ DENSE_RANK: 'DENSE_RANK({{ args_concat }})',
3671
+ PERCENT_RANK: 'PERCENT_RANK({{ args_concat }})',
3672
+ CUME_DIST: 'CUME_DIST({{ args_concat }})',
3673
+ // Unreachable from the SQL API until CORE-831: DataFusion types NTILE's argument
3674
+ // `Exact([UInt64])` and will not coerce an integer literal to it, so the query
3675
+ // fails to plan. Kept because the template itself is right - once the fork's
3676
+ // signature is relaxed, NTILE pushes down with no change here.
3677
+ NTILE: 'NTILE({{ args_concat }})',
3678
+ FIRST_VALUE: 'FIRST_VALUE({{ args_concat }})',
3679
+ LAST_VALUE: 'LAST_VALUE({{ args_concat }})',
3680
+ NTH_VALUE: 'NTH_VALUE({{ args_concat }})',
3645
3681
  // There is a difference in behaviour of these function processing in different DBs and DWHs.
3646
3682
  // The SQL standard requires greatest and least to return null in case one argument is null.
3647
3683
  // However, many DBMS ignore NULL values (mostly because greatest and least were often supported
@@ -3933,17 +3969,42 @@ class BaseQuery {
3933
3969
  dayOffset,
3934
3970
  };
3935
3971
  }
3972
+ /**
3973
+ * Both the rendered SQL and the descriptor handed to the orchestrator for local
3974
+ * evaluation derive from this, so they cannot disagree on the formula.
3975
+ *
3976
+ * @return {{ utcOffset: number, interval: number, dayOffset: number, cron: boolean }}
3977
+ */
3978
+ everyRefreshKeyParts(refreshKey) {
3979
+ const every = refreshKey.every || '1 hour';
3980
+ if (/^(\d+) (second|minute|hour|day|week)s?$/.test(every)) {
3981
+ return {
3982
+ utcOffset: this.timezone ? moment_timezone_1.default.tz(this.timezone).utcOffset() * 60 : 0,
3983
+ interval: this.parseSecondDuration(every),
3984
+ dayOffset: 0,
3985
+ cron: false,
3986
+ };
3987
+ }
3988
+ return { ...this.calcIntervalForCronString(refreshKey), cron: true };
3989
+ }
3990
+ /**
3991
+ * @protected
3992
+ * @param {BaseQuery} [query] the instance that rendered the SQL, when it differs from `this`
3993
+ */
3994
+ localRefreshKeyOptions(refreshKey, query) {
3995
+ return this.localRefreshKey
3996
+ ? { localRefreshKey: (query || this).everyRefreshKeyParts(refreshKey) }
3997
+ : {};
3998
+ }
3936
3999
  everyRefreshKeySql(refreshKey, external = false) {
3937
4000
  if (this.externalQueryClass) {
3938
4001
  return this.externalQuery().everyRefreshKeySql(refreshKey, true);
3939
4002
  }
3940
- const every = refreshKey.every || '1 hour';
3941
- if (/^(\d+) (second|minute|hour|day|week)s?$/.test(every)) {
3942
- const utcOffset = this.timezone ? moment_timezone_1.default.tz(this.timezone).utcOffset() * 60 : 0;
4003
+ const { utcOffset, interval, dayOffset, cron } = this.everyRefreshKeyParts(refreshKey);
4004
+ if (!cron) {
3943
4005
  const utcOffsetPrefix = utcOffset ? `${utcOffset} + ` : '';
3944
- return [this.floorSql(`(${utcOffsetPrefix}${this.unixTimestampSql()}) / ${this.parseSecondDuration(every)}`), external, this];
4006
+ return [this.floorSql(`(${utcOffsetPrefix}${this.unixTimestampSql()}) / ${interval}`), external, this];
3945
4007
  }
3946
- const { dayOffset, utcOffset, interval } = this.calcIntervalForCronString(refreshKey);
3947
4008
  /**
3948
4009
  * Small explanation how it works for every `0 8 * * *`
3949
4010
  * 28800 is a $dayOffset
@@ -4098,6 +4159,12 @@ class BaseQuery {
4098
4159
  }
4099
4160
  }
4100
4161
  if (preAggregation.refreshKey.every || preAggregation.refreshKey.incremental) {
4162
+ // An incremental key is wrapped into `CASE WHEN NOW() < <dateTo + updateWindow>`
4163
+ // against an allocated partition range param, so it is not reproducible from
4164
+ // a time interval alone.
4165
+ const localRefreshKeyOptions = preAggregation.refreshKey.incremental
4166
+ ? {}
4167
+ : this.localRefreshKeyOptions(preAggregation.refreshKey, refreshKeyQuery);
4101
4168
  return [
4102
4169
  refreshKeyQuery.paramAllocator.buildSqlAndParams(this.refreshKeySelect(refreshKey)).concat({
4103
4170
  external: refreshKeyExternal,
@@ -4106,7 +4173,8 @@ class BaseQuery {
4106
4173
  updateWindowSeconds: preAggregation.refreshKey.updateWindow &&
4107
4174
  this.parseSecondDuration(preAggregation.refreshKey.updateWindow),
4108
4175
  renewalThresholdOutsideUpdateWindow: preAggregation.refreshKey.incremental &&
4109
- 24 * 60 * 60
4176
+ 24 * 60 * 60,
4177
+ ...localRefreshKeyOptions
4110
4178
  })
4111
4179
  ];
4112
4180
  }
@@ -4121,14 +4189,14 @@ class BaseQuery {
4121
4189
  const cubeFromPath = this.cubeEvaluator.cubeFromPath(cube);
4122
4190
  return preAggregationQueryForSql.evaluateSymbolSqlWithContext(() => preAggregationQueryForSql.cacheKeyQueries((refreshKeyCube, [refreshKeySQL, refreshKeyQueryOptions, refreshKeyQuery]) => {
4123
4191
  if (!cubeFromPath.refreshKey) {
4124
- const [sql, external, query] = this.everyRefreshKeySql({
4125
- every: '1 hour'
4126
- });
4192
+ const hourlyRefreshKey = { every: '1 hour' };
4193
+ const [sql, external, query] = this.everyRefreshKeySql(hourlyRefreshKey);
4127
4194
  return [
4128
4195
  this.refreshKeySelect(sql),
4129
4196
  {
4130
4197
  external,
4131
4198
  renewalThreshold: this.defaultRefreshKeyRenewalThreshold(),
4199
+ ...this.localRefreshKeyOptions(hourlyRefreshKey, query)
4132
4200
  },
4133
4201
  query
4134
4202
  ];