drizzle-cube 0.3.28 → 0.3.31
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/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +1 -1
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +1 -1
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +1 -1
- package/dist/adapters/{mcp-transport-CXGL1hg7.js → mcp-transport-D4KrudfS.js} +282 -277
- package/dist/adapters/{mcp-transport-ConlvewL.cjs → mcp-transport-Dn7sKoBD.cjs} +7 -7
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +1 -1
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +3 -3
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-t5XeTZom.js → DashboardEditModal-rLcmZpe_.js} +8 -8
- package/dist/client/chunks/{DashboardEditModal-t5XeTZom.js.map → DashboardEditModal-rLcmZpe_.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-SsBGHJWi.js → RetentionCombinedChart-7bGP_ozM.js} +2 -2
- package/dist/client/chunks/{RetentionCombinedChart-SsBGHJWi.js.map → RetentionCombinedChart-7bGP_ozM.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-CKVYG9jJ.js → analysis-builder-DCt5C58c.js} +8 -8
- package/dist/client/chunks/{analysis-builder-CKVYG9jJ.js.map → analysis-builder-DCt5C58c.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-CF8Vx1oD.js → analysis-builder-shared-ysrRYGiU.js} +7 -7
- package/dist/client/chunks/{analysis-builder-shared-CF8Vx1oD.js.map → analysis-builder-shared-ysrRYGiU.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-Bpu_-8uT.js → chart-activity-grid-sUkuCJzm.js} +2 -2
- package/dist/client/chunks/{chart-activity-grid-Bpu_-8uT.js.map → chart-activity-grid-sUkuCJzm.js.map} +1 -1
- package/dist/client/chunks/{chart-area-DcvLkvGb.js → chart-area-C4DIi9k_.js} +3 -3
- package/dist/client/chunks/{chart-area-DcvLkvGb.js.map → chart-area-C4DIi9k_.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-CNfm5iMY.js → chart-bar-7ZleGCsN.js} +2 -2
- package/dist/client/chunks/{chart-bar-CNfm5iMY.js.map → chart-bar-7ZleGCsN.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-KA-RYWR8.js → chart-bubble-D-auWIjP.js} +2 -2
- package/dist/client/chunks/{chart-bubble-KA-RYWR8.js.map → chart-bubble-D-auWIjP.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-Cq14arji.js → chart-data-table-DW6VNGeW.js} +3 -3
- package/dist/client/chunks/{chart-data-table-Cq14arji.js.map → chart-data-table-DW6VNGeW.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-DFKWS49U.js → chart-funnel-eUJApzmA.js} +2 -2
- package/dist/client/chunks/{chart-funnel-DFKWS49U.js.map → chart-funnel-eUJApzmA.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-D2g0dbKz.js → chart-heat-map-DR3O3GXx.js} +2 -2
- package/dist/client/chunks/{chart-heat-map-D2g0dbKz.js.map → chart-heat-map-DR3O3GXx.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-Cc-jiBd0.js → chart-kpi-delta-Bp9Yrgyc.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-Cc-jiBd0.js.map → chart-kpi-delta-Bp9Yrgyc.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-BXolYaZA.js → chart-kpi-number-B3yvgbr-.js} +2 -2
- package/dist/client/chunks/{chart-kpi-number-BXolYaZA.js.map → chart-kpi-number-B3yvgbr-.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-PA8oyypA.js → chart-kpi-text-D0TsUiaO.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-PA8oyypA.js.map → chart-kpi-text-D0TsUiaO.js.map} +1 -1
- package/dist/client/chunks/{chart-line-BOrtUdOD.js → chart-line-C7VStgaJ.js} +3 -3
- package/dist/client/chunks/{chart-line-BOrtUdOD.js.map → chart-line-C7VStgaJ.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-B-Sbsvd2.js → chart-pie-DPdYJSM3.js} +2 -2
- package/dist/client/chunks/{chart-pie-B-Sbsvd2.js.map → chart-pie-DPdYJSM3.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-CezgvXhm.js → chart-radar-DF6VNSiC.js} +2 -2
- package/dist/client/chunks/{chart-radar-CezgvXhm.js.map → chart-radar-DF6VNSiC.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-COBPiBxm.js → chart-radial-bar-7Ttfz-kO.js} +2 -2
- package/dist/client/chunks/{chart-radial-bar-COBPiBxm.js.map → chart-radial-bar-7Ttfz-kO.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-O4WQBRDk.js → chart-sankey-D86RYk9B.js} +2 -2
- package/dist/client/chunks/{chart-sankey-O4WQBRDk.js.map → chart-sankey-D86RYk9B.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-BVF0n9DR.js → chart-scatter-BUnIiLr_.js} +2 -2
- package/dist/client/chunks/{chart-scatter-BVF0n9DR.js.map → chart-scatter-BUnIiLr_.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-DZzVj_6S.js → chart-sunburst-CsHlHfZQ.js} +2 -2
- package/dist/client/chunks/{chart-sunburst-DZzVj_6S.js.map → chart-sunburst-CsHlHfZQ.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CeEtNuo6.js → chart-tree-map-DFAbkeo1.js} +2 -2
- package/dist/client/chunks/{chart-tree-map-CeEtNuo6.js.map → chart-tree-map-DFAbkeo1.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DF99lItO.js → charts-core-DAF1iT_h.js} +2 -2
- package/dist/client/chunks/{charts-core-DF99lItO.js.map → charts-core-DAF1iT_h.js.map} +1 -1
- package/dist/client/chunks/{charts-loader-AkRviD9H.js → charts-loader-7pEaEz-f.js} +20 -20
- package/dist/client/chunks/{charts-loader-AkRviD9H.js.map → charts-loader-7pEaEz-f.js.map} +1 -1
- package/dist/client/chunks/{core-Bso4ultM.js → core-DGLxd5v5.js} +2 -2
- package/dist/client/chunks/{core-Bso4ultM.js.map → core-DGLxd5v5.js.map} +1 -1
- package/dist/client/chunks/{hooks-B69r8rwU.js → hooks-CdyIO1-j.js} +4 -4
- package/dist/client/chunks/{hooks-B69r8rwU.js.map → hooks-CdyIO1-j.js.map} +1 -1
- package/dist/client/chunks/{providers-CxlSRYvE.js → providers-D2xswCYu.js} +2 -2
- package/dist/client/chunks/{providers-CxlSRYvE.js.map → providers-D2xswCYu.js.map} +1 -1
- package/dist/client/chunks/{syntaxHighlighting-yTdSle2t.js → syntaxHighlighting-DAT9C6Ss.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-yTdSle2t.js.map → syntaxHighlighting-DAT9C6Ss.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-GZtwGRu7.js → useDirtyStateTracking-CTS_m9mg.js} +3 -3
- package/dist/client/chunks/{useDirtyStateTracking-GZtwGRu7.js.map → useDirtyStateTracking-CTS_m9mg.js.map} +1 -1
- package/dist/client/chunks/{vendor-B_H-VRhj.js → vendor-DfDLOfBe.js} +2 -2
- package/dist/client/chunks/vendor-DfDLOfBe.js.map +1 -0
- package/dist/client/components.js +2 -2
- package/dist/client/hooks.js +3 -3
- package/dist/client/index.js +9 -9
- package/dist/client/providers.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/utils.js +6 -6
- package/dist/client-bundle-stats.html +34 -33
- package/dist/server/index.cjs +5 -5
- package/dist/server/index.js +230 -225
- package/package.json +1 -1
- package/dist/client/chunks/vendor-B_H-VRhj.js.map +0 -1
package/dist/server/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sql as o, eq as
|
|
1
|
+
import { sql as o, eq as K, and as G, SQL as yE, gte as ae, lte as oe, arrayContained as bE, arrayOverlaps as FE, arrayContains as BE, isNotNull as Ct, ne as lt, or as Ce, isNull as ut, notInArray as Lt, inArray as Ge, lt as ye, gt as be, StringChunk as HE, sum as Q, max as Z, min as le, count as rt, countDistinct as YE, desc as VE, asc as _t } from "drizzle-orm";
|
|
2
2
|
class Ue {
|
|
3
3
|
/**
|
|
4
4
|
* Default implementation returns template unchanged
|
|
@@ -2007,7 +2007,7 @@ function Dt(n, e, t) {
|
|
|
2007
2007
|
return ct(n, e);
|
|
2008
2008
|
throw new Error("Unable to determine database engine type. Please specify engineType parameter.");
|
|
2009
2009
|
}
|
|
2010
|
-
function
|
|
2010
|
+
function X(n) {
|
|
2011
2011
|
return typeof n == "function" ? n() : n;
|
|
2012
2012
|
}
|
|
2013
2013
|
function Tt(n, e) {
|
|
@@ -2054,12 +2054,12 @@ function Ts(n, e) {
|
|
|
2054
2054
|
throw new Error("expandBelongsToManyJoin can only be called on belongsToMany relationships with through configuration");
|
|
2055
2055
|
const { table: t, sourceKey: E, targetKey: s, securitySql: i } = n.through, r = [];
|
|
2056
2056
|
for (const R of E) {
|
|
2057
|
-
const S = R.as ||
|
|
2057
|
+
const S = R.as || K;
|
|
2058
2058
|
r.push(S(R.source, R.target));
|
|
2059
2059
|
}
|
|
2060
2060
|
const T = [];
|
|
2061
2061
|
for (const R of s) {
|
|
2062
|
-
const S = R.as ||
|
|
2062
|
+
const S = R.as || K;
|
|
2063
2063
|
T.push(S(R.source, R.target));
|
|
2064
2064
|
}
|
|
2065
2065
|
let A;
|
|
@@ -2073,13 +2073,13 @@ function Ts(n, e) {
|
|
|
2073
2073
|
{
|
|
2074
2074
|
joinType: a,
|
|
2075
2075
|
table: t,
|
|
2076
|
-
condition:
|
|
2076
|
+
condition: G(...r)
|
|
2077
2077
|
},
|
|
2078
2078
|
{
|
|
2079
2079
|
joinType: a,
|
|
2080
2080
|
table: t,
|
|
2081
2081
|
// This will be replaced with target cube table in query planner
|
|
2082
|
-
condition:
|
|
2082
|
+
condition: G(...T)
|
|
2083
2083
|
}
|
|
2084
2084
|
],
|
|
2085
2085
|
junctionSecurityConditions: A
|
|
@@ -2174,7 +2174,7 @@ function os(n) {
|
|
|
2174
2174
|
return {
|
|
2175
2175
|
measures: n.measures ? [...n.measures].sort() : void 0,
|
|
2176
2176
|
dimensions: n.dimensions ? [...n.dimensions].sort() : void 0,
|
|
2177
|
-
filters: n.filters ?
|
|
2177
|
+
filters: n.filters ? x(n.filters) : void 0,
|
|
2178
2178
|
timeDimensions: n.timeDimensions ? Is(n.timeDimensions) : void 0,
|
|
2179
2179
|
limit: n.limit,
|
|
2180
2180
|
offset: n.offset,
|
|
@@ -2196,7 +2196,7 @@ function As(n) {
|
|
|
2196
2196
|
steps: n.steps.map((e) => {
|
|
2197
2197
|
const t = {
|
|
2198
2198
|
name: e.name,
|
|
2199
|
-
filter: e.filter ? Array.isArray(e.filter) ?
|
|
2199
|
+
filter: e.filter ? Array.isArray(e.filter) ? x(e.filter) : x([e.filter])[0] : void 0,
|
|
2200
2200
|
timeToConvert: e.timeToConvert
|
|
2201
2201
|
};
|
|
2202
2202
|
return "cube" in e && e.cube && (t.cube = e.cube), t;
|
|
@@ -2213,7 +2213,7 @@ function Rs(n) {
|
|
|
2213
2213
|
// Normalize starting step - sort filters for consistent hashing
|
|
2214
2214
|
startingStep: {
|
|
2215
2215
|
name: n.startingStep.name,
|
|
2216
|
-
filter: n.startingStep.filter ? Array.isArray(n.startingStep.filter) ?
|
|
2216
|
+
filter: n.startingStep.filter ? Array.isArray(n.startingStep.filter) ? x(n.startingStep.filter) : x([n.startingStep.filter])[0] : void 0
|
|
2217
2217
|
},
|
|
2218
2218
|
// CRITICAL: Include step counts in cache key
|
|
2219
2219
|
stepsBefore: n.stepsBefore,
|
|
@@ -2235,18 +2235,18 @@ function Ss(n) {
|
|
|
2235
2235
|
periods: n.periods,
|
|
2236
2236
|
retentionType: n.retentionType,
|
|
2237
2237
|
// Normalize filters for consistent hashing
|
|
2238
|
-
cohortFilters: n.cohortFilters ? Array.isArray(n.cohortFilters) ?
|
|
2239
|
-
activityFilters: n.activityFilters ? Array.isArray(n.activityFilters) ?
|
|
2238
|
+
cohortFilters: n.cohortFilters ? Array.isArray(n.cohortFilters) ? x(n.cohortFilters) : x([n.cohortFilters])[0] : void 0,
|
|
2239
|
+
activityFilters: n.activityFilters ? Array.isArray(n.activityFilters) ? x(n.activityFilters) : x([n.activityFilters])[0] : void 0,
|
|
2240
2240
|
// Include breakdown dimensions for cache key
|
|
2241
2241
|
breakdownDimensions: n.breakdownDimensions
|
|
2242
2242
|
};
|
|
2243
2243
|
}
|
|
2244
|
-
function
|
|
2244
|
+
function x(n) {
|
|
2245
2245
|
return [...n].map((e) => {
|
|
2246
2246
|
if ("and" in e && e.and)
|
|
2247
|
-
return { and:
|
|
2247
|
+
return { and: x(e.and) };
|
|
2248
2248
|
if ("or" in e && e.or)
|
|
2249
|
-
return { or:
|
|
2249
|
+
return { or: x(e.or) };
|
|
2250
2250
|
const t = e;
|
|
2251
2251
|
return {
|
|
2252
2252
|
...t,
|
|
@@ -2304,7 +2304,7 @@ class Ne {
|
|
|
2304
2304
|
const i = typeof s == "number" ? new Date(s * (this.databaseAdapter.getEngineType() === "sqlite" ? 1e3 : 1)) : new Date(s), r = new Date(i);
|
|
2305
2305
|
r.setUTCHours(23, 59, 59, 999), this.databaseAdapter.isTimestampInteger() ? s = this.databaseAdapter.getEngineType() === "sqlite" ? Math.floor(r.getTime() / 1e3) : r.getTime() : s = r.toISOString();
|
|
2306
2306
|
}
|
|
2307
|
-
return
|
|
2307
|
+
return G(
|
|
2308
2308
|
ae(e, E),
|
|
2309
2309
|
oe(e, s)
|
|
2310
2310
|
);
|
|
@@ -2313,7 +2313,7 @@ class Ne {
|
|
|
2313
2313
|
const E = this.parseRelativeDateRange(t);
|
|
2314
2314
|
if (E) {
|
|
2315
2315
|
let R, S;
|
|
2316
|
-
return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (R = Math.floor(E.start.getTime() / 1e3), S = Math.floor(E.end.getTime() / 1e3)) : (R = E.start.getTime(), S = E.end.getTime()) : (R = E.start.toISOString(), S = E.end.toISOString()),
|
|
2316
|
+
return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (R = Math.floor(E.start.getTime() / 1e3), S = Math.floor(E.end.getTime() / 1e3)) : (R = E.start.getTime(), S = E.end.getTime()) : (R = E.start.toISOString(), S = E.end.toISOString()), G(
|
|
2317
2317
|
ae(e, R),
|
|
2318
2318
|
oe(e, S)
|
|
2319
2319
|
);
|
|
@@ -2325,7 +2325,7 @@ class Ne {
|
|
|
2325
2325
|
const T = new Date(i);
|
|
2326
2326
|
T.setUTCHours(23, 59, 59, 999);
|
|
2327
2327
|
let A, a;
|
|
2328
|
-
return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (A = Math.floor(r.getTime() / 1e3), a = Math.floor(T.getTime() / 1e3)) : (A = r.getTime(), a = T.getTime()) : (A = r.toISOString(), a = T.toISOString()),
|
|
2328
|
+
return this.databaseAdapter.isTimestampInteger() ? this.databaseAdapter.getEngineType() === "sqlite" ? (A = Math.floor(r.getTime() / 1e3), a = Math.floor(T.getTime() / 1e3)) : (A = r.getTime(), a = T.getTime()) : (A = r.toISOString(), a = T.toISOString()), G(
|
|
2329
2329
|
ae(e, A),
|
|
2330
2330
|
oe(e, a)
|
|
2331
2331
|
);
|
|
@@ -2476,7 +2476,7 @@ class he {
|
|
|
2476
2476
|
return Ge(e, r);
|
|
2477
2477
|
} else if (r.length === 1) {
|
|
2478
2478
|
const A = s?.type === "time" && this.dateTimeBuilder.normalizeDate(T) || T;
|
|
2479
|
-
return
|
|
2479
|
+
return K(e, A);
|
|
2480
2480
|
}
|
|
2481
2481
|
return this.databaseAdapter.buildBooleanLiteral(!1);
|
|
2482
2482
|
case "notEquals":
|
|
@@ -2511,7 +2511,7 @@ class he {
|
|
|
2511
2511
|
const S = typeof a == "number" ? new Date(a * (this.databaseAdapter.getEngineType() === "sqlite" ? 1e3 : 1)) : new Date(a), I = new Date(S);
|
|
2512
2512
|
I.setUTCHours(23, 59, 59, 999), this.databaseAdapter.isTimestampInteger() ? a = this.databaseAdapter.getEngineType() === "sqlite" ? Math.floor(I.getTime() / 1e3) : I.getTime() : a = I.toISOString();
|
|
2513
2513
|
}
|
|
2514
|
-
return
|
|
2514
|
+
return G(
|
|
2515
2515
|
ae(e, A),
|
|
2516
2516
|
oe(e, a)
|
|
2517
2517
|
);
|
|
@@ -2527,7 +2527,7 @@ class he {
|
|
|
2527
2527
|
return A ? be(e, A) : null;
|
|
2528
2528
|
}
|
|
2529
2529
|
case "between":
|
|
2530
|
-
return r.length >= 2 ?
|
|
2530
|
+
return r.length >= 2 ? G(
|
|
2531
2531
|
ae(e, r[0]),
|
|
2532
2532
|
oe(e, r[1])
|
|
2533
2533
|
) : null;
|
|
@@ -2553,10 +2553,10 @@ class he {
|
|
|
2553
2553
|
case "isEmpty":
|
|
2554
2554
|
return Ce(
|
|
2555
2555
|
ut(e),
|
|
2556
|
-
|
|
2556
|
+
K(e, "")
|
|
2557
2557
|
);
|
|
2558
2558
|
case "isNotEmpty":
|
|
2559
|
-
return
|
|
2559
|
+
return G(
|
|
2560
2560
|
Ct(e),
|
|
2561
2561
|
lt(e, "")
|
|
2562
2562
|
);
|
|
@@ -2579,7 +2579,7 @@ class he {
|
|
|
2579
2579
|
buildLogicalFilter(e, t, E) {
|
|
2580
2580
|
if ("and" in e && e.and) {
|
|
2581
2581
|
const s = e.and.map((i) => this.buildSingleFilter(i, t, E)).filter((i) => i !== null);
|
|
2582
|
-
return s.length > 0 ? s.length === 1 ? s[0] :
|
|
2582
|
+
return s.length > 0 ? s.length === 1 ? s[0] : G(...s) : null;
|
|
2583
2583
|
}
|
|
2584
2584
|
if ("or" in e && e.or) {
|
|
2585
2585
|
const s = e.or.map((i) => this.buildSingleFilter(i, t, E)).filter((i) => i !== null);
|
|
@@ -3030,7 +3030,7 @@ class H {
|
|
|
3030
3030
|
case "count":
|
|
3031
3031
|
case "countDistinct":
|
|
3032
3032
|
case "sum":
|
|
3033
|
-
O =
|
|
3033
|
+
O = Q(N);
|
|
3034
3034
|
break;
|
|
3035
3035
|
case "avg":
|
|
3036
3036
|
O = this.databaseAdapter.buildAvg(N);
|
|
@@ -3042,10 +3042,10 @@ class H {
|
|
|
3042
3042
|
O = Z(N);
|
|
3043
3043
|
break;
|
|
3044
3044
|
case "number":
|
|
3045
|
-
O =
|
|
3045
|
+
O = Q(N);
|
|
3046
3046
|
break;
|
|
3047
3047
|
default:
|
|
3048
|
-
O =
|
|
3048
|
+
O = Q(N);
|
|
3049
3049
|
}
|
|
3050
3050
|
r.set(A, () => O);
|
|
3051
3051
|
}
|
|
@@ -3087,7 +3087,7 @@ class H {
|
|
|
3087
3087
|
case "count":
|
|
3088
3088
|
case "countDistinct":
|
|
3089
3089
|
case "sum":
|
|
3090
|
-
return
|
|
3090
|
+
return Q(T);
|
|
3091
3091
|
case "avg":
|
|
3092
3092
|
return this.databaseAdapter.buildAvg(T);
|
|
3093
3093
|
case "min":
|
|
@@ -3095,9 +3095,9 @@ class H {
|
|
|
3095
3095
|
case "max":
|
|
3096
3096
|
return Z(T);
|
|
3097
3097
|
case "number":
|
|
3098
|
-
return
|
|
3098
|
+
return Q(T);
|
|
3099
3099
|
default:
|
|
3100
|
-
return
|
|
3100
|
+
return Q(T);
|
|
3101
3101
|
}
|
|
3102
3102
|
}
|
|
3103
3103
|
}
|
|
@@ -3131,7 +3131,7 @@ class H {
|
|
|
3131
3131
|
return T ? o`(${T})` : void 0;
|
|
3132
3132
|
}).filter(Boolean);
|
|
3133
3133
|
if (i.length > 0) {
|
|
3134
|
-
const r = i.length === 1 ? i[0] :
|
|
3134
|
+
const r = i.length === 1 ? i[0] : G(...i);
|
|
3135
3135
|
s = this.databaseAdapter.buildCaseWhen([
|
|
3136
3136
|
{ when: r, then: s }
|
|
3137
3137
|
]);
|
|
@@ -3143,7 +3143,7 @@ class H {
|
|
|
3143
3143
|
case "countDistinct":
|
|
3144
3144
|
return YE(s);
|
|
3145
3145
|
case "sum":
|
|
3146
|
-
return
|
|
3146
|
+
return Q(s);
|
|
3147
3147
|
case "avg":
|
|
3148
3148
|
return this.databaseAdapter.buildAvg(s);
|
|
3149
3149
|
case "min":
|
|
@@ -3662,7 +3662,7 @@ class ls {
|
|
|
3662
3662
|
const N = e;
|
|
3663
3663
|
if (N.and) {
|
|
3664
3664
|
const O = N.and.map((C) => this.processFilter(C, t, E, s, i)).filter((C) => C !== null);
|
|
3665
|
-
return O.length > 0 ?
|
|
3665
|
+
return O.length > 0 ? G(...O) : null;
|
|
3666
3666
|
}
|
|
3667
3667
|
if (N.or) {
|
|
3668
3668
|
const O = N.or.map((C) => this.processFilter(C, t, E, s, i)).filter((C) => C !== null);
|
|
@@ -3835,7 +3835,7 @@ class ue {
|
|
|
3835
3835
|
const { cube: A, path: a } = r.shift(), R = this.cubes.get(A);
|
|
3836
3836
|
if (R?.joins)
|
|
3837
3837
|
for (const [, S] of Object.entries(R.joins)) {
|
|
3838
|
-
const N =
|
|
3838
|
+
const N = X(S.targetCube).name;
|
|
3839
3839
|
if (T.has(N))
|
|
3840
3840
|
continue;
|
|
3841
3841
|
const O = [
|
|
@@ -3915,7 +3915,7 @@ class ue {
|
|
|
3915
3915
|
const R = this.cubes.get(T);
|
|
3916
3916
|
if (R?.joins)
|
|
3917
3917
|
for (const [, S] of Object.entries(R.joins)) {
|
|
3918
|
-
const N =
|
|
3918
|
+
const N = X(S.targetCube).name;
|
|
3919
3919
|
if (a.has(N))
|
|
3920
3920
|
continue;
|
|
3921
3921
|
const O = [
|
|
@@ -3963,10 +3963,10 @@ class ue {
|
|
|
3963
3963
|
buildJoinCondition(e, t, E) {
|
|
3964
3964
|
const s = [];
|
|
3965
3965
|
for (const i of e.on) {
|
|
3966
|
-
const r = t ? o`${o.identifier(t)}.${o.identifier(i.source.name)}` : at(i.source), T = E ? o`${o.identifier(E)}.${o.identifier(i.target.name)}` : at(i.target), A = i.as ||
|
|
3966
|
+
const r = t ? o`${o.identifier(t)}.${o.identifier(i.source.name)}` : at(i.source), T = E ? o`${o.identifier(E)}.${o.identifier(i.target.name)}` : at(i.target), A = i.as || K;
|
|
3967
3967
|
s.push(A(r, T));
|
|
3968
3968
|
}
|
|
3969
|
-
return
|
|
3969
|
+
return G(...s);
|
|
3970
3970
|
}
|
|
3971
3971
|
/**
|
|
3972
3972
|
* Get all reachable cubes from a starting cube
|
|
@@ -3981,7 +3981,7 @@ class ue {
|
|
|
3981
3981
|
const s = E.shift(), i = this.cubes.get(s);
|
|
3982
3982
|
if (i?.joins)
|
|
3983
3983
|
for (const [, r] of Object.entries(i.joins)) {
|
|
3984
|
-
const A =
|
|
3984
|
+
const A = X(r.targetCube).name;
|
|
3985
3985
|
t.has(A) || (t.add(A), E.push(A));
|
|
3986
3986
|
}
|
|
3987
3987
|
}
|
|
@@ -4247,7 +4247,7 @@ class CE {
|
|
|
4247
4247
|
if (!N)
|
|
4248
4248
|
continue;
|
|
4249
4249
|
const O = s.measures.filter(
|
|
4250
|
-
(
|
|
4250
|
+
(f) => f.startsWith(R.name + ".")
|
|
4251
4251
|
), C = this.extractMeasuresFromFilters(s, R), u = [.../* @__PURE__ */ new Set([...O, ...C])];
|
|
4252
4252
|
if (u.length === 0)
|
|
4253
4253
|
continue;
|
|
@@ -4256,19 +4256,19 @@ class CE {
|
|
|
4256
4256
|
if (l?.hasIntermediateHasMany && l.intermediateJoins.length > 0)
|
|
4257
4257
|
_ = l.correctJoinKeys, U = l.intermediateJoins;
|
|
4258
4258
|
else {
|
|
4259
|
-
const
|
|
4260
|
-
if (!
|
|
4259
|
+
const f = I ? this.findJoinInfoToCube(e, t.name) : this.findJoinInfoForCube(e, t, R.name);
|
|
4260
|
+
if (!f)
|
|
4261
4261
|
continue;
|
|
4262
|
-
_ = I ?
|
|
4263
|
-
sourceColumn:
|
|
4264
|
-
targetColumn:
|
|
4265
|
-
sourceColumnObj:
|
|
4266
|
-
targetColumnObj:
|
|
4267
|
-
})) :
|
|
4268
|
-
sourceColumn:
|
|
4269
|
-
targetColumn:
|
|
4270
|
-
sourceColumnObj:
|
|
4271
|
-
targetColumnObj:
|
|
4262
|
+
_ = I || "reversed" in f && f.reversed ? f.joinDef.on.map((y) => ({
|
|
4263
|
+
sourceColumn: y.target.name,
|
|
4264
|
+
targetColumn: y.source.name,
|
|
4265
|
+
sourceColumnObj: y.target,
|
|
4266
|
+
targetColumnObj: y.source
|
|
4267
|
+
})) : f.joinDef.on.map((y) => ({
|
|
4268
|
+
sourceColumn: y.source.name,
|
|
4269
|
+
targetColumn: y.target.name,
|
|
4270
|
+
sourceColumnObj: y.source,
|
|
4271
|
+
targetColumnObj: y.target
|
|
4272
4272
|
})), U = void 0;
|
|
4273
4273
|
}
|
|
4274
4274
|
const D = this.findPropagatingFilters(s, R, e), m = /* @__PURE__ */ new Map([[R.name, R]]), { aggregateMeasures: P, requiredBaseMeasures: M } = H.categorizeForPostAggregation(
|
|
@@ -4276,13 +4276,13 @@ class CE {
|
|
|
4276
4276
|
m
|
|
4277
4277
|
), g = [.../* @__PURE__ */ new Set([
|
|
4278
4278
|
...P,
|
|
4279
|
-
...Array.from(M).filter((
|
|
4279
|
+
...Array.from(M).filter((f) => f.startsWith(R.name + "."))
|
|
4280
4280
|
])];
|
|
4281
4281
|
if (g.length > 0) {
|
|
4282
|
-
const
|
|
4282
|
+
const f = this.expandCalculatedMeasureDependencies(
|
|
4283
4283
|
R,
|
|
4284
4284
|
g
|
|
4285
|
-
),
|
|
4285
|
+
), F = this.findDownstreamJoinKeys(
|
|
4286
4286
|
R,
|
|
4287
4287
|
s,
|
|
4288
4288
|
e
|
|
@@ -4292,9 +4292,9 @@ class CE {
|
|
|
4292
4292
|
alias: S,
|
|
4293
4293
|
cteAlias: `${R.name.toLowerCase()}_agg`,
|
|
4294
4294
|
joinKeys: _,
|
|
4295
|
-
measures:
|
|
4295
|
+
measures: f,
|
|
4296
4296
|
propagatingFilters: D.length > 0 ? D : void 0,
|
|
4297
|
-
downstreamJoinKeys:
|
|
4297
|
+
downstreamJoinKeys: F.length > 0 ? F : void 0,
|
|
4298
4298
|
intermediateJoins: U && U.length > 0 ? U : void 0,
|
|
4299
4299
|
cteType: "aggregate",
|
|
4300
4300
|
cteReason: N
|
|
@@ -4311,7 +4311,7 @@ class CE {
|
|
|
4311
4311
|
for (const [, E] of e)
|
|
4312
4312
|
if (E.name !== t && E.joins) {
|
|
4313
4313
|
for (const [, s] of Object.entries(E.joins))
|
|
4314
|
-
if (
|
|
4314
|
+
if (X(s.targetCube).name === t)
|
|
4315
4315
|
return { sourceCube: E, joinDef: s };
|
|
4316
4316
|
}
|
|
4317
4317
|
return null;
|
|
@@ -4396,7 +4396,7 @@ class CE {
|
|
|
4396
4396
|
if (!i.has(T) && (i.add(T), !!A.joins)) {
|
|
4397
4397
|
for (const [, a] of Object.entries(A.joins))
|
|
4398
4398
|
if (a.relationship === "hasMany") {
|
|
4399
|
-
const R =
|
|
4399
|
+
const R = X(a.targetCube);
|
|
4400
4400
|
(r.has(T) || r.has(R.name)) && s.push({
|
|
4401
4401
|
fromCube: T,
|
|
4402
4402
|
toCube: R.name,
|
|
@@ -4436,15 +4436,21 @@ class CE {
|
|
|
4436
4436
|
*/
|
|
4437
4437
|
findJoinInfoForCube(e, t, E) {
|
|
4438
4438
|
if (t.joins) {
|
|
4439
|
-
for (const [,
|
|
4440
|
-
if (
|
|
4441
|
-
return { sourceCube: t, joinDef:
|
|
4439
|
+
for (const [, i] of Object.entries(t.joins))
|
|
4440
|
+
if (X(i.targetCube).name === E)
|
|
4441
|
+
return { sourceCube: t, joinDef: i };
|
|
4442
4442
|
}
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4443
|
+
const s = e.get(E);
|
|
4444
|
+
if (s?.joins) {
|
|
4445
|
+
for (const [, i] of Object.entries(s.joins))
|
|
4446
|
+
if (X(i.targetCube).name === t.name)
|
|
4447
|
+
return { sourceCube: s, joinDef: i, reversed: !0 };
|
|
4448
|
+
}
|
|
4449
|
+
for (const [, i] of e)
|
|
4450
|
+
if (!(i.name === t.name || i.name === E) && i.joins) {
|
|
4451
|
+
for (const [, r] of Object.entries(i.joins))
|
|
4452
|
+
if (X(r.targetCube).name === E)
|
|
4453
|
+
return { sourceCube: i, joinDef: r };
|
|
4448
4454
|
}
|
|
4449
4455
|
return null;
|
|
4450
4456
|
}
|
|
@@ -4475,7 +4481,7 @@ class CE {
|
|
|
4475
4481
|
}
|
|
4476
4482
|
if (e.joins)
|
|
4477
4483
|
for (const [, r] of Object.entries(e.joins)) {
|
|
4478
|
-
const A =
|
|
4484
|
+
const A = X(r.targetCube).name;
|
|
4479
4485
|
if (i.has(A)) {
|
|
4480
4486
|
const a = r.on.map((R) => ({
|
|
4481
4487
|
sourceColumn: R.source.name,
|
|
@@ -4531,7 +4537,7 @@ class CE {
|
|
|
4531
4537
|
if (!e.joins)
|
|
4532
4538
|
return null;
|
|
4533
4539
|
for (const [, E] of Object.entries(e.joins))
|
|
4534
|
-
if (
|
|
4540
|
+
if (X(E.targetCube).name === t && E.relationship === "hasMany")
|
|
4535
4541
|
return E;
|
|
4536
4542
|
return null;
|
|
4537
4543
|
}
|
|
@@ -4559,7 +4565,7 @@ class CE {
|
|
|
4559
4565
|
const T = E.get(r);
|
|
4560
4566
|
if (T?.joins) {
|
|
4561
4567
|
for (const [, A] of Object.entries(T.joins))
|
|
4562
|
-
if (
|
|
4568
|
+
if (X(A.targetCube).name === t.name && A.relationship === "hasMany") {
|
|
4563
4569
|
const R = this.extractFiltersForCube(e.filters, r), S = this.extractTimeDimensionFiltersForCube(e, r), I = [...R, ...S];
|
|
4564
4570
|
I.length > 0 && A.on.length > 0 && s.push({
|
|
4565
4571
|
sourceCube: T,
|
|
@@ -4985,16 +4991,16 @@ class us {
|
|
|
4985
4991
|
for (const m of t.dimensions) {
|
|
4986
4992
|
const [P, M] = m.split(".");
|
|
4987
4993
|
if (P === R && r.dimensions && r.dimensions[M]) {
|
|
4988
|
-
const g = r.dimensions[M],
|
|
4989
|
-
a[M] = o`${
|
|
4994
|
+
const g = r.dimensions[M], f = this.queryBuilder.buildMeasureExpression({ sql: g.sql, type: "number" }, E);
|
|
4995
|
+
a[M] = o`${f}`.as(M);
|
|
4990
4996
|
}
|
|
4991
4997
|
}
|
|
4992
4998
|
if (t.timeDimensions)
|
|
4993
4999
|
for (const m of t.timeDimensions) {
|
|
4994
5000
|
const [P, M] = m.dimension.split(".");
|
|
4995
5001
|
if (P === R && r.dimensions && r.dimensions[M]) {
|
|
4996
|
-
const g = r.dimensions[M],
|
|
4997
|
-
a[M] = o`${
|
|
5002
|
+
const g = r.dimensions[M], f = this.queryBuilder.buildTimeDimensionExpression(g.sql, m.granularity, E);
|
|
5003
|
+
a[M] = o`${f}`.as(M);
|
|
4998
5004
|
}
|
|
4999
5005
|
}
|
|
5000
5006
|
if (Object.keys(a).length === 0)
|
|
@@ -5002,10 +5008,10 @@ class us {
|
|
|
5002
5008
|
let N = E.db.select(a).from(T.from);
|
|
5003
5009
|
if (A && e.intermediateJoins)
|
|
5004
5010
|
for (const m of e.intermediateJoins) {
|
|
5005
|
-
const P = m.cube.sql(E), g = [
|
|
5011
|
+
const P = m.cube.sql(E), g = [K(m.cteJoinColumn, m.joinDef.on[0]?.target)];
|
|
5006
5012
|
m.securityFilter && g.push(m.securityFilter), N = N.leftJoin(
|
|
5007
5013
|
P.from,
|
|
5008
|
-
|
|
5014
|
+
G(...g)
|
|
5009
5015
|
);
|
|
5010
5016
|
}
|
|
5011
5017
|
const O = s ? {
|
|
@@ -5016,8 +5022,8 @@ class us {
|
|
|
5016
5022
|
for (const m of t.timeDimensions) {
|
|
5017
5023
|
const [P, M] = m.dimension.split(".");
|
|
5018
5024
|
if (P === R && r.dimensions && r.dimensions[M] && m.dateRange) {
|
|
5019
|
-
const g = r.dimensions[M],
|
|
5020
|
-
|
|
5025
|
+
const g = r.dimensions[M], f = this.queryBuilder.buildMeasureExpression({ sql: g.sql, type: "number" }, E), F = this.queryBuilder.buildDateRangeCondition(f, m.dateRange);
|
|
5026
|
+
F && u.push(F);
|
|
5021
5027
|
}
|
|
5022
5028
|
}
|
|
5023
5029
|
if (t.filters) {
|
|
@@ -5025,10 +5031,10 @@ class us {
|
|
|
5025
5031
|
if (!("and" in m) && !("or" in m) && "member" in m && "operator" in m) {
|
|
5026
5032
|
const P = m, [M, g] = P.member.split(".");
|
|
5027
5033
|
if (M === R && r.dimensions && r.dimensions[g]) {
|
|
5028
|
-
const
|
|
5034
|
+
const f = r.dimensions[g];
|
|
5029
5035
|
if (P.operator === "inDateRange") {
|
|
5030
|
-
const
|
|
5031
|
-
|
|
5036
|
+
const F = this.queryBuilder.buildMeasureExpression({ sql: f.sql, type: "number" }, E), y = this.queryBuilder.buildDateRangeCondition(F, P.values);
|
|
5037
|
+
y && u.push(y);
|
|
5032
5038
|
}
|
|
5033
5039
|
}
|
|
5034
5040
|
}
|
|
@@ -5043,7 +5049,7 @@ class us {
|
|
|
5043
5049
|
}
|
|
5044
5050
|
const l = [];
|
|
5045
5051
|
if (T.where && l.push(T.where), l.push(...C, ...u), l.length > 0) {
|
|
5046
|
-
const m = l.length === 1 ? l[0] :
|
|
5052
|
+
const m = l.length === 1 ? l[0] : G(...l);
|
|
5047
5053
|
N = N.where(m);
|
|
5048
5054
|
}
|
|
5049
5055
|
const _ = [], U = /* @__PURE__ */ new Set(), D = (m) => {
|
|
@@ -5064,16 +5070,16 @@ class us {
|
|
|
5064
5070
|
for (const m of t.dimensions) {
|
|
5065
5071
|
const [P, M] = m.split(".");
|
|
5066
5072
|
if (P === R && r.dimensions && r.dimensions[M]) {
|
|
5067
|
-
const g = r.dimensions[M],
|
|
5068
|
-
_.push(
|
|
5073
|
+
const g = r.dimensions[M], f = b(g.sql, E);
|
|
5074
|
+
_.push(f);
|
|
5069
5075
|
}
|
|
5070
5076
|
}
|
|
5071
5077
|
if (t.timeDimensions)
|
|
5072
5078
|
for (const m of t.timeDimensions) {
|
|
5073
5079
|
const [P, M] = m.dimension.split(".");
|
|
5074
5080
|
if (P === R && r.dimensions && r.dimensions[M]) {
|
|
5075
|
-
const g = r.dimensions[M],
|
|
5076
|
-
_.push(
|
|
5081
|
+
const g = r.dimensions[M], f = this.queryBuilder.buildTimeDimensionExpression(g.sql, m.granularity, E);
|
|
5082
|
+
_.push(f);
|
|
5077
5083
|
}
|
|
5078
5084
|
}
|
|
5079
5085
|
return _.length > 0 && (N = N.groupBy(..._)), E.db.$with(e.cteAlias).as(N);
|
|
@@ -5096,13 +5102,13 @@ class us {
|
|
|
5096
5102
|
const i = [];
|
|
5097
5103
|
if (s.intermediateJoins && s.intermediateJoins.length > 0) {
|
|
5098
5104
|
const r = s.intermediateJoins[0], T = s.joinKeys[0]?.sourceColumnObj, A = o`${o.identifier(t)}.${o.identifier(r.primaryJoinColumn.name)}`;
|
|
5099
|
-
i.push(
|
|
5105
|
+
i.push(K(T, A));
|
|
5100
5106
|
} else
|
|
5101
5107
|
for (const r of s.joinKeys) {
|
|
5102
5108
|
const T = r.sourceColumnObj || o.identifier(r.sourceColumn), A = o`${o.identifier(t)}.${o.identifier(r.targetColumn)}`;
|
|
5103
|
-
i.push(
|
|
5109
|
+
i.push(K(T, A));
|
|
5104
5110
|
}
|
|
5105
|
-
return i.length === 1 ? i[0] :
|
|
5111
|
+
return i.length === 1 ? i[0] : G(...i);
|
|
5106
5112
|
}
|
|
5107
5113
|
/**
|
|
5108
5114
|
* Build a subquery filter for propagating filters from related cubes.
|
|
@@ -5131,12 +5137,12 @@ class us {
|
|
|
5131
5137
|
}
|
|
5132
5138
|
if (i.length === 0)
|
|
5133
5139
|
return null;
|
|
5134
|
-
const r = i.length === 1 ? i[0] :
|
|
5140
|
+
const r = i.length === 1 ? i[0] : G(...i), T = e.joinConditions;
|
|
5135
5141
|
if (T.length === 1) {
|
|
5136
5142
|
const { source: A, target: a } = T[0], R = t.db.select({ pk: A }).from(s.from).where(r);
|
|
5137
5143
|
return o`${a} IN ${R}`;
|
|
5138
5144
|
} else {
|
|
5139
|
-
const A = T.map((S) =>
|
|
5145
|
+
const A = T.map((S) => K(S.source, S.target)), a = G(
|
|
5140
5146
|
...A,
|
|
5141
5147
|
r
|
|
5142
5148
|
), R = t.db.select({ one: o`1` }).from(s.from).where(a);
|
|
@@ -5743,7 +5749,7 @@ class ps {
|
|
|
5743
5749
|
D && C.push(D);
|
|
5744
5750
|
}
|
|
5745
5751
|
}
|
|
5746
|
-
return C.length === 0 ? null : C.length === 1 ? C[0] : u ?
|
|
5752
|
+
return C.length === 0 ? null : C.length === 1 ? C[0] : u ? G(...C) : o`(${o.join(C, o` OR `)})`;
|
|
5747
5753
|
}
|
|
5748
5754
|
const T = e, [A, a] = T.member.split("."), R = T.dateRange !== void 0;
|
|
5749
5755
|
if (T.operator !== "set" && T.operator !== "notSet" && !R && (!T.values || T.values.length === 0 || T.values[0] === void 0 || T.values[0] === ""))
|
|
@@ -5799,7 +5805,7 @@ class ps {
|
|
|
5799
5805
|
step_time: o`MIN(${e.timeExpr})`.as("step_time")
|
|
5800
5806
|
}).from(s.from);
|
|
5801
5807
|
if (r = this.addCrossJoinsToQuery(r, e, t, i), i.length > 0) {
|
|
5802
|
-
const T = i.length === 1 ? i[0] :
|
|
5808
|
+
const T = i.length === 1 ? i[0] : G(...i);
|
|
5803
5809
|
r = r.where(T);
|
|
5804
5810
|
}
|
|
5805
5811
|
return r = r.groupBy(e.bindingKeyExpr), t.db.$with(E).as(r);
|
|
@@ -5832,7 +5838,7 @@ class ps {
|
|
|
5832
5838
|
o`${e.bindingKeyExpr} = ${o.identifier(i)}.binding_key`
|
|
5833
5839
|
);
|
|
5834
5840
|
if (R = this.addCrossJoinsToQuery(R, e, t, T), T.length > 0) {
|
|
5835
|
-
const S = T.length === 1 ? T[0] :
|
|
5841
|
+
const S = T.length === 1 ? T[0] : G(...T);
|
|
5836
5842
|
R = R.where(S);
|
|
5837
5843
|
}
|
|
5838
5844
|
return R = R.groupBy(e.bindingKeyExpr), t.db.$with(s).as(R);
|
|
@@ -5848,8 +5854,8 @@ class ps {
|
|
|
5848
5854
|
for (const r of i.joinPath) {
|
|
5849
5855
|
const T = r.joinDef, A = [];
|
|
5850
5856
|
for (const I of T.on)
|
|
5851
|
-
I.as ? A.push(I.as(I.source, I.target)) : A.push(
|
|
5852
|
-
const a = A.length === 1 ? A[0] :
|
|
5857
|
+
I.as ? A.push(I.as(I.source, I.target)) : A.push(K(I.source, I.target));
|
|
5858
|
+
const a = A.length === 1 ? A[0] : G(...A), S = i.cube.sql(E);
|
|
5853
5859
|
e = e.leftJoin(S.from, a), S.where && s.push(S.where);
|
|
5854
5860
|
}
|
|
5855
5861
|
return e;
|
|
@@ -6158,7 +6164,7 @@ class Ms {
|
|
|
6158
6164
|
const I = this.buildFilterCondition(S, t, E);
|
|
6159
6165
|
I && a.push(I);
|
|
6160
6166
|
}
|
|
6161
|
-
return a.length === 0 ? null : a.length === 1 ? a[0] : "and" in e ?
|
|
6167
|
+
return a.length === 0 ? null : a.length === 1 ? a[0] : "and" in e ? G(...a) : o`(${o.join(a, o` OR `)})`;
|
|
6162
6168
|
}
|
|
6163
6169
|
if ("type" in e && "filters" in e) {
|
|
6164
6170
|
const A = e, a = [];
|
|
@@ -6166,7 +6172,7 @@ class Ms {
|
|
|
6166
6172
|
const S = this.buildFilterCondition(R, t, E);
|
|
6167
6173
|
S && a.push(S);
|
|
6168
6174
|
}
|
|
6169
|
-
return a.length === 0 ? null : a.length === 1 ? a[0] : A.type === "and" ?
|
|
6175
|
+
return a.length === 0 ? null : a.length === 1 ? a[0] : A.type === "and" ? G(...a) : o`(${o.join(a, o` OR `)})`;
|
|
6170
6176
|
}
|
|
6171
6177
|
const s = e, [, i] = s.member.split("."), r = t.dimensions?.[i];
|
|
6172
6178
|
if (!r) return null;
|
|
@@ -6198,7 +6204,7 @@ class Ms {
|
|
|
6198
6204
|
event_path: o`${T}`.as("event_path")
|
|
6199
6205
|
}).from(s.from);
|
|
6200
6206
|
if (a.length > 0) {
|
|
6201
|
-
const S = a.length === 1 ? a[0] :
|
|
6207
|
+
const S = a.length === 1 ? a[0] : G(...a);
|
|
6202
6208
|
R = R.where(S);
|
|
6203
6209
|
}
|
|
6204
6210
|
return R = R.groupBy(i, T), e.entityLimit && (R = R.limit(e.entityLimit)), E.db.$with("starting_entities").as(R);
|
|
@@ -6215,7 +6221,7 @@ class Ms {
|
|
|
6215
6221
|
o`${i} = ${o.identifier(S)}.binding_key`,
|
|
6216
6222
|
o`${r} < ${o.identifier(S)}.${o.identifier(I)}`
|
|
6217
6223
|
);
|
|
6218
|
-
const C = O.length === 1 ? O[0] :
|
|
6224
|
+
const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${T} || ${"→"} || ${o.identifier(S)}.event_path` : o`${T}`, l = E.db.select({
|
|
6219
6225
|
binding_key: o`${i}`.as("binding_key"),
|
|
6220
6226
|
step_time: o`${r}`.as("step_time"),
|
|
6221
6227
|
event_type: o`${T}`.as("event_type"),
|
|
@@ -6244,7 +6250,7 @@ class Ms {
|
|
|
6244
6250
|
o`${i} = ${o.identifier(S)}.binding_key`,
|
|
6245
6251
|
o`${r} > ${o.identifier(S)}.${o.identifier(I)}`
|
|
6246
6252
|
);
|
|
6247
|
-
const C = O.length === 1 ? O[0] :
|
|
6253
|
+
const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${o.identifier(S)}.event_path || ${"→"} || ${T}` : o`${T}`, l = E.db.select({
|
|
6248
6254
|
binding_key: o`${i}`.as("binding_key"),
|
|
6249
6255
|
step_time: o`${r}`.as("step_time"),
|
|
6250
6256
|
event_type: o`${T}`.as("event_type"),
|
|
@@ -6275,7 +6281,7 @@ class Ms {
|
|
|
6275
6281
|
s.where && O.push(s.where), O.push(
|
|
6276
6282
|
o`${r} < ${o.identifier(S)}.${o.identifier(I)}`
|
|
6277
6283
|
);
|
|
6278
|
-
const C = O.length === 1 ? O[0] :
|
|
6284
|
+
const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${T} || ${"→"} || ${o.identifier(S)}.event_path` : o`${T}`, l = E.db.select({
|
|
6279
6285
|
binding_key: o`${i}`.as("binding_key"),
|
|
6280
6286
|
step_time: o`${r}`.as("step_time"),
|
|
6281
6287
|
event_type: o`${T}`.as("event_type"),
|
|
@@ -6308,7 +6314,7 @@ class Ms {
|
|
|
6308
6314
|
s.where && O.push(s.where), O.push(
|
|
6309
6315
|
o`${r} > ${o.identifier(S)}.${o.identifier(I)}`
|
|
6310
6316
|
);
|
|
6311
|
-
const C = O.length === 1 ? O[0] :
|
|
6317
|
+
const C = O.length === 1 ? O[0] : G(...O), u = a ? o`${o.identifier(S)}.event_path || ${"→"} || ${T}` : o`${T}`, l = E.db.select({
|
|
6312
6318
|
binding_key: o`${i}`.as("binding_key"),
|
|
6313
6319
|
step_time: o`${r}`.as("step_time"),
|
|
6314
6320
|
event_type: o`${T}`.as("event_type"),
|
|
@@ -6744,7 +6750,7 @@ class Us {
|
|
|
6744
6750
|
const u = this.buildSingleFilterCondition(C, t, E, s);
|
|
6745
6751
|
u && I.push(u);
|
|
6746
6752
|
}
|
|
6747
|
-
return I.length === 0 ? null : I.length === 1 ? I[0] : N ?
|
|
6753
|
+
return I.length === 0 ? null : I.length === 1 ? I[0] : N ? G(...I) : o`(${o.join(I, o` OR `)})`;
|
|
6748
6754
|
}
|
|
6749
6755
|
const i = e, [r, T] = i.member.split("."), A = E.get(r);
|
|
6750
6756
|
if (!A) return null;
|
|
@@ -6786,7 +6792,7 @@ class Us {
|
|
|
6786
6792
|
}
|
|
6787
6793
|
let A = E.db.select(T).from(s.from);
|
|
6788
6794
|
if (i.length > 0) {
|
|
6789
|
-
const R = i.length === 1 ? i[0] :
|
|
6795
|
+
const R = i.length === 1 ? i[0] : G(...i);
|
|
6790
6796
|
A = A.where(R);
|
|
6791
6797
|
}
|
|
6792
6798
|
const a = [t.bindingKeyExpr];
|
|
@@ -6841,7 +6847,7 @@ class Us {
|
|
|
6841
6847
|
o`${t.bindingKeyExpr} = cohort_base.binding_key`
|
|
6842
6848
|
);
|
|
6843
6849
|
if (i.length > 0) {
|
|
6844
|
-
const S = i.length === 1 ? i[0] :
|
|
6850
|
+
const S = i.length === 1 ? i[0] : G(...i);
|
|
6845
6851
|
a = a.where(S);
|
|
6846
6852
|
}
|
|
6847
6853
|
const R = [
|
|
@@ -7374,15 +7380,15 @@ class te {
|
|
|
7374
7380
|
if (!s.has(P)) {
|
|
7375
7381
|
const g = {
|
|
7376
7382
|
filters: m.filters
|
|
7377
|
-
},
|
|
7378
|
-
|
|
7383
|
+
}, f = /* @__PURE__ */ new Map([[P, m.sourceCube]]), F = this.queryBuilder.buildWhereConditions(
|
|
7384
|
+
f,
|
|
7379
7385
|
g,
|
|
7380
7386
|
E
|
|
7381
7387
|
);
|
|
7382
|
-
s.set(P,
|
|
7388
|
+
s.set(P, F);
|
|
7383
7389
|
}
|
|
7384
7390
|
const M = s.get(P);
|
|
7385
|
-
M && M.length > 0 && (m.preBuiltFilterSQL = M.length === 1 ? M[0] :
|
|
7391
|
+
M && M.length > 0 && (m.preBuiltFilterSQL = M.length === 1 ? M[0] : G(...M));
|
|
7386
7392
|
}
|
|
7387
7393
|
}
|
|
7388
7394
|
const i = [], r = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map();
|
|
@@ -7409,58 +7415,58 @@ class te {
|
|
|
7409
7415
|
if (S[P]) {
|
|
7410
7416
|
const [, M] = P.split("."), g = a.get(m);
|
|
7411
7417
|
if (g && g.measures && g.measures[M]) {
|
|
7412
|
-
const
|
|
7413
|
-
let
|
|
7414
|
-
if (
|
|
7415
|
-
|
|
7416
|
-
|
|
7418
|
+
const f = g.measures[M], F = o`${o.identifier(D.cteAlias)}.${o.identifier(M)}`;
|
|
7419
|
+
let y;
|
|
7420
|
+
if (f.type === "calculated" && f.calculatedSql)
|
|
7421
|
+
y = this.queryBuilder.buildCTECalculatedMeasure(
|
|
7422
|
+
f,
|
|
7417
7423
|
g,
|
|
7418
7424
|
D,
|
|
7419
7425
|
a,
|
|
7420
7426
|
E
|
|
7421
7427
|
);
|
|
7422
7428
|
else {
|
|
7423
|
-
const
|
|
7429
|
+
const B = D.cteReason === "fanOutPrevention", W = this.shouldUseMaxForHasManyAtJoinKeyGrain(
|
|
7424
7430
|
D,
|
|
7425
7431
|
t,
|
|
7426
7432
|
a
|
|
7427
|
-
), V =
|
|
7428
|
-
switch (
|
|
7433
|
+
), V = B || W;
|
|
7434
|
+
switch (f.type) {
|
|
7429
7435
|
case "count":
|
|
7430
7436
|
case "countDistinct":
|
|
7431
7437
|
case "sum":
|
|
7432
|
-
|
|
7438
|
+
y = V ? Z(F) : Q(F);
|
|
7433
7439
|
break;
|
|
7434
7440
|
case "avg":
|
|
7435
|
-
|
|
7441
|
+
y = V ? Z(F) : this.databaseAdapter.buildAvg(F);
|
|
7436
7442
|
break;
|
|
7437
7443
|
case "min":
|
|
7438
|
-
|
|
7444
|
+
y = le(F);
|
|
7439
7445
|
break;
|
|
7440
7446
|
case "max":
|
|
7441
|
-
|
|
7447
|
+
y = Z(F);
|
|
7442
7448
|
break;
|
|
7443
7449
|
case "number":
|
|
7444
|
-
|
|
7450
|
+
y = V ? Z(F) : Q(F);
|
|
7445
7451
|
break;
|
|
7446
7452
|
default:
|
|
7447
|
-
|
|
7453
|
+
y = V ? Z(F) : Q(F);
|
|
7448
7454
|
}
|
|
7449
7455
|
}
|
|
7450
|
-
S[P] = o`${
|
|
7456
|
+
S[P] = o`${y}`.as(P);
|
|
7451
7457
|
}
|
|
7452
7458
|
}
|
|
7453
7459
|
for (const P in S) {
|
|
7454
7460
|
const [M, g] = P.split(".");
|
|
7455
7461
|
if (M === m) {
|
|
7456
|
-
const
|
|
7457
|
-
if (
|
|
7458
|
-
let
|
|
7459
|
-
if (!
|
|
7460
|
-
const W =
|
|
7461
|
-
|
|
7462
|
+
const f = a.get(m), F = f && f.dimensions?.[g], y = P.startsWith(m + ".");
|
|
7463
|
+
if (F || y) {
|
|
7464
|
+
let B = D.joinKeys.find((W) => W.targetColumn === g);
|
|
7465
|
+
if (!B && f?.dimensions?.[g]) {
|
|
7466
|
+
const W = f.dimensions[g].sql;
|
|
7467
|
+
B = D.joinKeys.find((V) => V.targetColumnObj === W);
|
|
7462
7468
|
}
|
|
7463
|
-
|
|
7469
|
+
B ? S[P] = o`${o.identifier(D.cteAlias)}.${o.identifier(g)}`.as(P) : y && f?.dimensions?.[g] && (S[P] = o`${o.identifier(D.cteAlias)}.${o.identifier(g)}`.as(P));
|
|
7464
7470
|
}
|
|
7465
7471
|
}
|
|
7466
7472
|
}
|
|
@@ -7471,20 +7477,20 @@ class te {
|
|
|
7471
7477
|
if (M?.measures?.[P]) {
|
|
7472
7478
|
const g = M.measures[P];
|
|
7473
7479
|
if (H.isPostAggregationWindow(g)) {
|
|
7474
|
-
const
|
|
7475
|
-
if (
|
|
7476
|
-
const [
|
|
7477
|
-
if (
|
|
7478
|
-
const W =
|
|
7479
|
-
(ie) => ie.cube?.name ===
|
|
7480
|
+
const f = H.getWindowBaseMeasure(g, m);
|
|
7481
|
+
if (f) {
|
|
7482
|
+
const [F, y] = f.split("."), B = a.get(F);
|
|
7483
|
+
if (B?.measures?.[y]) {
|
|
7484
|
+
const W = B.measures[y], V = e.preAggregationCTEs?.find(
|
|
7485
|
+
(ie) => ie.cube?.name === F && ie.measures?.includes(f)
|
|
7480
7486
|
);
|
|
7481
7487
|
let j;
|
|
7482
7488
|
if (V) {
|
|
7483
|
-
const ie = o`${o.identifier(V.cteAlias)}.${o.identifier(
|
|
7489
|
+
const ie = o`${o.identifier(V.cteAlias)}.${o.identifier(y)}`;
|
|
7484
7490
|
j = o`sum(${ie})`;
|
|
7485
7491
|
} else
|
|
7486
|
-
j = this.queryBuilder.buildMeasureExpression(W, E,
|
|
7487
|
-
S[
|
|
7492
|
+
j = this.queryBuilder.buildMeasureExpression(W, E, B);
|
|
7493
|
+
S[f] || (S[f] = o`${j}`.as(f));
|
|
7488
7494
|
const Oe = this.buildPostAggregationWindowExpression(
|
|
7489
7495
|
g,
|
|
7490
7496
|
j,
|
|
@@ -7531,59 +7537,59 @@ class te {
|
|
|
7531
7537
|
continue;
|
|
7532
7538
|
const P = r.get(D.cube.name);
|
|
7533
7539
|
if (D.junctionTable) {
|
|
7534
|
-
const
|
|
7535
|
-
if (
|
|
7536
|
-
const V =
|
|
7540
|
+
const B = D.junctionTable, W = [];
|
|
7541
|
+
if (B.securitySql) {
|
|
7542
|
+
const V = B.securitySql(E.securityContext);
|
|
7537
7543
|
Array.isArray(V) ? W.push(...V) : W.push(V);
|
|
7538
7544
|
}
|
|
7539
7545
|
try {
|
|
7540
|
-
switch (
|
|
7546
|
+
switch (B.joinType || "left") {
|
|
7541
7547
|
case "left":
|
|
7542
|
-
N = N.leftJoin(
|
|
7548
|
+
N = N.leftJoin(B.table, B.joinCondition);
|
|
7543
7549
|
break;
|
|
7544
7550
|
case "inner":
|
|
7545
|
-
N = N.innerJoin(
|
|
7551
|
+
N = N.innerJoin(B.table, B.joinCondition);
|
|
7546
7552
|
break;
|
|
7547
7553
|
case "right":
|
|
7548
|
-
N = N.rightJoin(
|
|
7554
|
+
N = N.rightJoin(B.table, B.joinCondition);
|
|
7549
7555
|
break;
|
|
7550
7556
|
case "full":
|
|
7551
|
-
N = N.fullJoin(
|
|
7557
|
+
N = N.fullJoin(B.table, B.joinCondition);
|
|
7552
7558
|
break;
|
|
7553
7559
|
}
|
|
7554
7560
|
W.length > 0 && I.push(...W);
|
|
7555
7561
|
} catch {
|
|
7556
7562
|
}
|
|
7557
7563
|
}
|
|
7558
|
-
let M, g,
|
|
7564
|
+
let M, g, f;
|
|
7559
7565
|
if (P)
|
|
7560
|
-
M = o`${o.identifier(P)}`, g = this.cteBuilder.buildCTEJoinCondition(D, P, e),
|
|
7566
|
+
M = o`${o.identifier(P)}`, g = this.cteBuilder.buildCTEJoinCondition(D, P, e), f = void 0;
|
|
7561
7567
|
else {
|
|
7562
|
-
const
|
|
7563
|
-
if (M = W.from,
|
|
7568
|
+
const B = T.get(D.cube.name), W = D.cube.sql(E);
|
|
7569
|
+
if (M = W.from, f = W.where, B) {
|
|
7564
7570
|
const V = [];
|
|
7565
|
-
for (const j of
|
|
7566
|
-
const Oe = o`${o.identifier(
|
|
7567
|
-
V.push(
|
|
7571
|
+
for (const j of B.joinKeys) {
|
|
7572
|
+
const Oe = o`${o.identifier(B.cteAlias)}.${o.identifier(j.sourceColumn)}`, ie = j.targetColumnObj || o.identifier(j.targetColumn);
|
|
7573
|
+
V.push(K(Oe, ie));
|
|
7568
7574
|
}
|
|
7569
|
-
g = V.length === 1 ? V[0] :
|
|
7575
|
+
g = V.length === 1 ? V[0] : G(...V);
|
|
7570
7576
|
} else
|
|
7571
7577
|
g = D.joinCondition;
|
|
7572
7578
|
}
|
|
7573
|
-
const
|
|
7579
|
+
const F = D.joinType || "left", y = F !== "inner" && f ? G(g, f) : g;
|
|
7574
7580
|
try {
|
|
7575
|
-
switch (
|
|
7581
|
+
switch (F) {
|
|
7576
7582
|
case "left":
|
|
7577
|
-
N = N.leftJoin(M,
|
|
7583
|
+
N = N.leftJoin(M, y), f && O.add(D.cube.name);
|
|
7578
7584
|
break;
|
|
7579
7585
|
case "inner":
|
|
7580
7586
|
N = N.innerJoin(M, g);
|
|
7581
7587
|
break;
|
|
7582
7588
|
case "right":
|
|
7583
|
-
N = N.rightJoin(M,
|
|
7589
|
+
N = N.rightJoin(M, y), f && O.add(D.cube.name);
|
|
7584
7590
|
break;
|
|
7585
7591
|
case "full":
|
|
7586
|
-
N = N.fullJoin(M,
|
|
7592
|
+
N = N.fullJoin(M, y), f && O.add(D.cube.name);
|
|
7587
7593
|
break;
|
|
7588
7594
|
}
|
|
7589
7595
|
} catch {
|
|
@@ -7608,7 +7614,7 @@ class te {
|
|
|
7608
7614
|
// Reuse pre-built filters for parameter deduplication
|
|
7609
7615
|
);
|
|
7610
7616
|
if (u.length > 0 && I.push(...u), I.length > 0) {
|
|
7611
|
-
const D = I.length === 1 ? I[0] :
|
|
7617
|
+
const D = I.length === 1 ? I[0] : G(...I);
|
|
7612
7618
|
N = N.where(D);
|
|
7613
7619
|
}
|
|
7614
7620
|
const l = this.queryBuilder.buildGroupByFields(
|
|
@@ -7629,7 +7635,7 @@ class te {
|
|
|
7629
7635
|
// Pass the queryPlan to handle CTE scenarios
|
|
7630
7636
|
);
|
|
7631
7637
|
if (_.length > 0) {
|
|
7632
|
-
const D = _.length === 1 ? _[0] :
|
|
7638
|
+
const D = _.length === 1 ? _[0] : G(..._);
|
|
7633
7639
|
N = N.having(D);
|
|
7634
7640
|
}
|
|
7635
7641
|
const U = this.queryBuilder.buildOrderBy(t);
|
|
@@ -23343,9 +23349,9 @@ const Dr = [
|
|
|
23343
23349
|
"SHOW FUNCTIONS",
|
|
23344
23350
|
"SHOW SESSION"
|
|
23345
23351
|
]), Qr = L([
|
|
23346
|
-
"UNION [ALL | DISTINCT]",
|
|
23347
|
-
"EXCEPT [ALL | DISTINCT]",
|
|
23348
|
-
"INTERSECT [ALL | DISTINCT]"
|
|
23352
|
+
"UNION [ALL | DISTINCT] [CORRESPONDING]",
|
|
23353
|
+
"EXCEPT [ALL | DISTINCT] [CORRESPONDING]",
|
|
23354
|
+
"INTERSECT [ALL | DISTINCT] [CORRESPONDING]"
|
|
23349
23355
|
]), kr = L([
|
|
23350
23356
|
"JOIN",
|
|
23351
23357
|
"{LEFT | RIGHT | FULL} [OUTER] JOIN",
|
|
@@ -26069,20 +26075,20 @@ const Dr = [
|
|
|
26069
26075
|
tidb: mi,
|
|
26070
26076
|
transactsql: aT,
|
|
26071
26077
|
trino: Zr
|
|
26072
|
-
}, Symbol.toStringTag, { value: "Module" })), Ie = (n) => n[n.length - 1], _E = (n) => n.sort((e, t) => t.length - e.length || e.localeCompare(t)), _e = (n) => n.replace(/\s+/gu, " "), tt = (n) => /\n/.test(n),
|
|
26078
|
+
}, Symbol.toStringTag, { value: "Module" })), Ie = (n) => n[n.length - 1], _E = (n) => n.sort((e, t) => t.length - e.length || e.localeCompare(t)), _e = (n) => n.replace(/\s+/gu, " "), tt = (n) => /\n/.test(n), J = (n) => n.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), Zt = /\s+/uy, ne = (n) => new RegExp(`(?:${n})`, "uy"), hT = (n) => n.split("").map((e) => / /gu.test(e) ? "\\s+" : `[${e.toUpperCase()}${e.toLowerCase()}]`).join(""), gT = (n) => n + "(?:-" + n + ")*", GT = ({ prefixes: n, requirePrefix: e }) => `(?:${n.map(hT).join("|")}${e ? "" : "|"})`, yT = (n) => new RegExp(`(?:${n.map(J).join("|")}).*?(?=\r
|
|
26073
26079
|
|\r|
|
|
26074
26080
|
|$)`, "uy"), zt = (n, e = []) => {
|
|
26075
26081
|
const t = n === "open" ? 0 : 1, E = ["()", ...e].map((s) => s[t]);
|
|
26076
|
-
return ne(E.map(
|
|
26077
|
-
}, eE = (n) => ne(`${_E(n).map(
|
|
26082
|
+
return ne(E.map(J).join("|"));
|
|
26083
|
+
}, eE = (n) => ne(`${_E(n).map(J).join("|")}`), bT = ({ rest: n, dashes: e }) => n || e ? `(?![${n || ""}${e ? "-" : ""}])` : "", k = (n, e = {}) => {
|
|
26078
26084
|
if (n.length === 0)
|
|
26079
26085
|
return /^\b$/u;
|
|
26080
|
-
const t = bT(e), E = _E(n).map(
|
|
26086
|
+
const t = bT(e), E = _E(n).map(J).join("|").replace(/ /gu, "\\s+");
|
|
26081
26087
|
return new RegExp(`(?:${E})${t}\\b`, "iuy");
|
|
26082
26088
|
}, Et = (n, e) => {
|
|
26083
26089
|
if (!n.length)
|
|
26084
26090
|
return;
|
|
26085
|
-
const t = n.map(
|
|
26091
|
+
const t = n.map(J).join("|");
|
|
26086
26092
|
return ne(`(?:${t})(?:${e})`);
|
|
26087
26093
|
}, FT = () => {
|
|
26088
26094
|
const n = {
|
|
@@ -26090,7 +26096,7 @@ const Dr = [
|
|
|
26090
26096
|
"[": "]",
|
|
26091
26097
|
"(": ")",
|
|
26092
26098
|
"{": "}"
|
|
26093
|
-
}, e = "{left}(?:(?!{right}').)*?{right}", t = Object.entries(n).map(([r, T]) => e.replace(/{left}/g,
|
|
26099
|
+
}, e = "{left}(?:(?!{right}').)*?{right}", t = Object.entries(n).map(([r, T]) => e.replace(/{left}/g, J(r)).replace(/{right}/g, J(T))), E = J(Object.keys(n).join(""));
|
|
26094
26100
|
return `[Qq]'(?:${String.raw`(?<tag>[^\s${E}])(?:(?!\k<tag>').)*?\k<tag>`}|${t.join("|")})'`;
|
|
26095
26101
|
}, tE = {
|
|
26096
26102
|
// - backtick quoted (using `` to escape)
|
|
@@ -26118,7 +26124,7 @@ const Dr = [
|
|
|
26118
26124
|
// Oracle q'' strings: q'<text>' q'|text|' ...
|
|
26119
26125
|
"q''": FT()
|
|
26120
26126
|
}, cE = (n) => typeof n == "string" ? tE[n] : "regex" in n ? n.regex : GT(n) + tE[n.quote], BT = (n) => ne(n.map((e) => "regex" in e ? e.regex : cE(e)).join("|")), dE = (n) => n.map(cE).join("|"), EE = (n) => ne(dE(n)), HT = (n = {}) => ne(DE(n)), DE = ({ first: n, rest: e, dashes: t, allowFirstCharNumber: E } = {}) => {
|
|
26121
|
-
const s = "\\p{Alphabetic}\\p{Mark}_", i = "\\p{Decimal_Number}", r =
|
|
26127
|
+
const s = "\\p{Alphabetic}\\p{Mark}_", i = "\\p{Decimal_Number}", r = J(n ?? ""), T = J(e ?? ""), A = E ? `[${s}${i}${r}][${s}${i}${T}]*` : `[${s}${r}][${s}${i}${T}]*`;
|
|
26122
26128
|
return t ? gT(A) : A;
|
|
26123
26129
|
};
|
|
26124
26130
|
function mE(n, e) {
|
|
@@ -26425,7 +26431,7 @@ class WT {
|
|
|
26425
26431
|
{
|
|
26426
26432
|
type: d.QUOTED_PARAMETER,
|
|
26427
26433
|
regex: Et(A.quoted, dE(e.identTypes)),
|
|
26428
|
-
key: (a) => (({ tokenKey: R, quoteChar: S }) => R.replace(new RegExp(
|
|
26434
|
+
key: (a) => (({ tokenKey: R, quoteChar: S }) => R.replace(new RegExp(J("\\" + S), "gu"), S))({
|
|
26429
26435
|
tokenKey: a.slice(2, -1),
|
|
26430
26436
|
quoteChar: a.slice(-1)
|
|
26431
26437
|
})
|
|
@@ -26852,7 +26858,7 @@ var p;
|
|
|
26852
26858
|
function st(n) {
|
|
26853
26859
|
return n[0];
|
|
26854
26860
|
}
|
|
26855
|
-
const
|
|
26861
|
+
const h = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
26856
26862
|
type: p.keyword,
|
|
26857
26863
|
tokenType: n.type,
|
|
26858
26864
|
text: n.text,
|
|
@@ -26872,7 +26878,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26872
26878
|
}
|
|
26873
26879
|
return n;
|
|
26874
26880
|
}, aa = {
|
|
26875
|
-
Lexer:
|
|
26881
|
+
Lexer: h,
|
|
26876
26882
|
ParserRules: [
|
|
26877
26883
|
{ name: "main$ebnf$1", symbols: [] },
|
|
26878
26884
|
{ name: "main$ebnf$1", symbols: ["main$ebnf$1", "statement"], postprocess: (n) => n[0].concat([n[1]]) },
|
|
@@ -26884,8 +26890,8 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26884
26890
|
return e && !e.hasSemicolon ? e.children.length > 0 ? n : n.slice(0, -1) : n;
|
|
26885
26891
|
}
|
|
26886
26892
|
},
|
|
26887
|
-
{ name: "statement$subexpression$1", symbols: [
|
|
26888
|
-
{ name: "statement$subexpression$1", symbols: [
|
|
26893
|
+
{ name: "statement$subexpression$1", symbols: [h.has("DELIMITER") ? { type: "DELIMITER" } : DELIMITER] },
|
|
26894
|
+
{ name: "statement$subexpression$1", symbols: [h.has("EOF") ? { type: "EOF" } : EOF] },
|
|
26889
26895
|
{
|
|
26890
26896
|
name: "statement",
|
|
26891
26897
|
symbols: ["expressions_or_clauses", "statement$subexpression$1"],
|
|
@@ -26911,12 +26917,12 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26911
26917
|
{ name: "clause", symbols: ["clause$subexpression$1"], postprocess: Ee },
|
|
26912
26918
|
{ name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["free_form_sql"] },
|
|
26913
26919
|
{ name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1$ebnf$1", "free_form_sql"], postprocess: (n) => n[0].concat([n[1]]) },
|
|
26914
|
-
{ name: "limit_clause$ebnf$1$subexpression$1", symbols: [
|
|
26920
|
+
{ name: "limit_clause$ebnf$1$subexpression$1", symbols: [h.has("COMMA") ? { type: "COMMA" } : COMMA, "limit_clause$ebnf$1$subexpression$1$ebnf$1"] },
|
|
26915
26921
|
{ name: "limit_clause$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1"], postprocess: st },
|
|
26916
26922
|
{ name: "limit_clause$ebnf$1", symbols: [], postprocess: () => null },
|
|
26917
26923
|
{
|
|
26918
26924
|
name: "limit_clause",
|
|
26919
|
-
symbols: [
|
|
26925
|
+
symbols: [h.has("LIMIT") ? { type: "LIMIT" } : LIMIT, "_", "expression_chain_", "limit_clause$ebnf$1"],
|
|
26920
26926
|
postprocess: ([n, e, t, E]) => {
|
|
26921
26927
|
if (E) {
|
|
26922
26928
|
const [s, i] = E;
|
|
@@ -26942,7 +26948,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26942
26948
|
{ name: "select_clause$subexpression$1", symbols: ["asteriskless_free_form_sql", "select_clause$subexpression$1$ebnf$2"] },
|
|
26943
26949
|
{
|
|
26944
26950
|
name: "select_clause",
|
|
26945
|
-
symbols: [
|
|
26951
|
+
symbols: [h.has("RESERVED_SELECT") ? { type: "RESERVED_SELECT" } : RESERVED_SELECT, "select_clause$subexpression$1"],
|
|
26946
26952
|
postprocess: ([n, [e, t]]) => ({
|
|
26947
26953
|
type: p.clause,
|
|
26948
26954
|
nameKw: $(n),
|
|
@@ -26951,7 +26957,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26951
26957
|
},
|
|
26952
26958
|
{
|
|
26953
26959
|
name: "select_clause",
|
|
26954
|
-
symbols: [
|
|
26960
|
+
symbols: [h.has("RESERVED_SELECT") ? { type: "RESERVED_SELECT" } : RESERVED_SELECT],
|
|
26955
26961
|
postprocess: ([n]) => ({
|
|
26956
26962
|
type: p.clause,
|
|
26957
26963
|
nameKw: $(n),
|
|
@@ -26960,14 +26966,14 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26960
26966
|
},
|
|
26961
26967
|
{
|
|
26962
26968
|
name: "all_columns_asterisk",
|
|
26963
|
-
symbols: [
|
|
26969
|
+
symbols: [h.has("ASTERISK") ? { type: "ASTERISK" } : ASTERISK],
|
|
26964
26970
|
postprocess: () => ({ type: p.all_columns_asterisk })
|
|
26965
26971
|
},
|
|
26966
26972
|
{ name: "other_clause$ebnf$1", symbols: [] },
|
|
26967
26973
|
{ name: "other_clause$ebnf$1", symbols: ["other_clause$ebnf$1", "free_form_sql"], postprocess: (n) => n[0].concat([n[1]]) },
|
|
26968
26974
|
{
|
|
26969
26975
|
name: "other_clause",
|
|
26970
|
-
symbols: [
|
|
26976
|
+
symbols: [h.has("RESERVED_CLAUSE") ? { type: "RESERVED_CLAUSE" } : RESERVED_CLAUSE, "other_clause$ebnf$1"],
|
|
26971
26977
|
postprocess: ([n, e]) => ({
|
|
26972
26978
|
type: p.clause,
|
|
26973
26979
|
nameKw: $(n),
|
|
@@ -26978,7 +26984,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
26978
26984
|
{ name: "set_operation$ebnf$1", symbols: ["set_operation$ebnf$1", "free_form_sql"], postprocess: (n) => n[0].concat([n[1]]) },
|
|
26979
26985
|
{
|
|
26980
26986
|
name: "set_operation",
|
|
26981
|
-
symbols: [
|
|
26987
|
+
symbols: [h.has("RESERVED_SET_OPERATION") ? { type: "RESERVED_SET_OPERATION" } : RESERVED_SET_OPERATION, "set_operation$ebnf$1"],
|
|
26982
26988
|
postprocess: ([n, e]) => ({
|
|
26983
26989
|
type: p.set_operation,
|
|
26984
26990
|
nameKw: $(n),
|
|
@@ -27051,7 +27057,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27051
27057
|
{ name: "atomic_expression", symbols: ["atomic_expression$subexpression$1"], postprocess: Ee },
|
|
27052
27058
|
{
|
|
27053
27059
|
name: "array_subscript",
|
|
27054
|
-
symbols: [
|
|
27060
|
+
symbols: [h.has("ARRAY_IDENTIFIER") ? { type: "ARRAY_IDENTIFIER" } : ARRAY_IDENTIFIER, "_", "square_brackets"],
|
|
27055
27061
|
postprocess: ([n, e, t]) => ({
|
|
27056
27062
|
type: p.array_subscript,
|
|
27057
27063
|
array: w({ type: p.identifier, quoted: !1, text: n.text }, { trailing: e }),
|
|
@@ -27060,7 +27066,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27060
27066
|
},
|
|
27061
27067
|
{
|
|
27062
27068
|
name: "array_subscript",
|
|
27063
|
-
symbols: [
|
|
27069
|
+
symbols: [h.has("ARRAY_KEYWORD") ? { type: "ARRAY_KEYWORD" } : ARRAY_KEYWORD, "_", "square_brackets"],
|
|
27064
27070
|
postprocess: ([n, e, t]) => ({
|
|
27065
27071
|
type: p.array_subscript,
|
|
27066
27072
|
array: w($(n), { trailing: e }),
|
|
@@ -27069,7 +27075,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27069
27075
|
},
|
|
27070
27076
|
{
|
|
27071
27077
|
name: "function_call",
|
|
27072
|
-
symbols: [
|
|
27078
|
+
symbols: [h.has("RESERVED_FUNCTION_NAME") ? { type: "RESERVED_FUNCTION_NAME" } : RESERVED_FUNCTION_NAME, "_", "parenthesis"],
|
|
27073
27079
|
postprocess: ([n, e, t]) => ({
|
|
27074
27080
|
type: p.function_call,
|
|
27075
27081
|
nameKw: w($(n), { trailing: e }),
|
|
@@ -27116,7 +27122,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27116
27122
|
{ name: "property_access$subexpression$1", symbols: ["parameter"] },
|
|
27117
27123
|
{
|
|
27118
27124
|
name: "property_access",
|
|
27119
|
-
symbols: ["atomic_expression", "_",
|
|
27125
|
+
symbols: ["atomic_expression", "_", h.has("PROPERTY_ACCESS_OPERATOR") ? { type: "PROPERTY_ACCESS_OPERATOR" } : PROPERTY_ACCESS_OPERATOR, "_", "property_access$subexpression$1"],
|
|
27120
27126
|
postprocess: (
|
|
27121
27127
|
// Allowing property to be <array_subscript> is currently a hack.
|
|
27122
27128
|
// A better way would be to allow <property_access> on the left side of array_subscript,
|
|
@@ -27132,7 +27138,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27132
27138
|
},
|
|
27133
27139
|
{
|
|
27134
27140
|
name: "between_predicate",
|
|
27135
|
-
symbols: [
|
|
27141
|
+
symbols: [h.has("BETWEEN") ? { type: "BETWEEN" } : BETWEEN, "_", "andless_expression_chain", "_", h.has("AND") ? { type: "AND" } : AND, "_", "andless_expression"],
|
|
27136
27142
|
postprocess: ([n, e, t, E, s, i, r]) => ({
|
|
27137
27143
|
type: p.between_predicate,
|
|
27138
27144
|
betweenKw: $(n),
|
|
@@ -27147,7 +27153,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27147
27153
|
{ name: "case_expression$ebnf$2", symbols: ["case_expression$ebnf$2", "case_clause"], postprocess: (n) => n[0].concat([n[1]]) },
|
|
27148
27154
|
{
|
|
27149
27155
|
name: "case_expression",
|
|
27150
|
-
symbols: [
|
|
27156
|
+
symbols: [h.has("CASE") ? { type: "CASE" } : CASE, "_", "case_expression$ebnf$1", "case_expression$ebnf$2", h.has("END") ? { type: "END" } : END],
|
|
27151
27157
|
postprocess: ([n, e, t, E, s]) => ({
|
|
27152
27158
|
type: p.case_expression,
|
|
27153
27159
|
caseKw: w($(n), { trailing: e }),
|
|
@@ -27158,7 +27164,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27158
27164
|
},
|
|
27159
27165
|
{
|
|
27160
27166
|
name: "case_clause",
|
|
27161
|
-
symbols: [
|
|
27167
|
+
symbols: [h.has("WHEN") ? { type: "WHEN" } : WHEN, "_", "expression_chain_", h.has("THEN") ? { type: "THEN" } : THEN, "_", "expression_chain_"],
|
|
27162
27168
|
postprocess: ([n, e, t, E, s, i]) => ({
|
|
27163
27169
|
type: p.case_when,
|
|
27164
27170
|
whenKw: w($(n), { trailing: e }),
|
|
@@ -27169,42 +27175,42 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27169
27175
|
},
|
|
27170
27176
|
{
|
|
27171
27177
|
name: "case_clause",
|
|
27172
|
-
symbols: [
|
|
27178
|
+
symbols: [h.has("ELSE") ? { type: "ELSE" } : ELSE, "_", "expression_chain_"],
|
|
27173
27179
|
postprocess: ([n, e, t]) => ({
|
|
27174
27180
|
type: p.case_else,
|
|
27175
27181
|
elseKw: w($(n), { trailing: e }),
|
|
27176
27182
|
result: t
|
|
27177
27183
|
})
|
|
27178
27184
|
},
|
|
27179
|
-
{ name: "comma$subexpression$1", symbols: [
|
|
27185
|
+
{ name: "comma$subexpression$1", symbols: [h.has("COMMA") ? { type: "COMMA" } : COMMA] },
|
|
27180
27186
|
{ name: "comma", symbols: ["comma$subexpression$1"], postprocess: ([[n]]) => ({ type: p.comma }) },
|
|
27181
|
-
{ name: "asterisk$subexpression$1", symbols: [
|
|
27187
|
+
{ name: "asterisk$subexpression$1", symbols: [h.has("ASTERISK") ? { type: "ASTERISK" } : ASTERISK] },
|
|
27182
27188
|
{ name: "asterisk", symbols: ["asterisk$subexpression$1"], postprocess: ([[n]]) => ({ type: p.operator, text: n.text }) },
|
|
27183
|
-
{ name: "operator$subexpression$1", symbols: [
|
|
27189
|
+
{ name: "operator$subexpression$1", symbols: [h.has("OPERATOR") ? { type: "OPERATOR" } : OPERATOR] },
|
|
27184
27190
|
{ name: "operator", symbols: ["operator$subexpression$1"], postprocess: ([[n]]) => ({ type: p.operator, text: n.text }) },
|
|
27185
|
-
{ name: "identifier$subexpression$1", symbols: [
|
|
27186
|
-
{ name: "identifier$subexpression$1", symbols: [
|
|
27187
|
-
{ name: "identifier$subexpression$1", symbols: [
|
|
27191
|
+
{ name: "identifier$subexpression$1", symbols: [h.has("IDENTIFIER") ? { type: "IDENTIFIER" } : IDENTIFIER] },
|
|
27192
|
+
{ name: "identifier$subexpression$1", symbols: [h.has("QUOTED_IDENTIFIER") ? { type: "QUOTED_IDENTIFIER" } : QUOTED_IDENTIFIER] },
|
|
27193
|
+
{ name: "identifier$subexpression$1", symbols: [h.has("VARIABLE") ? { type: "VARIABLE" } : VARIABLE] },
|
|
27188
27194
|
{ name: "identifier", symbols: ["identifier$subexpression$1"], postprocess: ([[n]]) => ({ type: p.identifier, quoted: n.type !== "IDENTIFIER", text: n.text }) },
|
|
27189
|
-
{ name: "parameter$subexpression$1", symbols: [
|
|
27190
|
-
{ name: "parameter$subexpression$1", symbols: [
|
|
27191
|
-
{ name: "parameter$subexpression$1", symbols: [
|
|
27192
|
-
{ name: "parameter$subexpression$1", symbols: [
|
|
27193
|
-
{ name: "parameter$subexpression$1", symbols: [
|
|
27195
|
+
{ name: "parameter$subexpression$1", symbols: [h.has("NAMED_PARAMETER") ? { type: "NAMED_PARAMETER" } : NAMED_PARAMETER] },
|
|
27196
|
+
{ name: "parameter$subexpression$1", symbols: [h.has("QUOTED_PARAMETER") ? { type: "QUOTED_PARAMETER" } : QUOTED_PARAMETER] },
|
|
27197
|
+
{ name: "parameter$subexpression$1", symbols: [h.has("NUMBERED_PARAMETER") ? { type: "NUMBERED_PARAMETER" } : NUMBERED_PARAMETER] },
|
|
27198
|
+
{ name: "parameter$subexpression$1", symbols: [h.has("POSITIONAL_PARAMETER") ? { type: "POSITIONAL_PARAMETER" } : POSITIONAL_PARAMETER] },
|
|
27199
|
+
{ name: "parameter$subexpression$1", symbols: [h.has("CUSTOM_PARAMETER") ? { type: "CUSTOM_PARAMETER" } : CUSTOM_PARAMETER] },
|
|
27194
27200
|
{ name: "parameter", symbols: ["parameter$subexpression$1"], postprocess: ([[n]]) => ({ type: p.parameter, key: n.key, text: n.text }) },
|
|
27195
|
-
{ name: "literal$subexpression$1", symbols: [
|
|
27196
|
-
{ name: "literal$subexpression$1", symbols: [
|
|
27201
|
+
{ name: "literal$subexpression$1", symbols: [h.has("NUMBER") ? { type: "NUMBER" } : NUMBER] },
|
|
27202
|
+
{ name: "literal$subexpression$1", symbols: [h.has("STRING") ? { type: "STRING" } : STRING] },
|
|
27197
27203
|
{ name: "literal", symbols: ["literal$subexpression$1"], postprocess: ([[n]]) => ({ type: p.literal, text: n.text }) },
|
|
27198
|
-
{ name: "keyword$subexpression$1", symbols: [
|
|
27199
|
-
{ name: "keyword$subexpression$1", symbols: [
|
|
27200
|
-
{ name: "keyword$subexpression$1", symbols: [
|
|
27204
|
+
{ name: "keyword$subexpression$1", symbols: [h.has("RESERVED_KEYWORD") ? { type: "RESERVED_KEYWORD" } : RESERVED_KEYWORD] },
|
|
27205
|
+
{ name: "keyword$subexpression$1", symbols: [h.has("RESERVED_KEYWORD_PHRASE") ? { type: "RESERVED_KEYWORD_PHRASE" } : RESERVED_KEYWORD_PHRASE] },
|
|
27206
|
+
{ name: "keyword$subexpression$1", symbols: [h.has("RESERVED_JOIN") ? { type: "RESERVED_JOIN" } : RESERVED_JOIN] },
|
|
27201
27207
|
{
|
|
27202
27208
|
name: "keyword",
|
|
27203
27209
|
symbols: ["keyword$subexpression$1"],
|
|
27204
27210
|
postprocess: ([[n]]) => $(n)
|
|
27205
27211
|
},
|
|
27206
|
-
{ name: "data_type$subexpression$1", symbols: [
|
|
27207
|
-
{ name: "data_type$subexpression$1", symbols: [
|
|
27212
|
+
{ name: "data_type$subexpression$1", symbols: [h.has("RESERVED_DATA_TYPE") ? { type: "RESERVED_DATA_TYPE" } : RESERVED_DATA_TYPE] },
|
|
27213
|
+
{ name: "data_type$subexpression$1", symbols: [h.has("RESERVED_DATA_TYPE_PHRASE") ? { type: "RESERVED_DATA_TYPE_PHRASE" } : RESERVED_DATA_TYPE_PHRASE] },
|
|
27208
27214
|
{
|
|
27209
27215
|
name: "data_type",
|
|
27210
27216
|
symbols: ["data_type$subexpression$1"],
|
|
@@ -27212,25 +27218,25 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27212
27218
|
},
|
|
27213
27219
|
{
|
|
27214
27220
|
name: "data_type",
|
|
27215
|
-
symbols: [
|
|
27221
|
+
symbols: [h.has("RESERVED_PARAMETERIZED_DATA_TYPE") ? { type: "RESERVED_PARAMETERIZED_DATA_TYPE" } : RESERVED_PARAMETERIZED_DATA_TYPE, "_", "parenthesis"],
|
|
27216
27222
|
postprocess: ([n, e, t]) => ({
|
|
27217
27223
|
type: p.parameterized_data_type,
|
|
27218
27224
|
dataType: w(rE(n), { trailing: e }),
|
|
27219
27225
|
parenthesis: t
|
|
27220
27226
|
})
|
|
27221
27227
|
},
|
|
27222
|
-
{ name: "logic_operator$subexpression$1", symbols: [
|
|
27223
|
-
{ name: "logic_operator$subexpression$1", symbols: [
|
|
27224
|
-
{ name: "logic_operator$subexpression$1", symbols: [
|
|
27228
|
+
{ name: "logic_operator$subexpression$1", symbols: [h.has("AND") ? { type: "AND" } : AND] },
|
|
27229
|
+
{ name: "logic_operator$subexpression$1", symbols: [h.has("OR") ? { type: "OR" } : OR] },
|
|
27230
|
+
{ name: "logic_operator$subexpression$1", symbols: [h.has("XOR") ? { type: "XOR" } : XOR] },
|
|
27225
27231
|
{
|
|
27226
27232
|
name: "logic_operator",
|
|
27227
27233
|
symbols: ["logic_operator$subexpression$1"],
|
|
27228
27234
|
postprocess: ([[n]]) => $(n)
|
|
27229
27235
|
},
|
|
27230
|
-
{ name: "other_keyword$subexpression$1", symbols: [
|
|
27231
|
-
{ name: "other_keyword$subexpression$1", symbols: [
|
|
27232
|
-
{ name: "other_keyword$subexpression$1", symbols: [
|
|
27233
|
-
{ name: "other_keyword$subexpression$1", symbols: [
|
|
27236
|
+
{ name: "other_keyword$subexpression$1", symbols: [h.has("WHEN") ? { type: "WHEN" } : WHEN] },
|
|
27237
|
+
{ name: "other_keyword$subexpression$1", symbols: [h.has("THEN") ? { type: "THEN" } : THEN] },
|
|
27238
|
+
{ name: "other_keyword$subexpression$1", symbols: [h.has("ELSE") ? { type: "ELSE" } : ELSE] },
|
|
27239
|
+
{ name: "other_keyword$subexpression$1", symbols: [h.has("END") ? { type: "END" } : END] },
|
|
27234
27240
|
{
|
|
27235
27241
|
name: "other_keyword",
|
|
27236
27242
|
symbols: ["other_keyword$subexpression$1"],
|
|
@@ -27241,7 +27247,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27241
27247
|
{ name: "_", symbols: ["_$ebnf$1"], postprocess: ([n]) => n },
|
|
27242
27248
|
{
|
|
27243
27249
|
name: "comment",
|
|
27244
|
-
symbols: [
|
|
27250
|
+
symbols: [h.has("LINE_COMMENT") ? { type: "LINE_COMMENT" } : LINE_COMMENT],
|
|
27245
27251
|
postprocess: ([n]) => ({
|
|
27246
27252
|
type: p.line_comment,
|
|
27247
27253
|
text: n.text,
|
|
@@ -27250,7 +27256,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27250
27256
|
},
|
|
27251
27257
|
{
|
|
27252
27258
|
name: "comment",
|
|
27253
|
-
symbols: [
|
|
27259
|
+
symbols: [h.has("BLOCK_COMMENT") ? { type: "BLOCK_COMMENT" } : BLOCK_COMMENT],
|
|
27254
27260
|
postprocess: ([n]) => ({
|
|
27255
27261
|
type: p.block_comment,
|
|
27256
27262
|
text: n.text,
|
|
@@ -27259,7 +27265,7 @@ const f = new ME((n) => []), Ee = ([[n]]) => n, $ = (n) => ({
|
|
|
27259
27265
|
},
|
|
27260
27266
|
{
|
|
27261
27267
|
name: "comment",
|
|
27262
|
-
symbols: [
|
|
27268
|
+
symbols: [h.has("DISABLE_COMMENT") ? { type: "DISABLE_COMMENT" } : DISABLE_COMMENT],
|
|
27263
27269
|
postprocess: ([n]) => ({
|
|
27264
27270
|
type: p.disable_comment,
|
|
27265
27271
|
text: n.text,
|
|
@@ -27938,7 +27944,7 @@ class Nt {
|
|
|
27938
27944
|
* Validates calculated measures during registration
|
|
27939
27945
|
*/
|
|
27940
27946
|
registerCube(e) {
|
|
27941
|
-
|
|
27947
|
+
this.validateCalculatedMeasures(e), new se(this.cubes).populateDependencies(e), this.cubes.set(e.name, e), this.invalidateMetadataCache();
|
|
27942
27948
|
}
|
|
27943
27949
|
/**
|
|
27944
27950
|
* Validate calculated measures in a cube
|
|
@@ -28125,7 +28131,7 @@ ${t.join(`
|
|
|
28125
28131
|
// Convert level names to full qualified names
|
|
28126
28132
|
levels: a.levels.map((R) => R.includes(".") ? R : `${e.name}.${R}`)
|
|
28127
28133
|
});
|
|
28128
|
-
|
|
28134
|
+
return {
|
|
28129
28135
|
name: e.name,
|
|
28130
28136
|
title: e.title || e.name,
|
|
28131
28137
|
description: e.description,
|
|
@@ -28138,7 +28144,6 @@ ${t.join(`
|
|
|
28138
28144
|
hierarchies: T.length > 0 ? T : void 0,
|
|
28139
28145
|
meta: e.meta
|
|
28140
28146
|
};
|
|
28141
|
-
return e.meta && console.log(`[DEBUG] Cube ${e.name} has meta:`, JSON.stringify(e.meta)), A;
|
|
28142
28147
|
}
|
|
28143
28148
|
/**
|
|
28144
28149
|
* Get SQL for a query without executing it (debugging)
|
|
@@ -30146,7 +30151,7 @@ export {
|
|
|
30146
30151
|
Qa as getCubeInvalidationPattern,
|
|
30147
30152
|
Tt as getJoinType,
|
|
30148
30153
|
os as normalizeQuery,
|
|
30149
|
-
|
|
30154
|
+
X as resolveCubeReference,
|
|
30150
30155
|
b as resolveSqlExpression,
|
|
30151
30156
|
so as suggestQuery
|
|
30152
30157
|
};
|