drizzle-cube 0.1.21 → 0.1.24

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.
Files changed (53) hide show
  1. package/dist/adapters/{compiler-CPsEzFP2.js → compiler-CSr2Ti96.js} +553 -505
  2. package/dist/adapters/express/index.js +1 -1
  3. package/dist/adapters/fastify/index.js +1 -1
  4. package/dist/adapters/hono/index.js +1 -1
  5. package/dist/adapters/nextjs/index.js +50 -50
  6. package/dist/client/charts/chartConfigs.d.ts +31 -1
  7. package/dist/client/charts.d.ts +1 -0
  8. package/dist/client/charts.js +1 -1
  9. package/dist/client/chunks/charts-Dx3asDBi.js +2269 -0
  10. package/dist/client/chunks/charts-Dx3asDBi.js.map +1 -0
  11. package/dist/client/chunks/{icons-B5RVM-7b.js → icons-BMGOKdZb.js} +279 -239
  12. package/dist/client/chunks/icons-BMGOKdZb.js.map +1 -0
  13. package/dist/client/chunks/{providers-DI5zeeEU.js → providers-B7MVnAAt.js} +50 -50
  14. package/dist/client/chunks/providers-B7MVnAAt.js.map +1 -0
  15. package/dist/client/components/ChartConfigPanel.d.ts +3 -2
  16. package/dist/client/components/ColorPaletteSelector.d.ts +11 -0
  17. package/dist/client/components/DashboardGrid.d.ts +3 -1
  18. package/dist/client/components/DataHistogram.d.ts +23 -0
  19. package/dist/client/components/PortletEditModal.d.ts +3 -2
  20. package/dist/client/components/charts/ActivityGridChart.config.d.ts +5 -0
  21. package/dist/client/components/charts/ActivityGridChart.d.ts +2 -0
  22. package/dist/client/components/charts/AreaChart.d.ts +1 -1
  23. package/dist/client/components/charts/BarChart.d.ts +1 -1
  24. package/dist/client/components/charts/BubbleChart.d.ts +1 -1
  25. package/dist/client/components/charts/KpiNumber.config.d.ts +5 -0
  26. package/dist/client/components/charts/KpiNumber.d.ts +2 -0
  27. package/dist/client/components/charts/KpiText.config.d.ts +5 -0
  28. package/dist/client/components/charts/KpiText.d.ts +2 -0
  29. package/dist/client/components/charts/LineChart.d.ts +1 -1
  30. package/dist/client/components/charts/PieChart.d.ts +1 -1
  31. package/dist/client/components/charts/RadarChart.d.ts +1 -1
  32. package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
  33. package/dist/client/components/charts/ScatterChart.d.ts +1 -1
  34. package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
  35. package/dist/client/components/charts/index.d.ts +3 -0
  36. package/dist/client/components.js +5134 -2607
  37. package/dist/client/components.js.map +1 -1
  38. package/dist/client/hooks/useCubeMeta.d.ts +1 -0
  39. package/dist/client/hooks.js +62 -60
  40. package/dist/client/hooks.js.map +1 -1
  41. package/dist/client/index.d.ts +1 -0
  42. package/dist/client/index.js +2 -2
  43. package/dist/client/providers.js +1 -1
  44. package/dist/client/types.d.ts +17 -5
  45. package/dist/client/utils/colorPalettes.d.ts +35 -0
  46. package/dist/client-bundle-stats.html +1 -1
  47. package/dist/server/index.d.ts +3 -8
  48. package/dist/server/index.js +748 -700
  49. package/package.json +22 -1
  50. package/dist/client/chunks/charts-BadAUMmd.js +0 -2285
  51. package/dist/client/chunks/charts-BadAUMmd.js.map +0 -1
  52. package/dist/client/chunks/icons-B5RVM-7b.js.map +0 -1
  53. package/dist/client/chunks/providers-DI5zeeEU.js.map +0 -1
@@ -1,6 +1,6 @@
1
- var FR = Object.defineProperty;
2
- var YR = (T, E, R) => E in T ? FR(T, E, { enumerable: !0, configurable: !0, writable: !0, value: R }) : T[E] = R;
3
- var l = (T, E, R) => YR(T, typeof E != "symbol" ? E + "" : E, R);
1
+ var hR = Object.defineProperty;
2
+ var VR = (T, E, R) => E in T ? hR(T, E, { enumerable: !0, configurable: !0, writable: !0, value: R }) : T[E] = R;
3
+ var l = (T, E, R) => VR(T, typeof E != "symbol" ? E + "" : E, R);
4
4
  const X = Symbol.for("drizzle:entityKind");
5
5
  function F(T, E) {
6
6
  if (!T || typeof T != "object")
@@ -20,9 +20,9 @@ function F(T, E) {
20
20
  }
21
21
  return !1;
22
22
  }
23
- var gT;
24
- gT = X;
25
- class EE {
23
+ var QT;
24
+ QT = X;
25
+ class RE {
26
26
  constructor(E, R) {
27
27
  l(this, "name");
28
28
  l(this, "keyAsName");
@@ -54,14 +54,14 @@ class EE {
54
54
  return this.config.generated !== void 0 && this.config.generated.type !== "byDefault";
55
55
  }
56
56
  }
57
- l(EE, gT, "Column");
58
- const DE = Symbol.for("drizzle:Name"), ET = Symbol.for("drizzle:isPgEnum");
59
- function pR(T) {
60
- return !!T && typeof T == "function" && ET in T && T[ET] === !0;
57
+ l(RE, QT, "Column");
58
+ const aE = Symbol.for("drizzle:Name"), ST = Symbol.for("drizzle:isPgEnum");
59
+ function WR(T) {
60
+ return !!T && typeof T == "function" && ST in T && T[ST] === !0;
61
61
  }
62
- var JT;
63
- JT = X;
64
- class QE {
62
+ var ZT;
63
+ ZT = X;
64
+ class zE {
65
65
  constructor(E, R, A, S = !1, e = []) {
66
66
  this._ = {
67
67
  brand: "Subquery",
@@ -76,69 +76,69 @@ class QE {
76
76
  // return new SQL([this]);
77
77
  // }
78
78
  }
79
- l(QE, JT, "Subquery");
80
- const dR = {
79
+ l(zE, ZT, "Subquery");
80
+ const XR = {
81
81
  startActiveSpan(T, E) {
82
82
  return E();
83
83
  }
84
- }, SE = Symbol.for("drizzle:ViewBaseConfig"), aE = Symbol.for("drizzle:Schema"), TT = Symbol.for("drizzle:Columns"), RT = Symbol.for("drizzle:ExtraConfigColumns"), PE = Symbol.for("drizzle:OriginalName"), oE = Symbol.for("drizzle:BaseName"), CE = Symbol.for("drizzle:IsAlias"), AT = Symbol.for("drizzle:ExtraConfigBuilder"), fR = Symbol.for("drizzle:IsDrizzleTable");
85
- var wT, xT, vT, QT, ZT, qT, jT, kT, zT, ER;
86
- ER = X, zT = DE, kT = PE, jT = aE, qT = TT, ZT = RT, QT = oE, vT = CE, xT = fR, wT = AT;
84
+ }, SE = Symbol.for("drizzle:ViewBaseConfig"), oE = Symbol.for("drizzle:Schema"), eT = Symbol.for("drizzle:Columns"), IT = Symbol.for("drizzle:ExtraConfigColumns"), PE = Symbol.for("drizzle:OriginalName"), ME = Symbol.for("drizzle:BaseName"), CE = Symbol.for("drizzle:IsAlias"), OT = Symbol.for("drizzle:ExtraConfigBuilder"), bR = Symbol.for("drizzle:IsDrizzleTable");
85
+ var qT, jT, kT, zT, ER, TR, RR, AR, SR, eR;
86
+ eR = X, SR = aE, AR = PE, RR = oE, TR = eT, ER = IT, zT = ME, kT = CE, jT = bR, qT = OT;
87
87
  class W {
88
88
  constructor(E, R, A) {
89
89
  /**
90
90
  * @internal
91
91
  * Can be changed if the table is aliased.
92
92
  */
93
- l(this, zT);
93
+ l(this, SR);
94
94
  /**
95
95
  * @internal
96
96
  * Used to store the original name of the table, before any aliasing.
97
97
  */
98
- l(this, kT);
98
+ l(this, AR);
99
99
  /** @internal */
100
- l(this, jT);
100
+ l(this, RR);
101
101
  /** @internal */
102
- l(this, qT);
102
+ l(this, TR);
103
103
  /** @internal */
104
- l(this, ZT);
104
+ l(this, ER);
105
105
  /**
106
106
  * @internal
107
107
  * Used to store the table name before the transformation via the `tableCreator` functions.
108
108
  */
109
- l(this, QT);
109
+ l(this, zT);
110
110
  /** @internal */
111
- l(this, vT, !1);
111
+ l(this, kT, !1);
112
112
  /** @internal */
113
- l(this, xT, !0);
113
+ l(this, jT, !0);
114
114
  /** @internal */
115
- l(this, wT);
116
- this[DE] = this[PE] = E, this[aE] = R, this[oE] = A;
115
+ l(this, qT);
116
+ this[aE] = this[PE] = E, this[oE] = R, this[ME] = A;
117
117
  }
118
118
  }
119
- l(W, ER, "Table"), /** @internal */
119
+ l(W, eR, "Table"), /** @internal */
120
120
  l(W, "Symbol", {
121
- Name: DE,
122
- Schema: aE,
121
+ Name: aE,
122
+ Schema: oE,
123
123
  OriginalName: PE,
124
- Columns: TT,
125
- ExtraConfigColumns: RT,
126
- BaseName: oE,
124
+ Columns: eT,
125
+ ExtraConfigColumns: IT,
126
+ BaseName: ME,
127
127
  IsAlias: CE,
128
- ExtraConfigBuilder: AT
128
+ ExtraConfigBuilder: OT
129
129
  });
130
- function sR(T) {
130
+ function nR(T) {
131
131
  return T != null && typeof T.getSQL == "function";
132
132
  }
133
- function hR(T) {
133
+ function yR(T) {
134
134
  var R;
135
135
  const E = { sql: "", params: [] };
136
136
  for (const A of T)
137
137
  E.sql += A.sql, E.params.push(...A.params), (R = A.typings) != null && R.length && (E.typings || (E.typings = []), E.typings.push(...A.typings));
138
138
  return E;
139
139
  }
140
- var TR;
141
- TR = X;
140
+ var IR;
141
+ IR = X;
142
142
  class h {
143
143
  constructor(E) {
144
144
  l(this, "value");
@@ -148,13 +148,13 @@ class h {
148
148
  return new m([this]);
149
149
  }
150
150
  }
151
- l(h, TR, "StringChunk");
152
- var RR;
153
- RR = X;
151
+ l(h, IR, "StringChunk");
152
+ var NR;
153
+ NR = X;
154
154
  const v = class v {
155
155
  constructor(E) {
156
156
  /** @internal */
157
- l(this, "decoder", CR);
157
+ l(this, "decoder", iR);
158
158
  l(this, "shouldInlineParams", !1);
159
159
  /** @internal */
160
160
  l(this, "usedTables", []);
@@ -171,7 +171,7 @@ const v = class v {
171
171
  return this.queryChunks.push(...E.queryChunks), this;
172
172
  }
173
173
  toQuery(E) {
174
- return dR.startActiveSpan("drizzle.buildSQL", (R) => {
174
+ return XR.startActiveSpan("drizzle.buildSQL", (R) => {
175
175
  const A = this.buildQueryFromSourceParams(this.queryChunks, E);
176
176
  return R == null || R.setAttributes({
177
177
  "drizzle.query.text": A.sql,
@@ -191,7 +191,7 @@ const v = class v {
191
191
  inlineParams: _,
192
192
  paramStartIndex: I
193
193
  } = A;
194
- return hR(E.map((O) => {
194
+ return yR(E.map((O) => {
195
195
  var C;
196
196
  if (F(O, h))
197
197
  return { sql: O.value.join(""), params: [] };
@@ -201,8 +201,8 @@ const v = class v {
201
201
  return { sql: "", params: [] };
202
202
  if (Array.isArray(O)) {
203
203
  const t = [new h("(")];
204
- for (const [i, o] of O.entries())
205
- t.push(o), i < O.length - 1 && t.push(new h(", "));
204
+ for (const [i, P] of O.entries())
205
+ t.push(P), i < O.length - 1 && t.push(new h(", "));
206
206
  return t.push(new h(")")), this.buildQueryFromSourceParams(t, A);
207
207
  }
208
208
  if (F(O, v))
@@ -217,7 +217,7 @@ const v = class v {
217
217
  params: []
218
218
  };
219
219
  }
220
- if (F(O, EE)) {
220
+ if (F(O, RE)) {
221
221
  const t = S.getColumnCasing(O);
222
222
  if (R.invokeSource === "indexes")
223
223
  return { sql: e(t), params: [] };
@@ -227,7 +227,7 @@ const v = class v {
227
227
  params: []
228
228
  };
229
229
  }
230
- if (F(O, ZE)) {
230
+ if (F(O, ET)) {
231
231
  const t = O[SE].schema, i = O[SE].name;
232
232
  return {
233
233
  sql: t === void 0 || O[SE].isAlias ? e(i) : e(t) + "." + e(i),
@@ -245,12 +245,12 @@ const v = class v {
245
245
  let i = ["none"];
246
246
  return s && (i = [s(O.encoder)]), { sql: N(I.value++, t), params: [t], typings: i };
247
247
  }
248
- return F(O, OE) ? { sql: N(I.value++, O), params: [O], typings: ["none"] } : F(O, v.Aliased) && O.fieldAlias !== void 0 ? { sql: e(O.fieldAlias), params: [] } : F(O, QE) ? O._.isWith ? { sql: e(O._.alias), params: [] } : this.buildQueryFromSourceParams([
248
+ return F(O, OE) ? { sql: N(I.value++, O), params: [O], typings: ["none"] } : F(O, v.Aliased) && O.fieldAlias !== void 0 ? { sql: e(O.fieldAlias), params: [] } : F(O, zE) ? O._.isWith ? { sql: e(O._.alias), params: [] } : this.buildQueryFromSourceParams([
249
249
  new h("("),
250
250
  O._.sql,
251
251
  new h(") "),
252
252
  new LE(O._.alias)
253
- ], A) : pR(O) ? O.schema ? { sql: e(O.schema) + "." + e(O.enumName), params: [] } : { sql: e(O.enumName), params: [] } : sR(O) ? (C = O.shouldOmitSQLParens) != null && C.call(O) ? this.buildQueryFromSourceParams([O.getSQL()], A) : this.buildQueryFromSourceParams([
253
+ ], A) : WR(O) ? O.schema ? { sql: e(O.schema) + "." + e(O.enumName), params: [] } : { sql: e(O.enumName), params: [] } : nR(O) ? (C = O.shouldOmitSQLParens) != null && C.call(O) ? this.buildQueryFromSourceParams([O.getSQL()], A) : this.buildQueryFromSourceParams([
254
254
  new h("("),
255
255
  O.getSQL(),
256
256
  new h(")")
@@ -292,10 +292,10 @@ const v = class v {
292
292
  return E ? this : void 0;
293
293
  }
294
294
  };
295
- l(v, RR, "SQL");
295
+ l(v, NR, "SQL");
296
296
  let m = v;
297
- var AR;
298
- AR = X;
297
+ var tR;
298
+ tR = X;
299
299
  class LE {
300
300
  constructor(E) {
301
301
  l(this, "brand");
@@ -305,27 +305,27 @@ class LE {
305
305
  return new m([this]);
306
306
  }
307
307
  }
308
- l(LE, AR, "Name");
309
- function VR(T) {
308
+ l(LE, tR, "Name");
309
+ function KR(T) {
310
310
  return typeof T == "object" && T !== null && "mapToDriverValue" in T && typeof T.mapToDriverValue == "function";
311
311
  }
312
- const CR = {
312
+ const iR = {
313
313
  mapFromDriverValue: (T) => T
314
- }, LR = {
314
+ }, DR = {
315
315
  mapToDriverValue: (T) => T
316
316
  };
317
317
  ({
318
- ...CR,
319
- ...LR
318
+ ...iR,
319
+ ...DR
320
320
  });
321
- var SR;
322
- SR = X;
321
+ var sR;
322
+ sR = X;
323
323
  class IE {
324
324
  /**
325
325
  * @param value - Parameter value
326
326
  * @param encoder - Encoder to convert the value to a driver parameter
327
327
  */
328
- constructor(E, R = LR) {
328
+ constructor(E, R = DR) {
329
329
  l(this, "brand");
330
330
  this.value = E, this.encoder = R;
331
331
  }
@@ -333,7 +333,7 @@ class IE {
333
333
  return new m([this]);
334
334
  }
335
335
  }
336
- l(IE, SR, "Param");
336
+ l(IE, sR, "Param");
337
337
  function L(T, ...E) {
338
338
  const R = [];
339
339
  (E.length > 0 || T.length > 0 && T[0] !== "") && R.push(new h(T[0]));
@@ -395,8 +395,8 @@ function L(T, ...E) {
395
395
  let E = A;
396
396
  T.Aliased = E;
397
397
  })(m || (m = {}));
398
- var eR;
399
- eR = X;
398
+ var CR;
399
+ CR = X;
400
400
  class OE {
401
401
  constructor(E) {
402
402
  this.name = E;
@@ -405,16 +405,16 @@ class OE {
405
405
  return new m([this]);
406
406
  }
407
407
  }
408
- l(OE, eR, "Placeholder");
409
- const WR = Symbol.for("drizzle:IsDrizzleView");
410
- var IR, NR, tR;
411
- tR = X, NR = SE, IR = WR;
412
- class ZE {
408
+ l(OE, CR, "Placeholder");
409
+ const $R = Symbol.for("drizzle:IsDrizzleView");
410
+ var LR, _R, rR;
411
+ rR = X, _R = SE, LR = $R;
412
+ class ET {
413
413
  constructor({ name: E, schema: R, selectedFields: A, query: S }) {
414
414
  /** @internal */
415
- l(this, NR);
415
+ l(this, _R);
416
416
  /** @internal */
417
- l(this, IR, !0);
417
+ l(this, LR, !0);
418
418
  this[SE] = {
419
419
  name: E,
420
420
  originalName: E,
@@ -429,20 +429,20 @@ class ZE {
429
429
  return new m([this]);
430
430
  }
431
431
  }
432
- l(ZE, tR, "View");
433
- EE.prototype.getSQL = function() {
432
+ l(ET, rR, "View");
433
+ RE.prototype.getSQL = function() {
434
434
  return new m([this]);
435
435
  };
436
436
  W.prototype.getSQL = function() {
437
437
  return new m([this]);
438
438
  };
439
- QE.prototype.getSQL = function() {
439
+ zE.prototype.getSQL = function() {
440
440
  return new m([this]);
441
441
  };
442
442
  function $(T, E) {
443
- return VR(E) && !sR(T) && !F(T, IE) && !F(T, OE) && !F(T, EE) && !F(T, W) && !F(T, ZE) ? new IE(T, E) : T;
443
+ return KR(E) && !nR(T) && !F(T, IE) && !F(T, OE) && !F(T, RE) && !F(T, W) && !F(T, ET) ? new IE(T, E) : T;
444
444
  }
445
- const qE = (T, E) => L`${T} = ${$(E, T)}`, XR = (T, E) => L`${T} <> ${$(E, T)}`;
445
+ const _E = (T, E) => L`${T} = ${$(E, T)}`, NT = (T, E) => L`${T} <> ${$(E, T)}`;
446
446
  function b(...T) {
447
447
  const E = T.filter(
448
448
  (R) => R !== void 0
@@ -454,7 +454,7 @@ function b(...T) {
454
454
  new h(")")
455
455
  ]);
456
456
  }
457
- function bR(...T) {
457
+ function UE(...T) {
458
458
  const E = T.filter(
459
459
  (R) => R !== void 0
460
460
  );
@@ -465,26 +465,26 @@ function bR(...T) {
465
465
  new h(")")
466
466
  ]);
467
467
  }
468
- const ST = (T, E) => L`${T} > ${$(E, T)}`, RE = (T, E) => L`${T} >= ${$(E, T)}`, eT = (T, E) => L`${T} < ${$(E, T)}`, AE = (T, E) => L`${T} <= ${$(E, T)}`;
469
- function IT(T, E) {
468
+ const GE = (T, E) => L`${T} > ${$(E, T)}`, j = (T, E) => L`${T} >= ${$(E, T)}`, lE = (T, E) => L`${T} < ${$(E, T)}`, k = (T, E) => L`${T} <= ${$(E, T)}`;
469
+ function cE(T, E) {
470
470
  return Array.isArray(E) ? E.length === 0 ? L`false` : L`${T} in ${E.map((R) => $(R, T))}` : L`${T} in ${$(E, T)}`;
471
471
  }
472
- function yR(T, E) {
472
+ function tT(T, E) {
473
473
  return Array.isArray(E) ? E.length === 0 ? L`true` : L`${T} not in ${E.map((R) => $(R, T))}` : L`${T} not in ${$(E, T)}`;
474
474
  }
475
- function KR(T) {
475
+ function sT(T) {
476
476
  return L`${T} is null`;
477
477
  }
478
- function $R(T) {
478
+ function CT(T) {
479
479
  return L`${T} is not null`;
480
480
  }
481
- function OT(T) {
481
+ function LT(T) {
482
482
  return L`${T} asc`;
483
483
  }
484
484
  function gR(T) {
485
485
  return L`${T} desc`;
486
486
  }
487
- function ME(T) {
487
+ function uE(T) {
488
488
  return L`count(${T || L.raw("*")})`.mapWith(Number);
489
489
  }
490
490
  function JR(T) {
@@ -493,13 +493,13 @@ function JR(T) {
493
493
  function Q(T) {
494
494
  return L`sum(${T})`.mapWith(String);
495
495
  }
496
- function wE(T) {
497
- return L`max(${T})`.mapWith(F(T, EE) ? T : String);
496
+ function qE(T) {
497
+ return L`max(${T})`.mapWith(F(T, RE) ? T : String);
498
498
  }
499
- function xE(T) {
500
- return L`min(${T})`.mapWith(F(T, EE) ? T : String);
499
+ function jE(T) {
500
+ return L`min(${T})`.mapWith(F(T, RE) ? T : String);
501
501
  }
502
- class jE {
502
+ class TT {
503
503
  /**
504
504
  * Helper method to build pattern for string matching
505
505
  * Can be overridden by specific adapters if needed
@@ -518,7 +518,7 @@ class jE {
518
518
  }
519
519
  }
520
520
  }
521
- class wR extends jE {
521
+ class wR extends TT {
522
522
  getEngineType() {
523
523
  return "postgres";
524
524
  }
@@ -553,16 +553,25 @@ class wR extends jE {
553
553
  * Extracted from executor.ts:807-813 and multi-cube-builder.ts:468-474
554
554
  */
555
555
  buildStringCondition(E, R, A) {
556
- const S = this.buildPattern(R, A);
557
556
  switch (R) {
558
557
  case "contains":
559
- return L`${E} ILIKE ${S}`;
558
+ return L`${E} ILIKE ${`%${A}%`}`;
560
559
  case "notContains":
561
- return L`${E} NOT ILIKE ${S}`;
560
+ return L`${E} NOT ILIKE ${`%${A}%`}`;
562
561
  case "startsWith":
563
- return L`${E} ILIKE ${S}`;
562
+ return L`${E} ILIKE ${`${A}%`}`;
564
563
  case "endsWith":
565
- return L`${E} ILIKE ${S}`;
564
+ return L`${E} ILIKE ${`%${A}`}`;
565
+ case "like":
566
+ return L`${E} LIKE ${A}`;
567
+ case "notLike":
568
+ return L`${E} NOT LIKE ${A}`;
569
+ case "ilike":
570
+ return L`${E} ILIKE ${A}`;
571
+ case "regex":
572
+ return L`${E} ~* ${A}`;
573
+ case "notRegex":
574
+ return L`${E} !~* ${A}`;
566
575
  default:
567
576
  throw new Error(`Unsupported string operator: ${R}`);
568
577
  }
@@ -633,7 +642,7 @@ class wR extends jE {
633
642
  return E;
634
643
  }
635
644
  }
636
- class xR extends jE {
645
+ class xR extends TT {
637
646
  getEngineType() {
638
647
  return "mysql";
639
648
  }
@@ -670,16 +679,25 @@ class xR extends jE {
670
679
  * For guaranteed case-insensitive matching, we use LOWER() functions
671
680
  */
672
681
  buildStringCondition(E, R, A) {
673
- const S = this.buildPattern(R, A.toLowerCase());
674
682
  switch (R) {
675
683
  case "contains":
676
- return L`LOWER(${E}) LIKE ${S}`;
684
+ return L`LOWER(${E}) LIKE ${`%${A.toLowerCase()}%`}`;
677
685
  case "notContains":
678
- return L`LOWER(${E}) NOT LIKE ${S}`;
686
+ return L`LOWER(${E}) NOT LIKE ${`%${A.toLowerCase()}%`}`;
679
687
  case "startsWith":
680
- return L`LOWER(${E}) LIKE ${S}`;
688
+ return L`LOWER(${E}) LIKE ${`${A.toLowerCase()}%`}`;
681
689
  case "endsWith":
682
- return L`LOWER(${E}) LIKE ${S}`;
690
+ return L`LOWER(${E}) LIKE ${`%${A.toLowerCase()}`}`;
691
+ case "like":
692
+ return L`${E} LIKE ${A}`;
693
+ case "notLike":
694
+ return L`${E} NOT LIKE ${A}`;
695
+ case "ilike":
696
+ return L`LOWER(${E}) LIKE ${A.toLowerCase()}`;
697
+ case "regex":
698
+ return L`${E} REGEXP ${A}`;
699
+ case "notRegex":
700
+ return L`${E} NOT REGEXP ${A}`;
683
701
  default:
684
702
  throw new Error(`Unsupported string operator: ${R}`);
685
703
  }
@@ -749,7 +767,7 @@ class xR extends jE {
749
767
  return E;
750
768
  }
751
769
  }
752
- class vR extends jE {
770
+ class vR extends TT {
753
771
  getEngineType() {
754
772
  return "sqlite";
755
773
  }
@@ -791,16 +809,25 @@ class vR extends jE {
791
809
  * SQLite LIKE is case-insensitive by default, but LOWER() ensures consistency
792
810
  */
793
811
  buildStringCondition(E, R, A) {
794
- const S = this.buildPattern(R, A.toLowerCase());
795
812
  switch (R) {
796
813
  case "contains":
797
- return L`LOWER(${E}) LIKE ${S}`;
814
+ return L`LOWER(${E}) LIKE ${`%${A.toLowerCase()}%`}`;
798
815
  case "notContains":
799
- return L`LOWER(${E}) NOT LIKE ${S}`;
816
+ return L`LOWER(${E}) NOT LIKE ${`%${A.toLowerCase()}%`}`;
800
817
  case "startsWith":
801
- return L`LOWER(${E}) LIKE ${S}`;
818
+ return L`LOWER(${E}) LIKE ${`${A.toLowerCase()}%`}`;
802
819
  case "endsWith":
803
- return L`LOWER(${E}) LIKE ${S}`;
820
+ return L`LOWER(${E}) LIKE ${`%${A.toLowerCase()}`}`;
821
+ case "like":
822
+ return L`${E} LIKE ${A}`;
823
+ case "notLike":
824
+ return L`${E} NOT LIKE ${A}`;
825
+ case "ilike":
826
+ return L`LOWER(${E}) LIKE ${A.toLowerCase()}`;
827
+ case "regex":
828
+ return L`${E} GLOB ${A}`;
829
+ case "notRegex":
830
+ return L`${E} NOT GLOB ${A}`;
804
831
  default:
805
832
  throw new Error(`Unsupported string operator: ${R}`);
806
833
  }
@@ -888,7 +915,7 @@ function QR(T) {
888
915
  throw new Error(`Unsupported database engine: ${T}`);
889
916
  }
890
917
  }
891
- class kE {
918
+ class RT {
892
919
  constructor(E, R, A) {
893
920
  l(this, "databaseAdapter");
894
921
  this.db = E, this.schema = R;
@@ -896,24 +923,11 @@ class kE {
896
923
  this.databaseAdapter = QR(S);
897
924
  }
898
925
  }
899
- class ZR extends kE {
926
+ class ZR extends RT {
900
927
  async execute(E, R) {
901
- if (E && typeof E == "object") {
902
- if (typeof E.execute == "function") {
903
- const S = await E.execute();
904
- return Array.isArray(S) ? S.map((e) => this.convertNumericFields(e, R)) : S;
905
- }
906
- if (this.db && typeof this.db.execute == "function")
907
- try {
908
- const S = await this.db.execute(E);
909
- return Array.isArray(S) ? S.map((e) => this.convertNumericFields(e, R)) : S;
910
- } catch (S) {
911
- if (typeof E.getSQL == "function") {
912
- const e = E.getSQL(), N = await this.db.execute(e);
913
- return Array.isArray(N) ? N.map((s) => this.convertNumericFields(s, R)) : N;
914
- }
915
- throw S;
916
- }
928
+ if (E && typeof E == "object" && typeof E.execute == "function") {
929
+ const S = await E.execute();
930
+ return Array.isArray(S) ? S.map((e) => this.convertNumericFields(e, R)) : S;
917
931
  }
918
932
  if (!this.db.execute)
919
933
  throw new Error("PostgreSQL database instance must have an execute method");
@@ -961,10 +975,10 @@ class ZR extends kE {
961
975
  return "postgres";
962
976
  }
963
977
  }
964
- function NT(T, E) {
978
+ function _T(T, E) {
965
979
  return new ZR(T, E, "postgres");
966
980
  }
967
- class qR extends kE {
981
+ class qR extends RT {
968
982
  async execute(E, R) {
969
983
  if (E && typeof E == "object" && typeof E.execute == "function") {
970
984
  const S = await E.execute();
@@ -1005,7 +1019,7 @@ class qR extends kE {
1005
1019
  function jR(T, E) {
1006
1020
  return new qR(T, E, "mysql");
1007
1021
  }
1008
- class kR extends kE {
1022
+ class kR extends RT {
1009
1023
  async execute(E, R) {
1010
1024
  if (E && typeof E == "object" && typeof E.execute == "function") {
1011
1025
  const A = await E.execute();
@@ -1051,26 +1065,26 @@ class kR extends kE {
1051
1065
  return "sqlite";
1052
1066
  }
1053
1067
  }
1054
- function tT(T, E) {
1068
+ function rT(T, E) {
1055
1069
  return new kR(T, E, "sqlite");
1056
1070
  }
1057
- function sT(T, E, R) {
1071
+ function nT(T, E, R) {
1058
1072
  if (R)
1059
1073
  switch (R) {
1060
1074
  case "postgres":
1061
- return NT(T, E);
1075
+ return _T(T, E);
1062
1076
  case "mysql":
1063
1077
  return jR(T, E);
1064
1078
  case "sqlite":
1065
- return tT(T, E);
1079
+ return rT(T, E);
1066
1080
  }
1067
1081
  if (T.all && T.run)
1068
- return tT(T, E);
1082
+ return rT(T, E);
1069
1083
  if (T.execute)
1070
- return NT(T, E);
1084
+ return _T(T, E);
1071
1085
  throw new Error("Unable to determine database engine type. Please specify engineType parameter.");
1072
1086
  }
1073
- function CT(T) {
1087
+ function iT(T) {
1074
1088
  return typeof T == "function" ? T() : T;
1075
1089
  }
1076
1090
  function zR(T, E) {
@@ -1127,7 +1141,7 @@ class EA {
1127
1141
  S[N.dimension] = L`${C}`.as(N.dimension);
1128
1142
  }
1129
1143
  }
1130
- return Object.keys(S).length === 0 && (S.count = ME()), S;
1144
+ return Object.keys(S).length === 0 && (S.count = uE()), S;
1131
1145
  }
1132
1146
  /**
1133
1147
  * Build measure expression for HAVING clause, handling CTE references correctly
@@ -1145,9 +1159,9 @@ class EA {
1145
1159
  case "avg":
1146
1160
  return this.databaseAdapter.buildAvg(s);
1147
1161
  case "min":
1148
- return xE(s);
1162
+ return jE(s);
1149
1163
  case "max":
1150
- return wE(s);
1164
+ return qE(s);
1151
1165
  case "number":
1152
1166
  return Q(s);
1153
1167
  default:
@@ -1173,7 +1187,7 @@ class EA {
1173
1187
  }
1174
1188
  switch (E.type) {
1175
1189
  case "count":
1176
- return ME(A);
1190
+ return uE(A);
1177
1191
  case "countDistinct":
1178
1192
  return JR(A);
1179
1193
  case "sum":
@@ -1181,13 +1195,13 @@ class EA {
1181
1195
  case "avg":
1182
1196
  return this.databaseAdapter.buildAvg(A);
1183
1197
  case "min":
1184
- return xE(A);
1198
+ return jE(A);
1185
1199
  case "max":
1186
- return wE(A);
1200
+ return qE(A);
1187
1201
  case "number":
1188
1202
  return A;
1189
1203
  default:
1190
- return ME(A);
1204
+ return uE(A);
1191
1205
  }
1192
1206
  }
1193
1207
  /**
@@ -1241,12 +1255,12 @@ class EA {
1241
1255
  if ("and" in E || "or" in E) {
1242
1256
  const i = E;
1243
1257
  if (i.and) {
1244
- const o = i.and.map((M) => this.processFilter(M, R, A, S, e)).filter((M) => M !== null);
1245
- return o.length > 0 ? b(...o) : null;
1258
+ const P = i.and.map((M) => this.processFilter(M, R, A, S, e)).filter((M) => M !== null);
1259
+ return P.length > 0 ? b(...P) : null;
1246
1260
  }
1247
1261
  if (i.or) {
1248
- const o = i.or.map((M) => this.processFilter(M, R, A, S, e)).filter((M) => M !== null);
1249
- return o.length > 0 ? bR(...o) : null;
1262
+ const P = i.or.map((M) => this.processFilter(M, R, A, S, e)).filter((M) => M !== null);
1263
+ return P.length > 0 ? UE(...P) : null;
1250
1264
  }
1251
1265
  }
1252
1266
  const N = E, [s, _] = N.member.split("."), I = R.get(s);
@@ -1283,16 +1297,16 @@ class EA {
1283
1297
  if (e.length > 1) {
1284
1298
  if ((S == null ? void 0 : S.type) === "time") {
1285
1299
  const s = e.map((_) => this.normalizeDate(_) || _);
1286
- return IT(E, s);
1300
+ return cE(E, s);
1287
1301
  }
1288
- return IT(E, e);
1302
+ return cE(E, e);
1289
1303
  } else if (e.length === 1) {
1290
1304
  const s = (S == null ? void 0 : S.type) === "time" && this.normalizeDate(N) || N;
1291
- return qE(E, s);
1305
+ return _E(E, s);
1292
1306
  }
1293
1307
  return this.databaseAdapter.buildBooleanLiteral(!1);
1294
1308
  case "notEquals":
1295
- return e.length > 1 ? yR(E, e) : e.length === 1 ? XR(E, N) : null;
1309
+ return e.length > 1 ? tT(E, e) : e.length === 1 ? NT(E, N) : null;
1296
1310
  case "contains":
1297
1311
  return this.databaseAdapter.buildStringCondition(E, "contains", N);
1298
1312
  case "notContains":
@@ -1302,35 +1316,69 @@ class EA {
1302
1316
  case "endsWith":
1303
1317
  return this.databaseAdapter.buildStringCondition(E, "endsWith", N);
1304
1318
  case "gt":
1305
- return ST(E, N);
1319
+ return GE(E, N);
1306
1320
  case "gte":
1307
- return RE(E, N);
1321
+ return j(E, N);
1308
1322
  case "lt":
1309
- return eT(E, N);
1323
+ return lE(E, N);
1310
1324
  case "lte":
1311
- return AE(E, N);
1325
+ return k(E, N);
1312
1326
  case "set":
1313
- return $R(E);
1327
+ return CT(E);
1314
1328
  case "notSet":
1315
- return KR(E);
1329
+ return sT(E);
1316
1330
  case "inDateRange":
1317
1331
  if (e.length >= 2) {
1318
1332
  const s = this.normalizeDate(e[0]), _ = this.normalizeDate(e[1]);
1319
1333
  if (s && _)
1320
1334
  return b(
1321
- RE(E, s),
1322
- AE(E, _)
1335
+ j(E, s),
1336
+ k(E, _)
1323
1337
  );
1324
1338
  }
1325
1339
  return null;
1326
1340
  case "beforeDate": {
1327
1341
  const s = this.normalizeDate(N);
1328
- return s ? eT(E, s) : null;
1342
+ return s ? lE(E, s) : null;
1329
1343
  }
1330
1344
  case "afterDate": {
1331
1345
  const s = this.normalizeDate(N);
1332
- return s ? ST(E, s) : null;
1346
+ return s ? GE(E, s) : null;
1333
1347
  }
1348
+ case "between":
1349
+ return e.length >= 2 ? b(
1350
+ j(E, e[0]),
1351
+ k(E, e[1])
1352
+ ) : null;
1353
+ case "notBetween":
1354
+ return e.length >= 2 ? UE(
1355
+ lE(E, e[0]),
1356
+ GE(E, e[1])
1357
+ ) : null;
1358
+ case "in":
1359
+ return e.length > 0 ? cE(E, e) : null;
1360
+ case "notIn":
1361
+ return e.length > 0 ? tT(E, e) : null;
1362
+ case "like":
1363
+ return this.databaseAdapter.buildStringCondition(E, "like", N);
1364
+ case "notLike":
1365
+ return this.databaseAdapter.buildStringCondition(E, "notLike", N);
1366
+ case "ilike":
1367
+ return this.databaseAdapter.buildStringCondition(E, "ilike", N);
1368
+ case "regex":
1369
+ return this.databaseAdapter.buildStringCondition(E, "regex", N);
1370
+ case "notRegex":
1371
+ return this.databaseAdapter.buildStringCondition(E, "notRegex", N);
1372
+ case "isEmpty":
1373
+ return UE(
1374
+ sT(E),
1375
+ _E(E, "")
1376
+ );
1377
+ case "isNotEmpty":
1378
+ return b(
1379
+ CT(E),
1380
+ NT(E, "")
1381
+ );
1334
1382
  default:
1335
1383
  return null;
1336
1384
  }
@@ -1343,16 +1391,16 @@ class EA {
1343
1391
  if (Array.isArray(R) && R.length >= 2) {
1344
1392
  const A = this.normalizeDate(R[0]), S = this.normalizeDate(R[1]);
1345
1393
  return !A || !S ? null : b(
1346
- RE(E, A),
1347
- AE(E, S)
1394
+ j(E, A),
1395
+ k(E, S)
1348
1396
  );
1349
1397
  }
1350
1398
  if (typeof R == "string") {
1351
1399
  const A = this.parseRelativeDateRange(R);
1352
1400
  if (A)
1353
1401
  return b(
1354
- RE(E, A.start),
1355
- AE(E, A.end)
1402
+ j(E, A.start),
1403
+ k(E, A.end)
1356
1404
  );
1357
1405
  const S = this.normalizeDate(R);
1358
1406
  if (!S) return null;
@@ -1360,8 +1408,8 @@ class EA {
1360
1408
  e.setUTCHours(0, 0, 0, 0);
1361
1409
  const N = new Date(S);
1362
1410
  return N.setUTCHours(23, 59, 59, 999), b(
1363
- RE(E, e),
1364
- AE(E, N)
1411
+ j(E, e),
1412
+ k(E, N)
1365
1413
  );
1366
1414
  }
1367
1415
  return null;
@@ -1420,8 +1468,8 @@ class EA {
1420
1468
  return { start: C, end: t };
1421
1469
  }
1422
1470
  if (A === "last quarter") {
1423
- const C = Math.floor(e / 3), t = C === 0 ? 3 : C - 1, i = C === 0 ? S - 1 : S, o = new Date(Date.UTC(i, t * 3, 1, 0, 0, 0, 0)), M = new Date(Date.UTC(i, t * 3 + 3, 0, 23, 59, 59, 999));
1424
- return { start: o, end: M };
1471
+ const C = Math.floor(e / 3), t = C === 0 ? 3 : C - 1, i = C === 0 ? S - 1 : S, P = new Date(Date.UTC(i, t * 3, 1, 0, 0, 0, 0)), M = new Date(Date.UTC(i, t * 3 + 3, 0, 23, 59, 59, 999));
1472
+ return { start: P, end: M };
1425
1473
  }
1426
1474
  if (A === "last year") {
1427
1475
  const C = new Date(Date.UTC(S - 1, 0, 1, 0, 0, 0, 0)), t = new Date(Date.UTC(S - 1, 11, 31, 23, 59, 59, 999));
@@ -1478,16 +1526,16 @@ class EA {
1478
1526
  const [C, t] = O.split("."), i = s.get(C);
1479
1527
  if (i && i.dimensions && i.dimensions[t])
1480
1528
  if ((_ = S == null ? void 0 : S.preAggregationCTEs) == null ? void 0 : _.some((M) => M.cube.name === C)) {
1481
- const M = S.preAggregationCTEs.find((G) => G.cube.name === C), P = M.joinKeys.find((G) => G.targetColumn === t);
1482
- if (P && P.sourceColumnObj)
1483
- e.push(P.sourceColumnObj);
1529
+ const M = S.preAggregationCTEs.find((G) => G.cube.name === C), o = M.joinKeys.find((G) => G.targetColumn === t);
1530
+ if (o && o.sourceColumnObj)
1531
+ e.push(o.sourceColumnObj);
1484
1532
  else {
1485
1533
  const G = L`${L.identifier(M.cteAlias)}.${L.identifier(t)}`;
1486
1534
  e.push(G);
1487
1535
  }
1488
1536
  } else {
1489
- const M = i.dimensions[t], P = x(M.sql, A);
1490
- e.push(P);
1537
+ const M = i.dimensions[t], o = x(M.sql, A);
1538
+ e.push(o);
1491
1539
  }
1492
1540
  }
1493
1541
  if (R.timeDimensions)
@@ -1495,10 +1543,10 @@ class EA {
1495
1543
  const [C, t] = O.dimension.split("."), i = s.get(C);
1496
1544
  if (i && i.dimensions && i.dimensions[t])
1497
1545
  if ((I = S == null ? void 0 : S.preAggregationCTEs) == null ? void 0 : I.some((M) => M.cube.name === C)) {
1498
- const M = S.preAggregationCTEs.find((G) => G.cube.name === C), P = M.joinKeys.find((G) => G.targetColumn === t);
1499
- if (P && P.sourceColumnObj) {
1546
+ const M = S.preAggregationCTEs.find((G) => G.cube.name === C), o = M.joinKeys.find((G) => G.targetColumn === t);
1547
+ if (o && o.sourceColumnObj) {
1500
1548
  const G = this.buildTimeDimensionExpression(
1501
- P.sourceColumnObj,
1549
+ o.sourceColumnObj,
1502
1550
  O.granularity,
1503
1551
  A
1504
1552
  );
@@ -1508,12 +1556,12 @@ class EA {
1508
1556
  e.push(G);
1509
1557
  }
1510
1558
  } else {
1511
- const M = i.dimensions[t], P = this.buildTimeDimensionExpression(
1559
+ const M = i.dimensions[t], o = this.buildTimeDimensionExpression(
1512
1560
  M.sql,
1513
1561
  O.granularity,
1514
1562
  A
1515
1563
  );
1516
- e.push(P);
1564
+ e.push(o);
1517
1565
  }
1518
1566
  }
1519
1567
  return e;
@@ -1532,7 +1580,7 @@ class EA {
1532
1580
  for (const [N, s] of Object.entries(E.order)) {
1533
1581
  if (!S.includes(N))
1534
1582
  throw new Error(`Cannot order by '${N}': field is not selected in the query`);
1535
- const _ = s === "desc" ? gR(L.identifier(N)) : OT(L.identifier(N));
1583
+ const _ = s === "desc" ? gR(L.identifier(N)) : LT(L.identifier(N));
1536
1584
  A.push(_);
1537
1585
  }
1538
1586
  if (E.timeDimensions && E.timeDimensions.length > 0) {
@@ -1540,7 +1588,7 @@ class EA {
1540
1588
  (_, I) => _.dimension.localeCompare(I.dimension)
1541
1589
  );
1542
1590
  for (const _ of s)
1543
- N.has(_.dimension) || A.push(OT(L.identifier(_.dimension)));
1591
+ N.has(_.dimension) || A.push(LT(L.identifier(_.dimension)));
1544
1592
  }
1545
1593
  return A;
1546
1594
  }
@@ -1766,7 +1814,7 @@ class TA {
1766
1814
  buildJoinCondition(E, R, A) {
1767
1815
  const S = [];
1768
1816
  for (const e of E.on) {
1769
- const N = R ? L`${L.identifier(R)}.${L.identifier(e.source.name)}` : e.source, s = A ? L`${L.identifier(A)}.${L.identifier(e.target.name)}` : e.target, _ = e.as || qE;
1817
+ const N = R ? L`${L.identifier(R)}.${L.identifier(e.source.name)}` : e.source, s = A ? L`${L.identifier(A)}.${L.identifier(e.target.name)}` : e.target, _ = e.as || _E;
1770
1818
  S.push(_(N, s));
1771
1819
  }
1772
1820
  return b(...S);
@@ -1785,7 +1833,7 @@ class TA {
1785
1833
  const { cube: s, path: _ } = e.shift(), I = E.get(s);
1786
1834
  if (I != null && I.joins)
1787
1835
  for (const [, O] of Object.entries(I.joins)) {
1788
- const t = CT(O.targetCube).name;
1836
+ const t = iT(O.targetCube).name;
1789
1837
  if (N.has(t))
1790
1838
  continue;
1791
1839
  const i = [..._, {
@@ -1839,12 +1887,12 @@ class TA {
1839
1887
  if (!E.joins)
1840
1888
  return null;
1841
1889
  for (const [, A] of Object.entries(E.joins))
1842
- if (CT(A.targetCube).name === R && A.relationship === "hasMany")
1890
+ if (iT(A.targetCube).name === R && A.relationship === "hasMany")
1843
1891
  return A;
1844
1892
  return null;
1845
1893
  }
1846
1894
  }
1847
- class UE {
1895
+ class HE {
1848
1896
  constructor(E) {
1849
1897
  l(this, "queryBuilder");
1850
1898
  l(this, "queryPlanner");
@@ -1858,7 +1906,7 @@ class UE {
1858
1906
  */
1859
1907
  async execute(E, R, A) {
1860
1908
  try {
1861
- const S = HR(E, R);
1909
+ const S = pR(E, R);
1862
1910
  if (!S.isValid)
1863
1911
  throw new Error(`Query validation failed: ${S.errors.join(", ")}`);
1864
1912
  const e = {
@@ -1868,14 +1916,14 @@ class UE {
1868
1916
  }, N = this.queryPlanner.createQueryPlan(E, R, e), s = this.buildUnifiedQuery(N, R, e), _ = this.queryBuilder.collectNumericFields(E, R), I = await this.dbExecutor.execute(s, _), O = Array.isArray(I) ? I.map((t) => {
1869
1917
  const i = { ...t };
1870
1918
  if (R.timeDimensions) {
1871
- for (const o of R.timeDimensions)
1872
- if (o.dimension in i) {
1873
- let M = i[o.dimension];
1919
+ for (const P of R.timeDimensions)
1920
+ if (P.dimension in i) {
1921
+ let M = i[P.dimension];
1874
1922
  if (typeof M == "string" && M.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/)) {
1875
- const P = M.replace(" ", "T"), G = !P.endsWith("Z") && !P.includes("+") ? P + "Z" : P;
1923
+ const o = M.replace(" ", "T"), G = !o.endsWith("Z") && !o.includes("+") ? o + "Z" : o;
1876
1924
  M = new Date(G);
1877
1925
  }
1878
- M = this.databaseAdapter.convertTimeDimensionResult(M), i[o.dimension] = M;
1926
+ M = this.databaseAdapter.convertTimeDimensionResult(M), i[P.dimension] = M;
1879
1927
  }
1880
1928
  }
1881
1929
  return i;
@@ -1901,14 +1949,14 @@ class UE {
1901
1949
  buildPreAggregationCTE(E, R, A, S) {
1902
1950
  var M;
1903
1951
  const e = E.cube, N = e.sql(A), s = {};
1904
- for (const P of E.joinKeys)
1905
- if (P.targetColumnObj) {
1906
- s[P.targetColumn] = P.targetColumnObj;
1952
+ for (const o of E.joinKeys)
1953
+ if (o.targetColumnObj) {
1954
+ s[o.targetColumn] = o.targetColumnObj;
1907
1955
  for (const [G, a] of Object.entries(e.dimensions || {}))
1908
- a.sql === P.targetColumnObj && G !== P.targetColumn && (s[G] = L`${P.targetColumnObj}`.as(G));
1956
+ a.sql === o.targetColumnObj && G !== o.targetColumn && (s[G] = L`${o.targetColumnObj}`.as(G));
1909
1957
  }
1910
- for (const P of E.measures) {
1911
- const [, G] = P.split(".");
1958
+ for (const o of E.measures) {
1959
+ const [, G] = o.split(".");
1912
1960
  if (e.measures && e.measures[G]) {
1913
1961
  const a = e.measures[G], H = this.queryBuilder.buildMeasureExpression(a, A);
1914
1962
  s[G] = L`${H}`.as(G);
@@ -1916,18 +1964,18 @@ class UE {
1916
1964
  }
1917
1965
  const _ = e.name;
1918
1966
  if (R.dimensions)
1919
- for (const P of R.dimensions) {
1920
- const [G, a] = P.split(".");
1967
+ for (const o of R.dimensions) {
1968
+ const [G, a] = o.split(".");
1921
1969
  if (G === _ && e.dimensions && e.dimensions[a]) {
1922
1970
  const H = e.dimensions[a], u = this.queryBuilder.buildMeasureExpression({ sql: H.sql, type: "number" }, A);
1923
1971
  s[a] = L`${u}`.as(a);
1924
1972
  }
1925
1973
  }
1926
1974
  if (R.timeDimensions)
1927
- for (const P of R.timeDimensions) {
1928
- const [G, a] = P.dimension.split(".");
1975
+ for (const o of R.timeDimensions) {
1976
+ const [G, a] = o.dimension.split(".");
1929
1977
  if (G === _ && e.dimensions && e.dimensions[a]) {
1930
- const H = e.dimensions[a], u = this.queryBuilder.buildTimeDimensionExpression(H.sql, P.granularity, A);
1978
+ const H = e.dimensions[a], u = this.queryBuilder.buildTimeDimensionExpression(H.sql, o.granularity, A);
1931
1979
  s[a] = L`${u}`.as(a);
1932
1980
  }
1933
1981
  }
@@ -1936,20 +1984,20 @@ class UE {
1936
1984
  let I = A.db.select(s).from(N.from);
1937
1985
  const O = S ? {
1938
1986
  ...S,
1939
- preAggregationCTEs: (M = S.preAggregationCTEs) == null ? void 0 : M.filter((P) => P.cube.name !== e.name)
1987
+ preAggregationCTEs: (M = S.preAggregationCTEs) == null ? void 0 : M.filter((o) => o.cube.name !== e.name)
1940
1988
  } : void 0, C = this.queryBuilder.buildWhereConditions(e, R, A, O), t = [];
1941
1989
  if (R.timeDimensions)
1942
- for (const P of R.timeDimensions) {
1943
- const [G, a] = P.dimension.split(".");
1944
- if (G === _ && e.dimensions && e.dimensions[a] && P.dateRange) {
1945
- const H = e.dimensions[a], u = this.queryBuilder.buildMeasureExpression({ sql: H.sql, type: "number" }, A), B = this.queryBuilder.buildDateRangeCondition(u, P.dateRange);
1990
+ for (const o of R.timeDimensions) {
1991
+ const [G, a] = o.dimension.split(".");
1992
+ if (G === _ && e.dimensions && e.dimensions[a] && o.dateRange) {
1993
+ const H = e.dimensions[a], u = this.queryBuilder.buildMeasureExpression({ sql: H.sql, type: "number" }, A), B = this.queryBuilder.buildDateRangeCondition(u, o.dateRange);
1946
1994
  B && t.push(B);
1947
1995
  }
1948
1996
  }
1949
1997
  if (R.filters) {
1950
- for (const P of R.filters)
1951
- if (!("and" in P) && !("or" in P) && "member" in P && "operator" in P) {
1952
- const G = P, [a, H] = G.member.split(".");
1998
+ for (const o of R.filters)
1999
+ if (!("and" in o) && !("or" in o) && "member" in o && "operator" in o) {
2000
+ const G = o, [a, H] = G.member.split(".");
1953
2001
  if (a === _ && e.dimensions && e.dimensions[H]) {
1954
2002
  const u = e.dimensions[H];
1955
2003
  if (G.operator === "inDateRange") {
@@ -1961,29 +2009,29 @@ class UE {
1961
2009
  }
1962
2010
  const i = [];
1963
2011
  if (N.where && i.push(N.where), i.push(...C, ...t), i.length > 0) {
1964
- const P = i.length === 1 ? i[0] : b(...i);
1965
- I = I.where(P);
2012
+ const o = i.length === 1 ? i[0] : b(...i);
2013
+ I = I.where(o);
1966
2014
  }
1967
- const o = [];
1968
- for (const P of E.joinKeys)
1969
- P.targetColumnObj && o.push(P.targetColumnObj);
2015
+ const P = [];
2016
+ for (const o of E.joinKeys)
2017
+ o.targetColumnObj && P.push(o.targetColumnObj);
1970
2018
  if (R.dimensions)
1971
- for (const P of R.dimensions) {
1972
- const [G, a] = P.split(".");
2019
+ for (const o of R.dimensions) {
2020
+ const [G, a] = o.split(".");
1973
2021
  if (G === _ && e.dimensions && e.dimensions[a]) {
1974
2022
  const H = e.dimensions[a], u = x(H.sql, A);
1975
- o.push(u);
2023
+ P.push(u);
1976
2024
  }
1977
2025
  }
1978
2026
  if (R.timeDimensions)
1979
- for (const P of R.timeDimensions) {
1980
- const [G, a] = P.dimension.split(".");
2027
+ for (const o of R.timeDimensions) {
2028
+ const [G, a] = o.dimension.split(".");
1981
2029
  if (G === _ && e.dimensions && e.dimensions[a]) {
1982
- const H = e.dimensions[a], u = this.queryBuilder.buildTimeDimensionExpression(H.sql, P.granularity, A);
1983
- o.push(u);
2030
+ const H = e.dimensions[a], u = this.queryBuilder.buildTimeDimensionExpression(H.sql, o.granularity, A);
2031
+ P.push(u);
1984
2032
  }
1985
2033
  }
1986
- return o.length > 0 && (I = I.groupBy(...o)), A.db.$with(E.cteAlias).as(I);
2034
+ return P.length > 0 && (I = I.groupBy(...P)), A.db.$with(E.cteAlias).as(I);
1987
2035
  }
1988
2036
  // Removed unused getActualJoinTargetColumn method
1989
2037
  /**
@@ -1997,7 +2045,7 @@ class UE {
1997
2045
  const e = [];
1998
2046
  for (const s of S.joinKeys) {
1999
2047
  const _ = s.sourceColumnObj || L.identifier(s.sourceColumn), I = L`${L.identifier(R)}.${L.identifier(s.targetColumn)}`;
2000
- e.push(qE(_, I));
2048
+ e.push(_E(_, I));
2001
2049
  }
2002
2050
  return e.length === 1 ? e[0] : b(...e);
2003
2051
  }
@@ -2005,7 +2053,7 @@ class UE {
2005
2053
  * Build unified query that works for both single and multi-cube queries
2006
2054
  */
2007
2055
  buildUnifiedQuery(E, R, A) {
2008
- var M, P, G;
2056
+ var M, o, G;
2009
2057
  const S = [], e = /* @__PURE__ */ new Map();
2010
2058
  if (E.preAggregationCTEs && E.preAggregationCTEs.length > 0)
2011
2059
  for (const a of E.preAggregationCTEs) {
@@ -2037,10 +2085,10 @@ class UE {
2037
2085
  K = this.databaseAdapter.buildAvg(g);
2038
2086
  break;
2039
2087
  case "min":
2040
- K = xE(g);
2088
+ K = jE(g);
2041
2089
  break;
2042
2090
  case "max":
2043
- K = wE(g);
2091
+ K = qE(g);
2044
2092
  break;
2045
2093
  case "number":
2046
2094
  K = Q(g);
@@ -2056,12 +2104,12 @@ class UE {
2056
2104
  if (B === H) {
2057
2105
  const V = this.getCubesFromPlan(E).get(H), g = V && ((M = V.dimensions) == null ? void 0 : M[Y]), K = u.startsWith(H + ".");
2058
2106
  if (g || K) {
2059
- let nE = a.joinKeys.find((iE) => iE.targetColumn === Y);
2060
- if (!nE && ((P = V == null ? void 0 : V.dimensions) != null && P[Y])) {
2061
- const iE = V.dimensions[Y].sql;
2062
- nE = a.joinKeys.find((mR) => mR.targetColumnObj === iE);
2107
+ let iE = a.joinKeys.find((DE) => DE.targetColumn === Y);
2108
+ if (!iE && ((o = V == null ? void 0 : V.dimensions) != null && o[Y])) {
2109
+ const DE = V.dimensions[Y].sql;
2110
+ iE = a.joinKeys.find((fR) => fR.targetColumnObj === DE);
2063
2111
  }
2064
- nE ? _[u] = L`${L.identifier(a.cteAlias)}.${L.identifier(Y)}`.as(u) : K && ((G = V == null ? void 0 : V.dimensions) != null && G[Y]) && (_[u] = L`${L.identifier(a.cteAlias)}.${L.identifier(Y)}`.as(u));
2112
+ iE ? _[u] = L`${L.identifier(a.cteAlias)}.${L.identifier(Y)}`.as(u) : K && ((G = V == null ? void 0 : V.dimensions) != null && G[Y]) && (_[u] = L`${L.identifier(a.cteAlias)}.${L.identifier(Y)}`.as(u));
2065
2113
  }
2066
2114
  }
2067
2115
  }
@@ -2147,8 +2195,8 @@ class UE {
2147
2195
  const a = i.length === 1 ? i[0] : b(...i);
2148
2196
  I = I.having(a);
2149
2197
  }
2150
- const o = this.queryBuilder.buildOrderBy(R);
2151
- return o.length > 0 && (I = I.orderBy(...o)), I = this.queryBuilder.applyLimitAndOffset(I, R), I;
2198
+ const P = this.queryBuilder.buildOrderBy(R);
2199
+ return P.length > 0 && (I = I.orderBy(...P)), I = this.queryBuilder.applyLimitAndOffset(I, R), I;
2152
2200
  }
2153
2201
  /**
2154
2202
  * Convert query plan to cube map for QueryBuilder methods
@@ -2239,8 +2287,8 @@ class UE {
2239
2287
  }
2240
2288
  const r = (T) => T.flatMap(RA), RA = (T) => NE(SA(T)).map(AA), AA = (T) => T.replace(/ +/g, " ").trim(), SA = (T) => ({
2241
2289
  type: "mandatory_block",
2242
- items: zE(T, 0)[0]
2243
- }), zE = (T, E, R) => {
2290
+ items: AT(T, 0)[0]
2291
+ }), AT = (T, E, R) => {
2244
2292
  const A = [];
2245
2293
  for (; T[E]; ) {
2246
2294
  const [S, e] = eA(T, E);
@@ -2280,10 +2328,10 @@ const r = (T) => T.flatMap(RA), RA = (T) => NE(SA(T)).map(AA), AA = (T) => T.rep
2280
2328
  return [R, E];
2281
2329
  }
2282
2330
  }, OA = (T, E) => {
2283
- const [R, A] = zE(T, E, "}");
2331
+ const [R, A] = AT(T, E, "}");
2284
2332
  return [{ type: "mandatory_block", items: R }, A];
2285
2333
  }, NA = (T, E) => {
2286
- const [R, A] = zE(T, E, "]");
2334
+ const [R, A] = AT(T, E, "]");
2287
2335
  return [{ type: "optional_block", items: R }, A];
2288
2336
  }, NE = (T) => {
2289
2337
  if (typeof T == "string")
@@ -2306,19 +2354,19 @@ var D;
2306
2354
  (function(T) {
2307
2355
  T.QUOTED_IDENTIFIER = "QUOTED_IDENTIFIER", T.IDENTIFIER = "IDENTIFIER", T.STRING = "STRING", T.VARIABLE = "VARIABLE", T.RESERVED_DATA_TYPE = "RESERVED_DATA_TYPE", T.RESERVED_PARAMETERIZED_DATA_TYPE = "RESERVED_PARAMETERIZED_DATA_TYPE", T.RESERVED_KEYWORD = "RESERVED_KEYWORD", T.RESERVED_FUNCTION_NAME = "RESERVED_FUNCTION_NAME", T.RESERVED_PHRASE = "RESERVED_PHRASE", T.RESERVED_SET_OPERATION = "RESERVED_SET_OPERATION", T.RESERVED_CLAUSE = "RESERVED_CLAUSE", T.RESERVED_SELECT = "RESERVED_SELECT", T.RESERVED_JOIN = "RESERVED_JOIN", T.ARRAY_IDENTIFIER = "ARRAY_IDENTIFIER", T.ARRAY_KEYWORD = "ARRAY_KEYWORD", T.CASE = "CASE", T.END = "END", T.WHEN = "WHEN", T.ELSE = "ELSE", T.THEN = "THEN", T.LIMIT = "LIMIT", T.BETWEEN = "BETWEEN", T.AND = "AND", T.OR = "OR", T.XOR = "XOR", T.OPERATOR = "OPERATOR", T.COMMA = "COMMA", T.ASTERISK = "ASTERISK", T.PROPERTY_ACCESS_OPERATOR = "PROPERTY_ACCESS_OPERATOR", T.OPEN_PAREN = "OPEN_PAREN", T.CLOSE_PAREN = "CLOSE_PAREN", T.LINE_COMMENT = "LINE_COMMENT", T.BLOCK_COMMENT = "BLOCK_COMMENT", T.DISABLE_COMMENT = "DISABLE_COMMENT", T.NUMBER = "NUMBER", T.NAMED_PARAMETER = "NAMED_PARAMETER", T.QUOTED_PARAMETER = "QUOTED_PARAMETER", T.NUMBERED_PARAMETER = "NUMBERED_PARAMETER", T.POSITIONAL_PARAMETER = "POSITIONAL_PARAMETER", T.CUSTOM_PARAMETER = "CUSTOM_PARAMETER", T.DELIMITER = "DELIMITER", T.EOF = "EOF";
2308
2356
  })(D = D || (D = {}));
2309
- const _R = (T) => ({
2357
+ const aR = (T) => ({
2310
2358
  type: D.EOF,
2311
2359
  raw: "«EOF»",
2312
2360
  text: "«EOF»",
2313
2361
  start: T
2314
- }), z = _R(1 / 0), j = (T) => (E) => E.type === T.type && E.text === T.text, Z = {
2315
- ARRAY: j({ text: "ARRAY", type: D.RESERVED_DATA_TYPE }),
2316
- BY: j({ text: "BY", type: D.RESERVED_KEYWORD }),
2317
- SET: j({ text: "SET", type: D.RESERVED_CLAUSE }),
2318
- STRUCT: j({ text: "STRUCT", type: D.RESERVED_DATA_TYPE }),
2319
- WINDOW: j({ text: "WINDOW", type: D.RESERVED_CLAUSE }),
2320
- VALUES: j({ text: "VALUES", type: D.RESERVED_CLAUSE })
2321
- }, rR = (T) => T === D.RESERVED_DATA_TYPE || T === D.RESERVED_KEYWORD || T === D.RESERVED_FUNCTION_NAME || T === D.RESERVED_PHRASE || T === D.RESERVED_CLAUSE || T === D.RESERVED_SELECT || T === D.RESERVED_SET_OPERATION || T === D.RESERVED_JOIN || T === D.ARRAY_KEYWORD || T === D.CASE || T === D.END || T === D.WHEN || T === D.ELSE || T === D.THEN || T === D.LIMIT || T === D.BETWEEN || T === D.AND || T === D.OR || T === D.XOR, sA = (T) => T === D.AND || T === D.OR || T === D.XOR, CA = [
2362
+ }), TE = aR(1 / 0), z = (T) => (E) => E.type === T.type && E.text === T.text, Z = {
2363
+ ARRAY: z({ text: "ARRAY", type: D.RESERVED_DATA_TYPE }),
2364
+ BY: z({ text: "BY", type: D.RESERVED_KEYWORD }),
2365
+ SET: z({ text: "SET", type: D.RESERVED_CLAUSE }),
2366
+ STRUCT: z({ text: "STRUCT", type: D.RESERVED_DATA_TYPE }),
2367
+ WINDOW: z({ text: "WINDOW", type: D.RESERVED_CLAUSE }),
2368
+ VALUES: z({ text: "VALUES", type: D.RESERVED_CLAUSE })
2369
+ }, oR = (T) => T === D.RESERVED_DATA_TYPE || T === D.RESERVED_KEYWORD || T === D.RESERVED_FUNCTION_NAME || T === D.RESERVED_PHRASE || T === D.RESERVED_CLAUSE || T === D.RESERVED_SELECT || T === D.RESERVED_SET_OPERATION || T === D.RESERVED_JOIN || T === D.ARRAY_KEYWORD || T === D.CASE || T === D.END || T === D.WHEN || T === D.ELSE || T === D.THEN || T === D.LIMIT || T === D.BETWEEN || T === D.AND || T === D.OR || T === D.XOR, sA = (T) => T === D.AND || T === D.OR || T === D.XOR, CA = [
2322
2370
  // https://cloud.google.com/bigquery/docs/reference/standard-sql/aead_encryption_functions
2323
2371
  "KEYS.NEW_KEYSET",
2324
2372
  "KEYS.ADD_KEY_FROM_RAW_BYTES",
@@ -3024,9 +3072,9 @@ const _R = (T) => ({
3024
3072
  "WITH CONNECTION",
3025
3073
  "WITH PARTITION COLUMNS",
3026
3074
  "REMOTE WITH CONNECTION"
3027
- ]), LT = r([
3075
+ ]), DT = r([
3028
3076
  "CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"
3029
- ]), GE = r([
3077
+ ]), BE = r([
3030
3078
  // - create:
3031
3079
  // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
3032
3080
  "CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]",
@@ -3133,11 +3181,11 @@ const _R = (T) => ({
3133
3181
  "{ROWS | RANGE} BETWEEN",
3134
3182
  // comparison operator
3135
3183
  "IS [NOT] DISTINCT FROM"
3136
- ]), PA = {
3184
+ ]), oA = {
3137
3185
  name: "bigquery",
3138
3186
  tokenizerOptions: {
3139
3187
  reservedSelect: rA,
3140
- reservedClauses: [...nA, ...GE, ...LT],
3188
+ reservedClauses: [...nA, ...BE, ...DT],
3141
3189
  reservedSetOperations: iA,
3142
3190
  reservedJoins: DA,
3143
3191
  reservedPhrases: aA,
@@ -3161,18 +3209,18 @@ const _R = (T) => ({
3161
3209
  variableTypes: [{ regex: String.raw`@@\w+` }],
3162
3210
  lineCommentTypes: ["--", "#"],
3163
3211
  operators: ["&", "|", "^", "~", ">>", "<<", "||", "=>"],
3164
- postProcess: oA
3212
+ postProcess: PA
3165
3213
  },
3166
3214
  formatOptions: {
3167
- onelineClauses: [...LT, ...GE],
3168
- tabularOnelineClauses: GE
3215
+ onelineClauses: [...DT, ...BE],
3216
+ tabularOnelineClauses: BE
3169
3217
  }
3170
3218
  };
3171
- function oA(T) {
3219
+ function PA(T) {
3172
3220
  return MA(UA(T));
3173
3221
  }
3174
3222
  function MA(T) {
3175
- let E = z;
3223
+ let E = TE;
3176
3224
  return T.map((R) => R.text === "OFFSET" && E.text === "[" ? (E = R, Object.assign(Object.assign({}, R), { type: D.RESERVED_FUNCTION_NAME })) : (E = R, R));
3177
3225
  }
3178
3226
  function UA(T) {
@@ -3184,8 +3232,8 @@ function UA(T) {
3184
3232
  const e = GA(T, A + 1), N = T.slice(A, e + 1);
3185
3233
  R.push({
3186
3234
  type: D.IDENTIFIER,
3187
- raw: N.map(_T("raw")).join(""),
3188
- text: N.map(_T("text")).join(""),
3235
+ raw: N.map(aT("raw")).join(""),
3236
+ text: N.map(aT("text")).join(""),
3189
3237
  start: S.start
3190
3238
  }), A = e;
3191
3239
  } else
@@ -3193,7 +3241,7 @@ function UA(T) {
3193
3241
  }
3194
3242
  return R;
3195
3243
  }
3196
- const _T = (T) => (E) => E.type === D.IDENTIFIER || E.type === D.COMMA ? E[T] + " " : E[T];
3244
+ const aT = (T) => (E) => E.type === D.IDENTIFIER || E.type === D.COMMA ? E[T] + " " : E[T];
3197
3245
  function GA(T, E) {
3198
3246
  let R = 0;
3199
3247
  for (let A = E; A < T.length; A++) {
@@ -3995,9 +4043,9 @@ const lA = [
3995
4043
  "WHEN [NOT] MATCHED [THEN]",
3996
4044
  "UPDATE SET",
3997
4045
  "INSERT"
3998
- ]), rT = r([
4046
+ ]), oT = r([
3999
4047
  "CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"
4000
- ]), lE = r([
4048
+ ]), mE = r([
4001
4049
  // - create:
4002
4050
  "CREATE [OR REPLACE] VIEW",
4003
4051
  // - update:
@@ -4213,7 +4261,7 @@ const lA = [
4213
4261
  name: "db2",
4214
4262
  tokenizerOptions: {
4215
4263
  reservedSelect: HA,
4216
- reservedClauses: [...BA, ...rT, ...lE],
4264
+ reservedClauses: [...BA, ...oT, ...mE],
4217
4265
  reservedSetOperations: mA,
4218
4266
  reservedJoins: FA,
4219
4267
  reservedPhrases: YA,
@@ -4250,8 +4298,8 @@ const lA = [
4250
4298
  ]
4251
4299
  },
4252
4300
  formatOptions: {
4253
- onelineClauses: [...rT, ...lE],
4254
- tabularOnelineClauses: lE
4301
+ onelineClauses: [...oT, ...mE],
4302
+ tabularOnelineClauses: mE
4255
4303
  }
4256
4304
  }, dA = [
4257
4305
  // https://www.ibm.com/docs/en/i/7.5?topic=functions-aggregate
@@ -5149,7 +5197,7 @@ const lA = [
5149
5197
  "INSERT",
5150
5198
  // Data definition - table
5151
5199
  "FOR SYSTEM NAME"
5152
- ]), nT = r(["CREATE [OR REPLACE] TABLE"]), cE = r([
5200
+ ]), PT = r(["CREATE [OR REPLACE] TABLE"]), FE = r([
5153
5201
  // - create:
5154
5202
  "CREATE [OR REPLACE] [RECURSIVE] VIEW",
5155
5203
  // - update:
@@ -5259,7 +5307,7 @@ const lA = [
5259
5307
  name: "db2i",
5260
5308
  tokenizerOptions: {
5261
5309
  reservedSelect: VA,
5262
- reservedClauses: [...WA, ...nT, ...cE],
5310
+ reservedClauses: [...WA, ...PT, ...FE],
5263
5311
  reservedSetOperations: XA,
5264
5312
  reservedJoins: bA,
5265
5313
  reservedPhrases: yA,
@@ -5279,8 +5327,8 @@ const lA = [
5279
5327
  operators: ["**", "¬=", "¬>", "¬<", "!>", "!<", "||", "=>"]
5280
5328
  },
5281
5329
  formatOptions: {
5282
- onelineClauses: [...nT, ...cE],
5283
- tabularOnelineClauses: cE
5330
+ onelineClauses: [...PT, ...FE],
5331
+ tabularOnelineClauses: FE
5284
5332
  }
5285
5333
  }, $A = [
5286
5334
  // Functions from DuckDB (excluding those that start with an underscore):
@@ -6131,9 +6179,9 @@ const lA = [
6131
6179
  "SET",
6132
6180
  // other:
6133
6181
  "RETURNING"
6134
- ]), iT = r([
6182
+ ]), MT = r([
6135
6183
  "CREATE [OR REPLACE] [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"
6136
- ]), uE = r([
6184
+ ]), YE = r([
6137
6185
  // TABLE
6138
6186
  // - update:
6139
6187
  "UPDATE",
@@ -6233,7 +6281,7 @@ const lA = [
6233
6281
  name: "duckdb",
6234
6282
  tokenizerOptions: {
6235
6283
  reservedSelect: wA,
6236
- reservedClauses: [...xA, ...iT, ...uE],
6284
+ reservedClauses: [...xA, ...MT, ...YE],
6237
6285
  reservedSetOperations: vA,
6238
6286
  reservedJoins: QA,
6239
6287
  reservedPhrases: ZA,
@@ -6300,8 +6348,8 @@ const lA = [
6300
6348
  },
6301
6349
  formatOptions: {
6302
6350
  alwaysDenseOperators: ["::"],
6303
- onelineClauses: [...iT, ...uE],
6304
- tabularOnelineClauses: uE
6351
+ onelineClauses: [...MT, ...YE],
6352
+ tabularOnelineClauses: YE
6305
6353
  }
6306
6354
  }, jA = [
6307
6355
  // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
@@ -6881,9 +6929,9 @@ const lA = [
6881
6929
  // https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Loadingfilesintotables
6882
6930
  "LOAD DATA [LOCAL] INPATH",
6883
6931
  "[OVERWRITE] INTO TABLE"
6884
- ]), DT = r([
6932
+ ]), UT = r([
6885
6933
  "CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"
6886
- ]), HE = r([
6934
+ ]), pE = r([
6887
6935
  // - create:
6888
6936
  "CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]",
6889
6937
  // - update:
@@ -6918,7 +6966,7 @@ const lA = [
6918
6966
  name: "hive",
6919
6967
  tokenizerOptions: {
6920
6968
  reservedSelect: ES,
6921
- reservedClauses: [...TS, ...DT, ...HE],
6969
+ reservedClauses: [...TS, ...UT, ...pE],
6922
6970
  reservedSetOperations: RS,
6923
6971
  reservedJoins: AS,
6924
6972
  reservedPhrases: SS,
@@ -6932,16 +6980,16 @@ const lA = [
6932
6980
  operators: ["%", "~", "^", "|", "&", "<=>", "==", "!", "||"]
6933
6981
  },
6934
6982
  formatOptions: {
6935
- onelineClauses: [...DT, ...HE],
6936
- tabularOnelineClauses: HE
6983
+ onelineClauses: [...UT, ...pE],
6984
+ tabularOnelineClauses: pE
6937
6985
  }
6938
6986
  };
6939
- function rE(T) {
6987
+ function nE(T) {
6940
6988
  return T.map((E, R) => {
6941
- const A = T[R + 1] || z;
6989
+ const A = T[R + 1] || TE;
6942
6990
  if (Z.SET(E) && A.text === "(")
6943
6991
  return Object.assign(Object.assign({}, E), { type: D.RESERVED_FUNCTION_NAME });
6944
- const S = T[R - 1] || z;
6992
+ const S = T[R - 1] || TE;
6945
6993
  return Z.VALUES(E) && S.text === "=" ? Object.assign(Object.assign({}, E), { type: D.RESERVED_FUNCTION_NAME }) : E;
6946
6994
  });
6947
6995
  }
@@ -7473,9 +7521,9 @@ const IS = [
7473
7521
  "SET",
7474
7522
  // other
7475
7523
  "RETURNING"
7476
- ]), aT = r([
7524
+ ]), GT = r([
7477
7525
  "CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"
7478
- ]), BE = r([
7526
+ ]), dE = r([
7479
7527
  // - create:
7480
7528
  "CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]",
7481
7529
  // - update:
@@ -7704,7 +7752,7 @@ const IS = [
7704
7752
  name: "mariadb",
7705
7753
  tokenizerOptions: {
7706
7754
  reservedSelect: tS,
7707
- reservedClauses: [...sS, ...aT, ...BE],
7755
+ reservedClauses: [...sS, ...GT, ...dE],
7708
7756
  reservedSetOperations: CS,
7709
7757
  reservedJoins: LS,
7710
7758
  reservedPhrases: _S,
@@ -7744,11 +7792,11 @@ const IS = [
7744
7792
  "*.*"
7745
7793
  // Not actually an operator
7746
7794
  ],
7747
- postProcess: rE
7795
+ postProcess: nE
7748
7796
  },
7749
7797
  formatOptions: {
7750
- onelineClauses: [...aT, ...BE],
7751
- tabularOnelineClauses: BE
7798
+ onelineClauses: [...GT, ...dE],
7799
+ tabularOnelineClauses: dE
7752
7800
  }
7753
7801
  }, nS = [
7754
7802
  // https://dev.mysql.com/doc/refman/8.0/en/keywords.html
@@ -8456,7 +8504,7 @@ const IS = [
8456
8504
  // 'XOR',
8457
8505
  "YEAR",
8458
8506
  "YEARWEEK"
8459
- ], aS = r(["SELECT [ALL | DISTINCT | DISTINCTROW]"]), PS = r([
8507
+ ], aS = r(["SELECT [ALL | DISTINCT | DISTINCTROW]"]), oS = r([
8460
8508
  // queries
8461
8509
  "WITH [RECURSIVE]",
8462
8510
  "FROM",
@@ -8476,7 +8524,7 @@ const IS = [
8476
8524
  "ON DUPLICATE KEY UPDATE",
8477
8525
  // - update:
8478
8526
  "SET"
8479
- ]), PT = r(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), mE = r([
8527
+ ]), lT = r(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), fE = r([
8480
8528
  // - create:
8481
8529
  "CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]",
8482
8530
  // - update:
@@ -8657,7 +8705,7 @@ const IS = [
8657
8705
  "REPEAT",
8658
8706
  "RETURN",
8659
8707
  "WHILE"
8660
- ]), oS = r(["UNION [ALL | DISTINCT]"]), MS = r([
8708
+ ]), PS = r(["UNION [ALL | DISTINCT]"]), MS = r([
8661
8709
  "JOIN",
8662
8710
  "{LEFT | RIGHT} [OUTER] JOIN",
8663
8711
  "{INNER | CROSS} JOIN",
@@ -8674,8 +8722,8 @@ const IS = [
8674
8722
  name: "mysql",
8675
8723
  tokenizerOptions: {
8676
8724
  reservedSelect: aS,
8677
- reservedClauses: [...PS, ...PT, ...mE],
8678
- reservedSetOperations: oS,
8725
+ reservedClauses: [...oS, ...lT, ...fE],
8726
+ reservedSetOperations: PS,
8679
8727
  reservedJoins: MS,
8680
8728
  reservedPhrases: US,
8681
8729
  supportsXor: !0,
@@ -8716,11 +8764,11 @@ const IS = [
8716
8764
  "*.*"
8717
8765
  // Not actually an operator
8718
8766
  ],
8719
- postProcess: rE
8767
+ postProcess: nE
8720
8768
  },
8721
8769
  formatOptions: {
8722
- onelineClauses: [...PT, ...mE],
8723
- tabularOnelineClauses: mE
8770
+ onelineClauses: [...lT, ...fE],
8771
+ tabularOnelineClauses: fE
8724
8772
  }
8725
8773
  }, lS = [
8726
8774
  // https://docs.pingcap.com/tidb/stable/keywords
@@ -9307,7 +9355,7 @@ const IS = [
9307
9355
  "ON DUPLICATE KEY UPDATE",
9308
9356
  // - update:
9309
9357
  "SET"
9310
- ]), oT = r(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), FE = r([
9358
+ ]), cT = r(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]), hE = r([
9311
9359
  // https://docs.pingcap.com/tidb/stable/sql-statement-create-view
9312
9360
  "CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]",
9313
9361
  // https://docs.pingcap.com/tidb/stable/sql-statement-update
@@ -9439,7 +9487,7 @@ const IS = [
9439
9487
  name: "tidb",
9440
9488
  tokenizerOptions: {
9441
9489
  reservedSelect: HS,
9442
- reservedClauses: [...BS, ...oT, ...FE],
9490
+ reservedClauses: [...BS, ...cT, ...hE],
9443
9491
  reservedSetOperations: mS,
9444
9492
  reservedJoins: FS,
9445
9493
  reservedPhrases: YS,
@@ -9481,11 +9529,11 @@ const IS = [
9481
9529
  "*.*"
9482
9530
  // Not actually an operator
9483
9531
  ],
9484
- postProcess: rE
9532
+ postProcess: nE
9485
9533
  },
9486
9534
  formatOptions: {
9487
- onelineClauses: [...oT, ...FE],
9488
- tabularOnelineClauses: FE
9535
+ onelineClauses: [...cT, ...hE],
9536
+ tabularOnelineClauses: hE
9489
9537
  }
9490
9538
  }, dS = [
9491
9539
  // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/functions.html
@@ -9959,7 +10007,7 @@ const IS = [
9959
10007
  "NEST",
9960
10008
  "UNNEST",
9961
10009
  "RETURNING"
9962
- ]), MT = r([
10010
+ ]), uT = r([
9963
10011
  // - update:
9964
10012
  "UPDATE",
9965
10013
  // - delete:
@@ -10003,7 +10051,7 @@ const IS = [
10003
10051
  name: "n1ql",
10004
10052
  tokenizerOptions: {
10005
10053
  reservedSelect: VS,
10006
- reservedClauses: [...WS, ...MT],
10054
+ reservedClauses: [...WS, ...uT],
10007
10055
  reservedSetOperations: XS,
10008
10056
  reservedJoins: bS,
10009
10057
  reservedPhrases: yS,
@@ -10022,7 +10070,7 @@ const IS = [
10022
10070
  operators: ["%", "==", ":", "||"]
10023
10071
  },
10024
10072
  formatOptions: {
10025
- onelineClauses: MT
10073
+ onelineClauses: uT
10026
10074
  }
10027
10075
  }, $S = [
10028
10076
  // https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/reservewords.htm
@@ -10656,9 +10704,9 @@ const IS = [
10656
10704
  "UPDATE SET",
10657
10705
  // other
10658
10706
  "RETURNING"
10659
- ]), UT = r([
10707
+ ]), HT = r([
10660
10708
  "CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"
10661
- ]), YE = r([
10709
+ ]), VE = r([
10662
10710
  // - create:
10663
10711
  "CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW",
10664
10712
  "CREATE MATERIALIZED VIEW",
@@ -10702,7 +10750,7 @@ const IS = [
10702
10750
  name: "plsql",
10703
10751
  tokenizerOptions: {
10704
10752
  reservedSelect: wS,
10705
- reservedClauses: [...xS, ...UT, ...YE],
10753
+ reservedClauses: [...xS, ...HT, ...VE],
10706
10754
  reservedSetOperations: vS,
10707
10755
  reservedJoins: QS,
10708
10756
  reservedPhrases: ZS,
@@ -10738,13 +10786,13 @@ const IS = [
10738
10786
  },
10739
10787
  formatOptions: {
10740
10788
  alwaysDenseOperators: ["@"],
10741
- onelineClauses: [...UT, ...YE],
10742
- tabularOnelineClauses: YE
10789
+ onelineClauses: [...HT, ...VE],
10790
+ tabularOnelineClauses: VE
10743
10791
  }
10744
10792
  };
10745
10793
  function jS(T) {
10746
- let E = z;
10747
- return T.map((R) => Z.SET(R) && Z.BY(E) ? Object.assign(Object.assign({}, R), { type: D.RESERVED_KEYWORD }) : (rR(R.type) && (E = R), R));
10794
+ let E = TE;
10795
+ return T.map((R) => Z.SET(R) && Z.BY(E) ? Object.assign(Object.assign({}, R), { type: D.RESERVED_KEYWORD }) : (oR(R.type) && (E = R), R));
10748
10796
  }
10749
10797
  const kS = [
10750
10798
  // https://www.postgresql.org/docs/14/functions.html
@@ -11606,9 +11654,9 @@ const kS = [
11606
11654
  "SET",
11607
11655
  // other
11608
11656
  "RETURNING"
11609
- ]), GT = r([
11657
+ ]), BT = r([
11610
11658
  "CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"
11611
- ]), pE = r([
11659
+ ]), WE = r([
11612
11660
  // - create
11613
11661
  "CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW",
11614
11662
  "CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]",
@@ -11833,7 +11881,7 @@ const kS = [
11833
11881
  name: "postgresql",
11834
11882
  tokenizerOptions: {
11835
11883
  reservedSelect: Te,
11836
- reservedClauses: [...Re, ...GT, ...pE],
11884
+ reservedClauses: [...Re, ...BT, ...WE],
11837
11885
  reservedSetOperations: Ae,
11838
11886
  reservedJoins: Se,
11839
11887
  reservedPhrases: ee,
@@ -11950,8 +11998,8 @@ const kS = [
11950
11998
  },
11951
11999
  formatOptions: {
11952
12000
  alwaysDenseOperators: ["::", ":"],
11953
- onelineClauses: [...GT, ...pE],
11954
- tabularOnelineClauses: pE
12001
+ onelineClauses: [...BT, ...WE],
12002
+ tabularOnelineClauses: WE
11955
12003
  }
11956
12004
  }, Oe = [
11957
12005
  // https://docs.aws.amazon.com/redshift/latest/dg/c_Aggregate_Functions.html
@@ -12527,9 +12575,9 @@ const kS = [
12527
12575
  "VALUES",
12528
12576
  // - update:
12529
12577
  "SET"
12530
- ]), lT = r([
12578
+ ]), mT = r([
12531
12579
  "CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"
12532
- ]), dE = r([
12580
+ ]), XE = r([
12533
12581
  // - create:
12534
12582
  "CREATE [OR REPLACE | MATERIALIZED] VIEW",
12535
12583
  // - update:
@@ -12638,7 +12686,7 @@ const kS = [
12638
12686
  name: "redshift",
12639
12687
  tokenizerOptions: {
12640
12688
  reservedSelect: se,
12641
- reservedClauses: [...Ce, ...lT, ...dE],
12689
+ reservedClauses: [...Ce, ...mT, ...XE],
12642
12690
  reservedSetOperations: Le,
12643
12691
  reservedJoins: _e,
12644
12692
  reservedPhrases: re,
@@ -12667,8 +12715,8 @@ const kS = [
12667
12715
  },
12668
12716
  formatOptions: {
12669
12717
  alwaysDenseOperators: ["::"],
12670
- onelineClauses: [...lT, ...dE],
12671
- tabularOnelineClauses: dE
12718
+ onelineClauses: [...mT, ...XE],
12719
+ tabularOnelineClauses: XE
12672
12720
  }
12673
12721
  }, ie = [
12674
12722
  // https://deepkb.com/CO_000013/en/kb/IMPORT-fbfa59f0-2bf1-31fe-bb7b-0f9efe9932c6/spark-sql-keywords
@@ -13288,7 +13336,7 @@ const kS = [
13288
13336
  // Shorthand functions to use in place of CASE expression
13289
13337
  "COALESCE",
13290
13338
  "NULLIF"
13291
- ], Pe = r(["SELECT [ALL | DISTINCT]"]), oe = r([
13339
+ ], oe = r(["SELECT [ALL | DISTINCT]"]), Pe = r([
13292
13340
  // queries
13293
13341
  "WITH",
13294
13342
  "FROM",
@@ -13313,7 +13361,7 @@ const kS = [
13313
13361
  // https://spark.apache.org/docs/latest/sql-ref-syntax-dml-load.html
13314
13362
  "LOAD DATA [LOCAL] INPATH",
13315
13363
  "[OVERWRITE] INTO TABLE"
13316
- ]), cT = r(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]), fE = r([
13364
+ ]), FT = r(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]), bE = r([
13317
13365
  // - create:
13318
13366
  "CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]",
13319
13367
  // - drop table:
@@ -13390,8 +13438,8 @@ const kS = [
13390
13438
  ]), le = {
13391
13439
  name: "spark",
13392
13440
  tokenizerOptions: {
13393
- reservedSelect: Pe,
13394
- reservedClauses: [...oe, ...cT, ...fE],
13441
+ reservedSelect: oe,
13442
+ reservedClauses: [...Pe, ...FT, ...bE],
13395
13443
  reservedSetOperations: Me,
13396
13444
  reservedJoins: Ue,
13397
13445
  reservedPhrases: Ge,
@@ -13413,13 +13461,13 @@ const kS = [
13413
13461
  postProcess: ce
13414
13462
  },
13415
13463
  formatOptions: {
13416
- onelineClauses: [...cT, ...fE],
13417
- tabularOnelineClauses: fE
13464
+ onelineClauses: [...FT, ...bE],
13465
+ tabularOnelineClauses: bE
13418
13466
  }
13419
13467
  };
13420
13468
  function ce(T) {
13421
13469
  return T.map((E, R) => {
13422
- const A = T[R - 1] || z, S = T[R + 1] || z;
13470
+ const A = T[R - 1] || TE, S = T[R + 1] || TE;
13423
13471
  return Z.WINDOW(E) && S.type === D.OPEN_PAREN ? Object.assign(Object.assign({}, E), { type: D.RESERVED_FUNCTION_NAME }) : E.text === "ITEMS" && E.type === D.RESERVED_KEYWORD && !(A.text === "COLLECTION" && S.text === "TERMINATED") ? Object.assign(Object.assign({}, E), { type: D.IDENTIFIER, text: E.raw }) : E;
13424
13472
  });
13425
13473
  }
@@ -13740,7 +13788,7 @@ const ue = [
13740
13788
  "VALUES",
13741
13789
  // - update:
13742
13790
  "SET"
13743
- ]), uT = r(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]), hE = r([
13791
+ ]), YT = r(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]), yE = r([
13744
13792
  // - create:
13745
13793
  "CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]",
13746
13794
  // - update:
@@ -13773,7 +13821,7 @@ const ue = [
13773
13821
  name: "sqlite",
13774
13822
  tokenizerOptions: {
13775
13823
  reservedSelect: me,
13776
- reservedClauses: [...Fe, ...uT, ...hE],
13824
+ reservedClauses: [...Fe, ...YT, ...yE],
13777
13825
  reservedSetOperations: Ye,
13778
13826
  reservedJoins: pe,
13779
13827
  reservedPhrases: de,
@@ -13792,8 +13840,8 @@ const ue = [
13792
13840
  operators: ["%", "~", "&", "|", "<<", ">>", "==", "->", "->>", "||"]
13793
13841
  },
13794
13842
  formatOptions: {
13795
- onelineClauses: [...uT, ...hE],
13796
- tabularOnelineClauses: hE
13843
+ onelineClauses: [...YT, ...yE],
13844
+ tabularOnelineClauses: yE
13797
13845
  }
13798
13846
  }, he = [
13799
13847
  // https://jakewheat.github.io/sql-overview/sql-2008-foundation-grammar.html#_6_9_set_function_specification
@@ -14149,7 +14197,7 @@ const ue = [
14149
14197
  "VALUES",
14150
14198
  // - update:
14151
14199
  "SET"
14152
- ]), HT = r(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]), VE = r([
14200
+ ]), pT = r(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]), KE = r([
14153
14201
  // - create:
14154
14202
  "CREATE [RECURSIVE] VIEW",
14155
14203
  // - update:
@@ -14191,7 +14239,7 @@ const ue = [
14191
14239
  name: "sql",
14192
14240
  tokenizerOptions: {
14193
14241
  reservedSelect: Xe,
14194
- reservedClauses: [...be, ...HT, ...VE],
14242
+ reservedClauses: [...be, ...pT, ...KE],
14195
14243
  reservedSetOperations: ye,
14196
14244
  reservedJoins: Ke,
14197
14245
  reservedPhrases: $e,
@@ -14207,8 +14255,8 @@ const ue = [
14207
14255
  operators: ["||"]
14208
14256
  },
14209
14257
  formatOptions: {
14210
- onelineClauses: [...HT, ...VE],
14211
- tabularOnelineClauses: VE
14258
+ onelineClauses: [...pT, ...KE],
14259
+ tabularOnelineClauses: KE
14212
14260
  }
14213
14261
  }, Je = [
14214
14262
  // https://github.com/trinodb/trino/tree/432d2897bdef99388c1a47188743a061c4ac1f34/docs/src/main/sphinx/functions
@@ -14948,7 +14996,7 @@ const ue = [
14948
14996
  "PATTERN",
14949
14997
  "SUBSET",
14950
14998
  "DEFINE"
14951
- ]), BT = r(["CREATE TABLE [IF NOT EXISTS]"]), WE = r([
14999
+ ]), dT = r(["CREATE TABLE [IF NOT EXISTS]"]), $E = r([
14952
15000
  // - create:
14953
15001
  "CREATE [OR REPLACE] [MATERIALIZED] VIEW",
14954
15002
  // - update:
@@ -15024,7 +15072,7 @@ const ue = [
15024
15072
  name: "trino",
15025
15073
  tokenizerOptions: {
15026
15074
  reservedSelect: ve,
15027
- reservedClauses: [...Qe, ...BT, ...WE],
15075
+ reservedClauses: [...Qe, ...dT, ...$E],
15028
15076
  reservedSetOperations: Ze,
15029
15077
  reservedJoins: qe,
15030
15078
  reservedPhrases: je,
@@ -15059,8 +15107,8 @@ const ue = [
15059
15107
  ]
15060
15108
  },
15061
15109
  formatOptions: {
15062
- onelineClauses: [...BT, ...WE],
15063
- tabularOnelineClauses: WE
15110
+ onelineClauses: [...dT, ...$E],
15111
+ tabularOnelineClauses: $E
15064
15112
  }
15065
15113
  }, ze = [
15066
15114
  // https://docs.microsoft.com/en-us/sql/t-sql/functions/functions?view=sql-server-ver15
@@ -15602,7 +15650,7 @@ const ue = [
15602
15650
  "UPDATE SET",
15603
15651
  // Data definition
15604
15652
  "CREATE [OR ALTER] {PROC | PROCEDURE}"
15605
- ]), mT = r(["CREATE TABLE"]), XE = r([
15653
+ ]), fT = r(["CREATE TABLE"]), gE = r([
15606
15654
  // - create:
15607
15655
  "CREATE [OR ALTER] [MATERIALIZED] VIEW",
15608
15656
  // - update:
@@ -15795,7 +15843,7 @@ const ue = [
15795
15843
  name: "transactsql",
15796
15844
  tokenizerOptions: {
15797
15845
  reservedSelect: RI,
15798
- reservedClauses: [...AI, ...mT, ...XE],
15846
+ reservedClauses: [...AI, ...fT, ...gE],
15799
15847
  reservedSetOperations: SI,
15800
15848
  reservedJoins: eI,
15801
15849
  reservedPhrases: II,
@@ -15831,8 +15879,8 @@ const ue = [
15831
15879
  },
15832
15880
  formatOptions: {
15833
15881
  alwaysDenseOperators: ["::"],
15834
- onelineClauses: [...mT, ...XE],
15835
- tabularOnelineClauses: XE
15882
+ onelineClauses: [...fT, ...gE],
15883
+ tabularOnelineClauses: gE
15836
15884
  }
15837
15885
  }, NI = [
15838
15886
  // List of all keywords taken from:
@@ -16398,9 +16446,9 @@ const ue = [
16398
16446
  // Data definition
16399
16447
  "CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]",
16400
16448
  "CREATE [OR REPLACE] [EXTERNAL] FUNCTION"
16401
- ]), FT = r([
16449
+ ]), hT = r([
16402
16450
  "CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"
16403
- ]), bE = r([
16451
+ ]), JE = r([
16404
16452
  // - create:
16405
16453
  "CREATE VIEW",
16406
16454
  // - update:
@@ -16599,7 +16647,7 @@ const ue = [
16599
16647
  name: "singlestoredb",
16600
16648
  tokenizerOptions: {
16601
16649
  reservedSelect: CI,
16602
- reservedClauses: [...LI, ...FT, ...bE],
16650
+ reservedClauses: [...LI, ...hT, ...JE],
16603
16651
  reservedSetOperations: _I,
16604
16652
  reservedJoins: rI,
16605
16653
  reservedPhrases: nI,
@@ -16638,12 +16686,12 @@ const ue = [
16638
16686
  "*.*"
16639
16687
  // Not actually an operator
16640
16688
  ],
16641
- postProcess: rE
16689
+ postProcess: nE
16642
16690
  },
16643
16691
  formatOptions: {
16644
16692
  alwaysDenseOperators: ["::", "::$", "::%"],
16645
- onelineClauses: [...FT, ...bE],
16646
- tabularOnelineClauses: bE
16693
+ onelineClauses: [...hT, ...JE],
16694
+ tabularOnelineClauses: JE
16647
16695
  }
16648
16696
  }, DI = [
16649
16697
  // https://docs.snowflake.com/en/sql-reference-functions.html
@@ -17349,7 +17397,7 @@ const ue = [
17349
17397
  "WITH",
17350
17398
  // These are definitely keywords, but haven't found a definite list in the docs
17351
17399
  "COMMENT"
17352
- ], PI = [
17400
+ ], oI = [
17353
17401
  "NUMBER",
17354
17402
  "DECIMAL",
17355
17403
  "NUMERIC",
@@ -17386,7 +17434,7 @@ const ue = [
17386
17434
  "ARRAY",
17387
17435
  "GEOGRAPHY",
17388
17436
  "GEOMETRY"
17389
- ], oI = r(["SELECT [ALL | DISTINCT]"]), MI = r([
17437
+ ], PI = r(["SELECT [ALL | DISTINCT]"]), MI = r([
17390
17438
  // queries
17391
17439
  "WITH [RECURSIVE]",
17392
17440
  "FROM",
@@ -17414,10 +17462,10 @@ const ue = [
17414
17462
  "WHEN MATCHED [AND]",
17415
17463
  "THEN {UPDATE SET | DELETE}",
17416
17464
  "WHEN NOT MATCHED THEN INSERT"
17417
- ]), YT = r([
17465
+ ]), VT = r([
17418
17466
  "CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]",
17419
17467
  "CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"
17420
- ]), yE = r([
17468
+ ]), wE = r([
17421
17469
  // - create:
17422
17470
  "CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]",
17423
17471
  // - update:
@@ -17668,13 +17716,13 @@ const ue = [
17668
17716
  ]), cI = {
17669
17717
  name: "snowflake",
17670
17718
  tokenizerOptions: {
17671
- reservedSelect: oI,
17672
- reservedClauses: [...MI, ...YT, ...yE],
17719
+ reservedSelect: PI,
17720
+ reservedClauses: [...MI, ...VT, ...wE],
17673
17721
  reservedSetOperations: UI,
17674
17722
  reservedJoins: GI,
17675
17723
  reservedPhrases: lI,
17676
17724
  reservedKeywords: aI,
17677
- reservedDataTypes: PI,
17725
+ reservedDataTypes: oI,
17678
17726
  reservedFunctionNames: DI,
17679
17727
  stringTypes: ["$$", "''-qq-bs"],
17680
17728
  identTypes: ['""-qq'],
@@ -17705,12 +17753,12 @@ const ue = [
17705
17753
  },
17706
17754
  formatOptions: {
17707
17755
  alwaysDenseOperators: ["::"],
17708
- onelineClauses: [...YT, ...yE],
17709
- tabularOnelineClauses: yE
17756
+ onelineClauses: [...VT, ...wE],
17757
+ tabularOnelineClauses: wE
17710
17758
  }
17711
17759
  }, uI = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
17712
17760
  __proto__: null,
17713
- bigquery: PA,
17761
+ bigquery: oA,
17714
17762
  db2: pA,
17715
17763
  db2i: KA,
17716
17764
  duckdb: qA,
@@ -17729,17 +17777,17 @@ const ue = [
17729
17777
  tidb: pS,
17730
17778
  transactsql: OI,
17731
17779
  trino: ke
17732
- }, Symbol.toStringTag, { value: "Module" })), eE = (T) => T[T.length - 1], nR = (T) => T.sort((E, R) => R.length - E.length || E.localeCompare(R)), tE = (T) => T.replace(/\s+/gu, " "), KE = (T) => /\n/.test(T), y = (T) => T.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), pT = /\s+/uy, q = (T) => new RegExp(`(?:${T})`, "uy"), HI = (T) => T.split("").map((E) => / /gu.test(E) ? "\\s+" : `[${E.toUpperCase()}${E.toLowerCase()}]`).join(""), BI = (T) => T + "(?:-" + T + ")*", mI = ({ prefixes: T, requirePrefix: E }) => `(?:${T.map(HI).join("|")}${E ? "" : "|"})`, FI = (T) => new RegExp(`(?:${T.map(y).join("|")}).*?(?=\r
17780
+ }, Symbol.toStringTag, { value: "Module" })), eE = (T) => T[T.length - 1], PR = (T) => T.sort((E, R) => R.length - E.length || E.localeCompare(R)), tE = (T) => T.replace(/\s+/gu, " "), xE = (T) => /\n/.test(T), y = (T) => T.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"), WT = /\s+/uy, q = (T) => new RegExp(`(?:${T})`, "uy"), HI = (T) => T.split("").map((E) => / /gu.test(E) ? "\\s+" : `[${E.toUpperCase()}${E.toLowerCase()}]`).join(""), BI = (T) => T + "(?:-" + T + ")*", mI = ({ prefixes: T, requirePrefix: E }) => `(?:${T.map(HI).join("|")}${E ? "" : "|"})`, FI = (T) => new RegExp(`(?:${T.map(y).join("|")}).*?(?=\r
17733
17781
  |\r|
17734
- |$)`, "uy"), dT = (T, E = []) => {
17782
+ |$)`, "uy"), XT = (T, E = []) => {
17735
17783
  const R = T === "open" ? 0 : 1, A = ["()", ...E].map((S) => S[R]);
17736
17784
  return q(A.map(y).join("|"));
17737
- }, fT = (T) => q(`${nR(T).map(y).join("|")}`), YI = ({ rest: T, dashes: E }) => T || E ? `(?![${T || ""}${E ? "-" : ""}])` : "", J = (T, E = {}) => {
17785
+ }, bT = (T) => q(`${PR(T).map(y).join("|")}`), YI = ({ rest: T, dashes: E }) => T || E ? `(?![${T || ""}${E ? "-" : ""}])` : "", J = (T, E = {}) => {
17738
17786
  if (T.length === 0)
17739
17787
  return /^\b$/u;
17740
- const R = YI(E), A = nR(T).map(y).join("|").replace(/ /gu, "\\s+");
17788
+ const R = YI(E), A = PR(T).map(y).join("|").replace(/ /gu, "\\s+");
17741
17789
  return new RegExp(`(?:${A})${R}\\b`, "iuy");
17742
- }, $E = (T, E) => {
17790
+ }, vE = (T, E) => {
17743
17791
  if (!T.length)
17744
17792
  return;
17745
17793
  const R = T.map(y).join("|");
@@ -17752,7 +17800,7 @@ const ue = [
17752
17800
  "{": "}"
17753
17801
  }, E = "{left}(?:(?!{right}').)*?{right}", R = Object.entries(T).map(([N, s]) => E.replace(/{left}/g, y(N)).replace(/{right}/g, y(s))), A = y(Object.keys(T).join(""));
17754
17802
  return `[Qq]'(?:${String.raw`(?<tag>[^\s${A}])(?:(?!\k<tag>').)*?\k<tag>`}|${R.join("|")})'`;
17755
- }, hT = {
17803
+ }, yT = {
17756
17804
  // - backtick quoted (using `` to escape)
17757
17805
  "``": "(?:`[^`]*`)+",
17758
17806
  // - Transact-SQL square bracket quoted (using ]] to escape)
@@ -17777,11 +17825,11 @@ const ue = [
17777
17825
  "{}": String.raw`(?:\{[^\}]*\})`,
17778
17826
  // Oracle q'' strings: q'<text>' q'|text|' ...
17779
17827
  "q''": pI()
17780
- }, iR = (T) => typeof T == "string" ? hT[T] : "regex" in T ? T.regex : mI(T) + hT[T.quote], dI = (T) => q(T.map((E) => "regex" in E ? E.regex : iR(E)).join("|")), DR = (T) => T.map(iR).join("|"), VT = (T) => q(DR(T)), fI = (T = {}) => q(aR(T)), aR = ({ first: T, rest: E, dashes: R, allowFirstCharNumber: A } = {}) => {
17828
+ }, MR = (T) => typeof T == "string" ? yT[T] : "regex" in T ? T.regex : mI(T) + yT[T.quote], dI = (T) => q(T.map((E) => "regex" in E ? E.regex : MR(E)).join("|")), UR = (T) => T.map(MR).join("|"), KT = (T) => q(UR(T)), fI = (T = {}) => q(GR(T)), GR = ({ first: T, rest: E, dashes: R, allowFirstCharNumber: A } = {}) => {
17781
17829
  const S = "\\p{Alphabetic}\\p{Mark}_", e = "\\p{Decimal_Number}", N = y(T ?? ""), s = y(E ?? ""), _ = A ? `[${S}${e}${N}][${S}${e}${s}]*` : `[${S}${N}][${S}${e}${s}]*`;
17782
17830
  return R ? BI(_) : _;
17783
17831
  };
17784
- function PR(T, E) {
17832
+ function lR(T, E) {
17785
17833
  const R = T.slice(0, E).split(/\n/);
17786
17834
  return { line: R.length, col: R[R.length - 1].length + 1 };
17787
17835
  }
@@ -17811,7 +17859,7 @@ class hI {
17811
17859
  return R;
17812
17860
  }
17813
17861
  createParseError() {
17814
- const E = this.input.slice(this.index, this.index + 10), { line: R, col: A } = PR(this.input, this.index);
17862
+ const E = this.input.slice(this.index, this.index + 10), { line: R, col: A } = lR(this.input, this.index);
17815
17863
  return new Error(`Parse error: Unexpected "${E}" at line ${R} column ${A}.
17816
17864
  ${this.dialectInfo()}`);
17817
17865
  }
@@ -17820,8 +17868,8 @@ ${this.dialectInfo()}`);
17820
17868
  If possible, please select a more specific dialect (like sqlite, postgresql, etc).` : `SQL dialect used: "${this.dialectName}".`;
17821
17869
  }
17822
17870
  getWhitespace() {
17823
- pT.lastIndex = this.index;
17824
- const E = pT.exec(this.input);
17871
+ WT.lastIndex = this.index;
17872
+ const E = WT.exec(this.input);
17825
17873
  if (E)
17826
17874
  return this.index += E[0].length, E[0];
17827
17875
  }
@@ -17847,19 +17895,19 @@ If possible, please select a more specific dialect (like sqlite, postgresql, etc
17847
17895
  }
17848
17896
  }
17849
17897
  }
17850
- const WT = /\/\*/uy, VI = /[\s\S]/uy, WI = /\*\//uy;
17898
+ const $T = /\/\*/uy, VI = /[\s\S]/uy, WI = /\*\//uy;
17851
17899
  class XI {
17852
17900
  constructor() {
17853
17901
  this.lastIndex = 0;
17854
17902
  }
17855
17903
  exec(E) {
17856
17904
  let R = "", A, S = 0;
17857
- if (A = this.matchSection(WT, E))
17905
+ if (A = this.matchSection($T, E))
17858
17906
  R += A, S++;
17859
17907
  else
17860
17908
  return null;
17861
17909
  for (; S > 0; )
17862
- if (A = this.matchSection(WT, E))
17910
+ if (A = this.matchSection($T, E))
17863
17911
  R += A, S++;
17864
17912
  else if (A = this.matchSection(WI, E))
17865
17913
  R += A, S--;
@@ -17906,7 +17954,7 @@ class bI {
17906
17954
  },
17907
17955
  {
17908
17956
  type: D.QUOTED_IDENTIFIER,
17909
- regex: VT(E.identTypes)
17957
+ regex: KT(E.identTypes)
17910
17958
  },
17911
17959
  {
17912
17960
  type: D.NUMBER,
@@ -18021,7 +18069,7 @@ class bI {
18021
18069
  type: D.VARIABLE,
18022
18070
  regex: E.variableTypes ? dI(E.variableTypes) : void 0
18023
18071
  },
18024
- { type: D.STRING, regex: VT(E.stringTypes) },
18072
+ { type: D.STRING, regex: KT(E.stringTypes) },
18025
18073
  {
18026
18074
  type: D.IDENTIFIER,
18027
18075
  regex: fI(E.identChars)
@@ -18030,15 +18078,15 @@ class bI {
18030
18078
  { type: D.COMMA, regex: /[,]/y },
18031
18079
  {
18032
18080
  type: D.OPEN_PAREN,
18033
- regex: dT("open", E.extraParens)
18081
+ regex: XT("open", E.extraParens)
18034
18082
  },
18035
18083
  {
18036
18084
  type: D.CLOSE_PAREN,
18037
- regex: dT("close", E.extraParens)
18085
+ regex: XT("close", E.extraParens)
18038
18086
  },
18039
18087
  {
18040
18088
  type: D.OPERATOR,
18041
- regex: fT([
18089
+ regex: bT([
18042
18090
  // standard operators
18043
18091
  "+",
18044
18092
  "-",
@@ -18056,7 +18104,7 @@ class bI {
18056
18104
  { type: D.ASTERISK, regex: /[*]/uy },
18057
18105
  {
18058
18106
  type: D.PROPERTY_ACCESS_OPERATOR,
18059
- regex: fT([".", ...(A = E.propertyAccessOperators) !== null && A !== void 0 ? A : []])
18107
+ regex: bT([".", ...(A = E.propertyAccessOperators) !== null && A !== void 0 ? A : []])
18060
18108
  }
18061
18109
  ]);
18062
18110
  }
@@ -18074,12 +18122,12 @@ class bI {
18074
18122
  return this.validRules([
18075
18123
  {
18076
18124
  type: D.NAMED_PARAMETER,
18077
- regex: $E(_.named, aR(E.paramChars || E.identChars)),
18125
+ regex: vE(_.named, GR(E.paramChars || E.identChars)),
18078
18126
  key: (I) => I.slice(1)
18079
18127
  },
18080
18128
  {
18081
18129
  type: D.QUOTED_PARAMETER,
18082
- regex: $E(_.quoted, DR(E.identTypes)),
18130
+ regex: vE(_.quoted, UR(E.identTypes)),
18083
18131
  key: (I) => (({ tokenKey: O, quoteChar: C }) => O.replace(new RegExp(y("\\" + C), "gu"), C))({
18084
18132
  tokenKey: I.slice(2, -1),
18085
18133
  quoteChar: I.slice(-1)
@@ -18087,7 +18135,7 @@ class bI {
18087
18135
  },
18088
18136
  {
18089
18137
  type: D.NUMBERED_PARAMETER,
18090
- regex: $E(_.numbered, "[0-9]+"),
18138
+ regex: vE(_.numbered, "[0-9]+"),
18091
18139
  key: (I) => I.slice(1)
18092
18140
  },
18093
18141
  {
@@ -18109,9 +18157,9 @@ class bI {
18109
18157
  return E.filter((R) => !!R.regex);
18110
18158
  }
18111
18159
  }
18112
- const p = (T) => tE(T.toUpperCase()), XT = /* @__PURE__ */ new Map(), yI = (T) => {
18113
- let E = XT.get(T);
18114
- return E || (E = KI(T), XT.set(T, E)), E;
18160
+ const p = (T) => tE(T.toUpperCase()), gT = /* @__PURE__ */ new Map(), yI = (T) => {
18161
+ let E = gT.get(T);
18162
+ return E || (E = KI(T), gT.set(T, E)), E;
18115
18163
  }, KI = (T) => ({
18116
18164
  tokenizer: new bI(T.tokenizerOptions, T.name),
18117
18165
  formatOptions: $I(T.formatOptions)
@@ -18126,7 +18174,7 @@ const p = (T) => tE(T.toUpperCase()), XT = /* @__PURE__ */ new Map(), yI = (T) =
18126
18174
  function gI(T) {
18127
18175
  return T.indentStyle === "tabularLeft" || T.indentStyle === "tabularRight" ? " ".repeat(10) : T.useTabs ? " " : " ".repeat(T.tabWidth);
18128
18176
  }
18129
- function k(T) {
18177
+ function EE(T) {
18130
18178
  return T.indentStyle === "tabularLeft" || T.indentStyle === "tabularRight";
18131
18179
  }
18132
18180
  class JI {
@@ -18156,7 +18204,7 @@ var wI = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : t
18156
18204
  function xI(T) {
18157
18205
  return T && T.__esModule && Object.prototype.hasOwnProperty.call(T, "default") ? T.default : T;
18158
18206
  }
18159
- var oR = { exports: {} };
18207
+ var cR = { exports: {} };
18160
18208
  (function(T) {
18161
18209
  (function(E, R) {
18162
18210
  T.exports ? T.exports = R() : E.nearley = R();
@@ -18190,38 +18238,38 @@ var oR = { exports: {} };
18190
18238
  }
18191
18239
  A.prototype.process = function(I) {
18192
18240
  for (var O = this.states, C = this.wants, t = this.completed, i = 0; i < O.length; i++) {
18193
- var o = O[i];
18194
- if (o.isComplete) {
18195
- if (o.finish(), o.data !== N.fail) {
18196
- for (var M = o.wantedBy, P = M.length; P--; ) {
18197
- var G = M[P];
18198
- this.complete(G, o);
18241
+ var P = O[i];
18242
+ if (P.isComplete) {
18243
+ if (P.finish(), P.data !== N.fail) {
18244
+ for (var M = P.wantedBy, o = M.length; o--; ) {
18245
+ var G = M[o];
18246
+ this.complete(G, P);
18199
18247
  }
18200
- if (o.reference === this.index) {
18201
- var a = o.rule.name;
18202
- (this.completed[a] = this.completed[a] || []).push(o);
18248
+ if (P.reference === this.index) {
18249
+ var a = P.rule.name;
18250
+ (this.completed[a] = this.completed[a] || []).push(P);
18203
18251
  }
18204
18252
  }
18205
18253
  } else {
18206
- var a = o.rule.symbols[o.dot];
18254
+ var a = P.rule.symbols[P.dot];
18207
18255
  if (typeof a != "string") {
18208
- this.scannable.push(o);
18256
+ this.scannable.push(P);
18209
18257
  continue;
18210
18258
  }
18211
18259
  if (C[a]) {
18212
- if (C[a].push(o), t.hasOwnProperty(a))
18213
- for (var H = t[a], P = 0; P < H.length; P++) {
18214
- var u = H[P];
18215
- this.complete(o, u);
18260
+ if (C[a].push(P), t.hasOwnProperty(a))
18261
+ for (var H = t[a], o = 0; o < H.length; o++) {
18262
+ var u = H[o];
18263
+ this.complete(P, u);
18216
18264
  }
18217
18265
  } else
18218
- C[a] = [o], this.predict(a);
18266
+ C[a] = [P], this.predict(a);
18219
18267
  }
18220
18268
  }
18221
18269
  }, A.prototype.predict = function(I) {
18222
18270
  for (var O = this.grammar.byName[I] || [], C = 0; C < O.length; C++) {
18223
- var t = O[C], i = this.wants[I], o = new R(t, 0, this.index, i);
18224
- this.states.push(o);
18271
+ var t = O[C], i = this.wants[I], P = new R(t, 0, this.index, i);
18272
+ this.states.push(P);
18225
18273
  }
18226
18274
  }, A.prototype.complete = function(I, O) {
18227
18275
  var C = I.nextState(O);
@@ -18237,8 +18285,8 @@ var oR = { exports: {} };
18237
18285
  S.fromCompiled = function(t, O) {
18238
18286
  var C = t.Lexer;
18239
18287
  t.ParserStart && (O = t.ParserStart, t = t.ParserRules);
18240
- var t = t.map(function(o) {
18241
- return new E(o.name, o.symbols, o.postprocess);
18288
+ var t = t.map(function(P) {
18289
+ return new E(P.name, P.symbols, P.postprocess);
18242
18290
  }), i = new S(t, O);
18243
18291
  return i.lexer = C, i;
18244
18292
  };
@@ -18268,18 +18316,18 @@ var oR = { exports: {} };
18268
18316
  ), i = C.indexOf(`
18269
18317
  `, this.index);
18270
18318
  i === -1 && (i = C.length);
18271
- var o = this.index - this.lastLineBreak, M = String(this.line).length;
18272
- return O += " at line " + this.line + " col " + o + `:
18319
+ var P = this.index - this.lastLineBreak, M = String(this.line).length;
18320
+ return O += " at line " + this.line + " col " + P + `:
18273
18321
 
18274
18322
  `, O += t.map(function(G, a) {
18275
- return P(this.line - t.length + a + 1, M) + " " + G;
18323
+ return o(this.line - t.length + a + 1, M) + " " + G;
18276
18324
  }, this).join(`
18277
18325
  `), O += `
18278
- ` + P("", M + o) + `^
18326
+ ` + o("", M + P) + `^
18279
18327
  `, O;
18280
18328
  } else
18281
18329
  return O + " at index " + (this.index - 1);
18282
- function P(G, a) {
18330
+ function o(G, a) {
18283
18331
  var H = String(G);
18284
18332
  return Array(a - H.length + 1).join(" ") + H;
18285
18333
  }
@@ -18296,8 +18344,8 @@ var oR = { exports: {} };
18296
18344
  for (var i in C || {})
18297
18345
  this.options[i] = C[i];
18298
18346
  this.lexer = this.options.lexer, this.lexerState = void 0;
18299
- var o = new A(t, 0);
18300
- this.table = [o], o.wants[t.start] = [], o.predict(t.start), o.process(), this.current = 0;
18347
+ var P = new A(t, 0);
18348
+ this.table = [P], P.wants[t.start] = [], P.predict(t.start), P.process(), this.current = 0;
18301
18349
  }
18302
18350
  N.fail = {}, N.prototype.feed = function(I) {
18303
18351
  var O = this.lexer;
@@ -18314,12 +18362,12 @@ var oR = { exports: {} };
18314
18362
  }
18315
18363
  var i = this.table[this.current];
18316
18364
  this.options.keepHistory || delete this.table[this.current - 1];
18317
- var o = this.current + 1, M = new A(this.grammar, o);
18365
+ var P = this.current + 1, M = new A(this.grammar, P);
18318
18366
  this.table.push(M);
18319
- for (var P = C.text !== void 0 ? C.text : C.value, G = O.constructor === e ? C.value : C, a = i.scannable, H = a.length; H--; ) {
18367
+ for (var o = C.text !== void 0 ? C.text : C.value, G = O.constructor === e ? C.value : C, a = i.scannable, H = a.length; H--; ) {
18320
18368
  var u = a[H], B = u.rule.symbols[u.dot];
18321
- if (B.test ? B.test(G) : B.type ? B.type === C.type : B.literal === P) {
18322
- var Y = u.nextState({ data: G, token: C, isToken: !0, reference: o - 1 });
18369
+ if (B.test ? B.test(G) : B.type ? B.type === C.type : B.literal === o) {
18370
+ var Y = u.nextState({ data: G, token: C, isToken: !0, reference: P - 1 });
18323
18371
  M.states.push(Y);
18324
18372
  }
18325
18373
  }
@@ -18339,29 +18387,29 @@ var oR = { exports: {} };
18339
18387
  }, N.prototype.reportErrorCommon = function(I, O) {
18340
18388
  var C = [];
18341
18389
  C.push(I);
18342
- var t = this.table.length - 2, i = this.table[t], o = i.states.filter(function(P) {
18343
- var G = P.rule.symbols[P.dot];
18390
+ var t = this.table.length - 2, i = this.table[t], P = i.states.filter(function(o) {
18391
+ var G = o.rule.symbols[o.dot];
18344
18392
  return G && typeof G != "string";
18345
18393
  });
18346
- if (o.length === 0)
18394
+ if (P.length === 0)
18347
18395
  C.push("Unexpected " + O + `. I did not expect any more input. Here is the state of my parse table:
18348
18396
  `), this.displayStateStack(i.states, C);
18349
18397
  else {
18350
18398
  C.push("Unexpected " + O + `. Instead, I was expecting to see one of the following:
18351
18399
  `);
18352
- var M = o.map(function(P) {
18353
- return this.buildFirstStateStack(P, []) || [P];
18400
+ var M = P.map(function(o) {
18401
+ return this.buildFirstStateStack(o, []) || [o];
18354
18402
  }, this);
18355
- M.forEach(function(P) {
18356
- var G = P[0], a = G.rule.symbols[G.dot], H = this.getSymbolDisplay(a);
18357
- C.push("A " + H + " based on:"), this.displayStateStack(P, C);
18403
+ M.forEach(function(o) {
18404
+ var G = o[0], a = G.rule.symbols[G.dot], H = this.getSymbolDisplay(a);
18405
+ C.push("A " + H + " based on:"), this.displayStateStack(o, C);
18358
18406
  }, this);
18359
18407
  }
18360
18408
  return C.push(""), C.join(`
18361
18409
  `);
18362
18410
  }, N.prototype.displayStateStack = function(I, O) {
18363
18411
  for (var C, t = 0, i = 0; i < I.length; i++) {
18364
- var o = I[i], M = o.rule.toString(o.dot);
18412
+ var P = I[i], M = P.rule.toString(P.dot);
18365
18413
  M === C ? t++ : (t > 0 && O.push(" ^ " + t + " more lines identical to this"), t = 0, O.push(" " + M)), C = M;
18366
18414
  }
18367
18415
  }, N.prototype.getSymbolDisplay = function(I) {
@@ -18429,57 +18477,57 @@ var oR = { exports: {} };
18429
18477
  Rule: E
18430
18478
  };
18431
18479
  });
18432
- })(oR);
18433
- var vI = oR.exports;
18480
+ })(cR);
18481
+ var vI = cR.exports;
18434
18482
  const QI = /* @__PURE__ */ xI(vI);
18435
18483
  function ZI(T) {
18436
18484
  return T.map(qI).map(jI).map(kI).map(zI).map(EO);
18437
18485
  }
18438
18486
  const qI = (T, E, R) => {
18439
- if (rR(T.type)) {
18487
+ if (oR(T.type)) {
18440
18488
  const A = TO(R, E);
18441
18489
  if (A && A.type === D.PROPERTY_ACCESS_OPERATOR)
18442
18490
  return Object.assign(Object.assign({}, T), { type: D.IDENTIFIER, text: T.raw });
18443
- const S = TE(R, E);
18491
+ const S = AE(R, E);
18444
18492
  if (S && S.type === D.PROPERTY_ACCESS_OPERATOR)
18445
18493
  return Object.assign(Object.assign({}, T), { type: D.IDENTIFIER, text: T.raw });
18446
18494
  }
18447
18495
  return T;
18448
18496
  }, jI = (T, E, R) => {
18449
18497
  if (T.type === D.RESERVED_FUNCTION_NAME) {
18450
- const A = TE(R, E);
18451
- if (!A || !MR(A))
18498
+ const A = AE(R, E);
18499
+ if (!A || !uR(A))
18452
18500
  return Object.assign(Object.assign({}, T), { type: D.IDENTIFIER, text: T.raw });
18453
18501
  }
18454
18502
  return T;
18455
18503
  }, kI = (T, E, R) => {
18456
18504
  if (T.type === D.RESERVED_DATA_TYPE) {
18457
- const A = TE(R, E);
18458
- if (A && MR(A))
18505
+ const A = AE(R, E);
18506
+ if (A && uR(A))
18459
18507
  return Object.assign(Object.assign({}, T), { type: D.RESERVED_PARAMETERIZED_DATA_TYPE });
18460
18508
  }
18461
18509
  return T;
18462
18510
  }, zI = (T, E, R) => {
18463
18511
  if (T.type === D.IDENTIFIER) {
18464
- const A = TE(R, E);
18465
- if (A && UR(A))
18512
+ const A = AE(R, E);
18513
+ if (A && HR(A))
18466
18514
  return Object.assign(Object.assign({}, T), { type: D.ARRAY_IDENTIFIER });
18467
18515
  }
18468
18516
  return T;
18469
18517
  }, EO = (T, E, R) => {
18470
18518
  if (T.type === D.RESERVED_DATA_TYPE) {
18471
- const A = TE(R, E);
18472
- if (A && UR(A))
18519
+ const A = AE(R, E);
18520
+ if (A && HR(A))
18473
18521
  return Object.assign(Object.assign({}, T), { type: D.ARRAY_KEYWORD });
18474
18522
  }
18475
18523
  return T;
18476
- }, TO = (T, E) => TE(T, E, -1), TE = (T, E, R = 1) => {
18524
+ }, TO = (T, E) => AE(T, E, -1), AE = (T, E, R = 1) => {
18477
18525
  let A = 1;
18478
18526
  for (; T[E + A * R] && RO(T[E + A * R]); )
18479
18527
  A++;
18480
18528
  return T[E + A * R];
18481
- }, MR = (T) => T.type === D.OPEN_PAREN && T.text === "(", UR = (T) => T.type === D.OPEN_PAREN && T.text === "[", RO = (T) => T.type === D.BLOCK_COMMENT || T.type === D.LINE_COMMENT;
18482
- class GR {
18529
+ }, uR = (T) => T.type === D.OPEN_PAREN && T.text === "(", HR = (T) => T.type === D.OPEN_PAREN && T.text === "[", RO = (T) => T.type === D.BLOCK_COMMENT || T.type === D.LINE_COMMENT;
18530
+ class BR {
18483
18531
  constructor(E) {
18484
18532
  this.tokenize = E, this.index = 0, this.tokens = [], this.input = "";
18485
18533
  }
@@ -18492,7 +18540,7 @@ class GR {
18492
18540
  save() {
18493
18541
  }
18494
18542
  formatError(E) {
18495
- const { line: R, col: A } = PR(this.input, E.start);
18543
+ const { line: R, col: A } = lR(this.input, E.start);
18496
18544
  return `Parse error at token: ${E.text} at line ${R} column ${A}`;
18497
18545
  }
18498
18546
  has(E) {
@@ -18503,15 +18551,15 @@ var U;
18503
18551
  (function(T) {
18504
18552
  T.statement = "statement", T.clause = "clause", T.set_operation = "set_operation", T.function_call = "function_call", T.parameterized_data_type = "parameterized_data_type", T.array_subscript = "array_subscript", T.property_access = "property_access", T.parenthesis = "parenthesis", T.between_predicate = "between_predicate", T.case_expression = "case_expression", T.case_when = "case_when", T.case_else = "case_else", T.limit_clause = "limit_clause", T.all_columns_asterisk = "all_columns_asterisk", T.literal = "literal", T.identifier = "identifier", T.keyword = "keyword", T.data_type = "data_type", T.parameter = "parameter", T.operator = "operator", T.comma = "comma", T.line_comment = "line_comment", T.block_comment = "block_comment", T.disable_comment = "disable_comment";
18505
18553
  })(U = U || (U = {}));
18506
- function gE(T) {
18554
+ function QE(T) {
18507
18555
  return T[0];
18508
18556
  }
18509
- const c = new GR((T) => []), w = ([[T]]) => T, d = (T) => ({
18557
+ const c = new BR((T) => []), w = ([[T]]) => T, d = (T) => ({
18510
18558
  type: U.keyword,
18511
18559
  tokenType: T.type,
18512
18560
  text: T.text,
18513
18561
  raw: T.raw
18514
- }), bT = (T) => ({
18562
+ }), JT = (T) => ({
18515
18563
  type: U.data_type,
18516
18564
  text: T.text,
18517
18565
  raw: T.raw
@@ -18566,7 +18614,7 @@ const c = new GR((T) => []), w = ([[T]]) => T, d = (T) => ({
18566
18614
  { name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["free_form_sql"] },
18567
18615
  { name: "limit_clause$ebnf$1$subexpression$1$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1$ebnf$1", "free_form_sql"], postprocess: (T) => T[0].concat([T[1]]) },
18568
18616
  { name: "limit_clause$ebnf$1$subexpression$1", symbols: [c.has("COMMA") ? { type: "COMMA" } : COMMA, "limit_clause$ebnf$1$subexpression$1$ebnf$1"] },
18569
- { name: "limit_clause$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1"], postprocess: gE },
18617
+ { name: "limit_clause$ebnf$1", symbols: ["limit_clause$ebnf$1$subexpression$1"], postprocess: QE },
18570
18618
  { name: "limit_clause$ebnf$1", symbols: [], postprocess: () => null },
18571
18619
  {
18572
18620
  name: "limit_clause",
@@ -18641,7 +18689,7 @@ const c = new GR((T) => []), w = ([[T]]) => T, d = (T) => ({
18641
18689
  },
18642
18690
  { name: "expression_chain_$ebnf$1", symbols: ["expression_with_comments_"] },
18643
18691
  { name: "expression_chain_$ebnf$1", symbols: ["expression_chain_$ebnf$1", "expression_with_comments_"], postprocess: (T) => T[0].concat([T[1]]) },
18644
- { name: "expression_chain_", symbols: ["expression_chain_$ebnf$1"], postprocess: gE },
18692
+ { name: "expression_chain_", symbols: ["expression_chain_$ebnf$1"], postprocess: QE },
18645
18693
  { name: "expression_chain$ebnf$1", symbols: [] },
18646
18694
  { name: "expression_chain$ebnf$1", symbols: ["expression_chain$ebnf$1", "_expression_with_comments"], postprocess: (T) => T[0].concat([T[1]]) },
18647
18695
  {
@@ -18795,7 +18843,7 @@ const c = new GR((T) => []), w = ([[T]]) => T, d = (T) => ({
18795
18843
  expr2: [f(N, { leading: e })]
18796
18844
  })
18797
18845
  },
18798
- { name: "case_expression$ebnf$1", symbols: ["expression_chain_"], postprocess: gE },
18846
+ { name: "case_expression$ebnf$1", symbols: ["expression_chain_"], postprocess: QE },
18799
18847
  { name: "case_expression$ebnf$1", symbols: [], postprocess: () => null },
18800
18848
  { name: "case_expression$ebnf$2", symbols: [] },
18801
18849
  { name: "case_expression$ebnf$2", symbols: ["case_expression$ebnf$2", "case_clause"], postprocess: (T) => T[0].concat([T[1]]) },
@@ -18861,14 +18909,14 @@ const c = new GR((T) => []), w = ([[T]]) => T, d = (T) => ({
18861
18909
  {
18862
18910
  name: "data_type",
18863
18911
  symbols: ["data_type$subexpression$1"],
18864
- postprocess: ([[T]]) => bT(T)
18912
+ postprocess: ([[T]]) => JT(T)
18865
18913
  },
18866
18914
  {
18867
18915
  name: "data_type",
18868
18916
  symbols: [c.has("RESERVED_PARAMETERIZED_DATA_TYPE") ? { type: "RESERVED_PARAMETERIZED_DATA_TYPE" } : RESERVED_PARAMETERIZED_DATA_TYPE, "_", "parenthesis"],
18869
18917
  postprocess: ([T, E, R]) => ({
18870
18918
  type: U.parameterized_data_type,
18871
- dataType: f(bT(T), { trailing: E }),
18919
+ dataType: f(JT(T), { trailing: E }),
18872
18920
  parenthesis: R
18873
18921
  })
18874
18922
  },
@@ -18924,9 +18972,9 @@ const c = new GR((T) => []), w = ([[T]]) => T, d = (T) => ({
18924
18972
  }, { Parser: eO, Grammar: IO } = QI;
18925
18973
  function OO(T) {
18926
18974
  let E = {};
18927
- const R = new GR((S) => [
18975
+ const R = new BR((S) => [
18928
18976
  ...ZI(T.tokenize(S, E)),
18929
- _R(S.length)
18977
+ aR(S.length)
18930
18978
  ]), A = new eO(IO.fromCompiled(SO), { lexer: R });
18931
18979
  return {
18932
18980
  parse: (S, e) => {
@@ -18943,7 +18991,7 @@ var n;
18943
18991
  (function(T) {
18944
18992
  T[T.SPACE = 0] = "SPACE", T[T.NO_SPACE = 1] = "NO_SPACE", T[T.NO_NEWLINE = 2] = "NO_NEWLINE", T[T.NEWLINE = 3] = "NEWLINE", T[T.MANDATORY_NEWLINE = 4] = "MANDATORY_NEWLINE", T[T.INDENT = 5] = "INDENT", T[T.SINGLE_INDENT = 6] = "SINGLE_INDENT";
18945
18993
  })(n = n || (n = {}));
18946
- class lR {
18994
+ class mR {
18947
18995
  constructor(E) {
18948
18996
  this.indentation = E, this.items = [];
18949
18997
  }
@@ -19031,17 +19079,17 @@ class lR {
19031
19079
  }
19032
19080
  }
19033
19081
  const NO = (T) => T === n.SPACE || T === n.SINGLE_INDENT, tO = (T) => T === n.SPACE || T === n.SINGLE_INDENT || T === n.NEWLINE;
19034
- function yT(T, E) {
19082
+ function wT(T, E) {
19035
19083
  if (E === "standard")
19036
19084
  return T;
19037
19085
  let R = [];
19038
19086
  return T.length >= 10 && T.includes(" ") && ([T, ...R] = T.split(" ")), E === "tabularLeft" ? T = T.padEnd(9, " ") : T = T.padStart(9, " "), T + ["", ...R].join(" ");
19039
19087
  }
19040
- function KT(T) {
19088
+ function xT(T) {
19041
19089
  return sA(T) || T === D.RESERVED_CLAUSE || T === D.RESERVED_SELECT || T === D.RESERVED_SET_OPERATION || T === D.RESERVED_JOIN || T === D.LIMIT;
19042
19090
  }
19043
- const JE = "top-level", sO = "block-level";
19044
- class cR {
19091
+ const ZE = "top-level", sO = "block-level";
19092
+ class FR {
19045
19093
  /**
19046
19094
  * @param {string} indent A string to indent with
19047
19095
  */
@@ -19064,7 +19112,7 @@ class cR {
19064
19112
  * Increases indentation by one top-level indent.
19065
19113
  */
19066
19114
  increaseTopLevel() {
19067
- this.indentTypes.push(JE);
19115
+ this.indentTypes.push(ZE);
19068
19116
  }
19069
19117
  /**
19070
19118
  * Increases indentation by one block-level indent.
@@ -19077,7 +19125,7 @@ class cR {
19077
19125
  * Does nothing when the previous indent is not top-level.
19078
19126
  */
19079
19127
  decreaseTopLevel() {
19080
- this.indentTypes.length > 0 && eE(this.indentTypes) === JE && this.indentTypes.pop();
19128
+ this.indentTypes.length > 0 && eE(this.indentTypes) === ZE && this.indentTypes.pop();
19081
19129
  }
19082
19130
  /**
19083
19131
  * Decreases indentation by one block-level indent.
@@ -19085,17 +19133,17 @@ class cR {
19085
19133
  * throws away these as well.
19086
19134
  */
19087
19135
  decreaseBlockLevel() {
19088
- for (; this.indentTypes.length > 0 && this.indentTypes.pop() === JE; )
19136
+ for (; this.indentTypes.length > 0 && this.indentTypes.pop() === ZE; )
19089
19137
  ;
19090
19138
  }
19091
19139
  }
19092
- class CO extends lR {
19140
+ class CO extends mR {
19093
19141
  constructor(E) {
19094
- super(new cR("")), this.expressionWidth = E, this.length = 0, this.trailingSpace = !1;
19142
+ super(new FR("")), this.expressionWidth = E, this.length = 0, this.trailingSpace = !1;
19095
19143
  }
19096
19144
  add(...E) {
19097
19145
  if (E.forEach((R) => this.addToLength(R)), this.length > this.expressionWidth)
19098
- throw new vE();
19146
+ throw new kE();
19099
19147
  super.add(...E);
19100
19148
  }
19101
19149
  addToLength(E) {
@@ -19103,14 +19151,14 @@ class CO extends lR {
19103
19151
  this.length += E.length, this.trailingSpace = !1;
19104
19152
  else {
19105
19153
  if (E === n.MANDATORY_NEWLINE || E === n.NEWLINE)
19106
- throw new vE();
19154
+ throw new kE();
19107
19155
  E === n.INDENT || E === n.SINGLE_INDENT || E === n.SPACE ? this.trailingSpace || (this.length++, this.trailingSpace = !0) : (E === n.NO_NEWLINE || E === n.NO_SPACE) && this.trailingSpace && (this.trailingSpace = !1, this.length--);
19108
19156
  }
19109
19157
  }
19110
19158
  }
19111
- class vE extends Error {
19159
+ class kE extends Error {
19112
19160
  }
19113
- class _E {
19161
+ class rE {
19114
19162
  constructor({ cfg: E, dialectCfg: R, params: A, layout: S, inline: e = !1 }) {
19115
19163
  this.inline = !1, this.nodes = [], this.index = -1, this.cfg = E, this.dialectCfg = R, this.inline = e, this.params = A, this.layout = S;
19116
19164
  }
@@ -19204,7 +19252,7 @@ class _E {
19204
19252
  }
19205
19253
  formatParenthesis(E) {
19206
19254
  const R = this.formatInlineExpression(E.children);
19207
- R ? (this.layout.add(E.openParen), this.layout.add(...R.getLayoutItems()), this.layout.add(n.NO_SPACE, E.closeParen, n.SPACE)) : (this.layout.add(E.openParen, n.NEWLINE), k(this.cfg) ? (this.layout.add(n.INDENT), this.layout = this.formatSubExpression(E.children)) : (this.layout.indentation.increaseBlockLevel(), this.layout.add(n.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseBlockLevel()), this.layout.add(n.NEWLINE, n.INDENT, E.closeParen, n.SPACE));
19255
+ R ? (this.layout.add(E.openParen), this.layout.add(...R.getLayoutItems()), this.layout.add(n.NO_SPACE, E.closeParen, n.SPACE)) : (this.layout.add(E.openParen, n.NEWLINE), EE(this.cfg) ? (this.layout.add(n.INDENT), this.layout = this.formatSubExpression(E.children)) : (this.layout.indentation.increaseBlockLevel(), this.layout.add(n.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseBlockLevel()), this.layout.add(n.NEWLINE, n.INDENT, E.closeParen, n.SPACE));
19208
19256
  }
19209
19257
  formatBetweenPredicate(E) {
19210
19258
  this.layout.add(this.showKw(E.betweenKw), n.SPACE), this.layout = this.formatSubExpression(E.expr1), this.layout.add(n.NO_SPACE, n.SPACE, this.showNonTabularKw(E.andKw), n.SPACE), this.layout = this.formatSubExpression(E.expr2), this.layout.add(n.SPACE);
@@ -19219,10 +19267,10 @@ class _E {
19219
19267
  this.layout.add(n.NEWLINE, n.INDENT), this.formatNode(E.elseKw), this.layout = this.formatSubExpression(E.result);
19220
19268
  }
19221
19269
  formatClause(E) {
19222
- this.isOnelineClause(E) ? this.formatClauseInOnelineStyle(E) : k(this.cfg) ? this.formatClauseInTabularStyle(E) : this.formatClauseInIndentedStyle(E);
19270
+ this.isOnelineClause(E) ? this.formatClauseInOnelineStyle(E) : EE(this.cfg) ? this.formatClauseInTabularStyle(E) : this.formatClauseInIndentedStyle(E);
19223
19271
  }
19224
19272
  isOnelineClause(E) {
19225
- return k(this.cfg) ? this.dialectCfg.tabularOnelineClauses[E.nameKw.text] : this.dialectCfg.onelineClauses[E.nameKw.text];
19273
+ return EE(this.cfg) ? this.dialectCfg.tabularOnelineClauses[E.nameKw.text] : this.dialectCfg.onelineClauses[E.nameKw.text];
19226
19274
  }
19227
19275
  formatClauseInIndentedStyle(E) {
19228
19276
  this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E.nameKw), n.NEWLINE), this.layout.indentation.increaseTopLevel(), this.layout.add(n.INDENT), this.layout = this.formatSubExpression(E.children), this.layout.indentation.decreaseTopLevel();
@@ -19239,7 +19287,7 @@ class _E {
19239
19287
  formatLimitClause(E) {
19240
19288
  this.withComments(E.limitKw, () => {
19241
19289
  this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E.limitKw));
19242
- }), this.layout.indentation.increaseTopLevel(), k(this.cfg) ? this.layout.add(n.SPACE) : this.layout.add(n.NEWLINE, n.INDENT), E.offset ? (this.layout = this.formatSubExpression(E.offset), this.layout.add(n.NO_SPACE, ",", n.SPACE), this.layout = this.formatSubExpression(E.count)) : this.layout = this.formatSubExpression(E.count), this.layout.indentation.decreaseTopLevel();
19290
+ }), this.layout.indentation.increaseTopLevel(), EE(this.cfg) ? this.layout.add(n.SPACE) : this.layout.add(n.NEWLINE, n.INDENT), E.offset ? (this.layout = this.formatSubExpression(E.offset), this.layout.add(n.NO_SPACE, ",", n.SPACE), this.layout = this.formatSubExpression(E.count)) : this.layout = this.formatSubExpression(E.count), this.layout.indentation.decreaseTopLevel();
19243
19291
  }
19244
19292
  formatAllColumnsAsterisk(E) {
19245
19293
  this.layout.add("*", n.SPACE);
@@ -19268,7 +19316,7 @@ class _E {
19268
19316
  });
19269
19317
  }
19270
19318
  formatLineComment(E) {
19271
- KE(E.precedingWhitespace || "") ? this.layout.add(n.NEWLINE, n.INDENT, E.text, n.MANDATORY_NEWLINE, n.INDENT) : this.layout.getLayoutItems().length > 0 ? this.layout.add(n.NO_NEWLINE, n.SPACE, E.text, n.MANDATORY_NEWLINE, n.INDENT) : this.layout.add(E.text, n.MANDATORY_NEWLINE, n.INDENT);
19319
+ xE(E.precedingWhitespace || "") ? this.layout.add(n.NEWLINE, n.INDENT, E.text, n.MANDATORY_NEWLINE, n.INDENT) : this.layout.getLayoutItems().length > 0 ? this.layout.add(n.NO_NEWLINE, n.SPACE, E.text, n.MANDATORY_NEWLINE, n.INDENT) : this.layout.add(E.text, n.MANDATORY_NEWLINE, n.INDENT);
19272
19320
  }
19273
19321
  formatBlockComment(E) {
19274
19322
  E.type === U.block_comment && this.isMultilineBlockComment(E) ? (this.splitBlockComment(E.text).forEach((R) => {
@@ -19276,7 +19324,7 @@ class _E {
19276
19324
  }), this.layout.add(n.NEWLINE, n.INDENT)) : this.layout.add(E.text, n.SPACE);
19277
19325
  }
19278
19326
  isMultilineBlockComment(E) {
19279
- return KE(E.text) || KE(E.precedingWhitespace || "");
19327
+ return xE(E.text) || xE(E.precedingWhitespace || "");
19280
19328
  }
19281
19329
  isDocComment(E) {
19282
19330
  const R = E.split(/\n/);
@@ -19318,7 +19366,7 @@ class _E {
19318
19366
  return this.isDocComment(E) ? E.split(/\n/).map((R) => /^\s*\*/.test(R) ? " " + R.replace(/^\s*/, "") : R) : E.split(/\n/).map((R) => R.replace(/^\s*/, ""));
19319
19367
  }
19320
19368
  formatSubExpression(E) {
19321
- return new _E({
19369
+ return new rE({
19322
19370
  cfg: this.cfg,
19323
19371
  dialectCfg: this.dialectCfg,
19324
19372
  params: this.params,
@@ -19329,7 +19377,7 @@ class _E {
19329
19377
  formatInlineExpression(E) {
19330
19378
  const R = this.params.getPositionalParameterIndex();
19331
19379
  try {
19332
- return new _E({
19380
+ return new rE({
19333
19381
  cfg: this.cfg,
19334
19382
  dialectCfg: this.dialectCfg,
19335
19383
  params: this.params,
@@ -19337,7 +19385,7 @@ class _E {
19337
19385
  inline: !0
19338
19386
  }).format(E);
19339
19387
  } catch (A) {
19340
- if (A instanceof vE) {
19388
+ if (A instanceof kE) {
19341
19389
  this.params.setPositionalParameterIndex(R);
19342
19390
  return;
19343
19391
  } else
@@ -19357,19 +19405,19 @@ class _E {
19357
19405
  }
19358
19406
  }
19359
19407
  formatJoin(E) {
19360
- k(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE);
19408
+ EE(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE);
19361
19409
  }
19362
19410
  formatKeyword(E) {
19363
19411
  this.layout.add(this.showKw(E), n.SPACE);
19364
19412
  }
19365
19413
  formatLogicalOperator(E) {
19366
- this.cfg.logicalOperatorNewline === "before" ? k(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE) : this.layout.add(this.showKw(E), n.NEWLINE, n.INDENT);
19414
+ this.cfg.logicalOperatorNewline === "before" ? EE(this.cfg) ? (this.layout.indentation.decreaseTopLevel(), this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE), this.layout.indentation.increaseTopLevel()) : this.layout.add(n.NEWLINE, n.INDENT, this.showKw(E), n.SPACE) : this.layout.add(this.showKw(E), n.NEWLINE, n.INDENT);
19367
19415
  }
19368
19416
  formatDataType(E) {
19369
19417
  this.layout.add(this.showDataType(E), n.SPACE);
19370
19418
  }
19371
19419
  showKw(E) {
19372
- return KT(E.tokenType) ? yT(this.showNonTabularKw(E), this.cfg.indentStyle) : this.showNonTabularKw(E);
19420
+ return xT(E.tokenType) ? wT(this.showNonTabularKw(E), this.cfg.indentStyle) : this.showNonTabularKw(E);
19373
19421
  }
19374
19422
  // Like showKw(), but skips tabular formatting
19375
19423
  showNonTabularKw(E) {
@@ -19383,7 +19431,7 @@ class _E {
19383
19431
  }
19384
19432
  }
19385
19433
  showFunctionKw(E) {
19386
- return KT(E.tokenType) ? yT(this.showNonTabularFunctionKw(E), this.cfg.indentStyle) : this.showNonTabularFunctionKw(E);
19434
+ return xT(E.tokenType) ? wT(this.showNonTabularFunctionKw(E), this.cfg.indentStyle) : this.showNonTabularFunctionKw(E);
19387
19435
  }
19388
19436
  // Like showFunctionKw(), but skips tabular formatting
19389
19437
  showNonTabularFunctionKw(E) {
@@ -19440,11 +19488,11 @@ class LO {
19440
19488
  `.repeat(this.cfg.linesBetweenQueries + 1));
19441
19489
  }
19442
19490
  formatStatement(E) {
19443
- const R = new _E({
19491
+ const R = new rE({
19444
19492
  cfg: this.cfg,
19445
19493
  dialectCfg: this.dialect.formatOptions,
19446
19494
  params: this.params,
19447
- layout: new lR(new cR(gI(this.cfg)))
19495
+ layout: new mR(new FR(gI(this.cfg)))
19448
19496
  }).format(E.children);
19449
19497
  return E.hasSemicolon && (this.cfg.newlineBeforeSemicolon ? R.add(n.NEWLINE, ";") : R.add(n.NO_NEWLINE, ";")), R.toString();
19450
19498
  }
@@ -19483,7 +19531,7 @@ var iO = function(T, E) {
19483
19531
  E.indexOf(A[S]) < 0 && Object.prototype.propertyIsEnumerable.call(T, A[S]) && (R[A[S]] = T[A[S]]);
19484
19532
  return R;
19485
19533
  };
19486
- const uR = {
19534
+ const YR = {
19487
19535
  bigquery: "bigquery",
19488
19536
  db2: "db2",
19489
19537
  db2i: "db2i",
@@ -19504,7 +19552,7 @@ const uR = {
19504
19552
  tsql: "transactsql",
19505
19553
  singlestoredb: "singlestoredb",
19506
19554
  snowflake: "snowflake"
19507
- }, DO = Object.keys(uR), aO = {
19555
+ }, DO = Object.keys(YR), aO = {
19508
19556
  tabWidth: 2,
19509
19557
  useTabs: !1,
19510
19558
  keywordCase: "preserve",
@@ -19517,12 +19565,12 @@ const uR = {
19517
19565
  linesBetweenQueries: 1,
19518
19566
  denseOperators: !1,
19519
19567
  newlineBeforeSemicolon: !1
19520
- }, PO = (T, E = {}) => {
19568
+ }, oO = (T, E = {}) => {
19521
19569
  if (typeof E.language == "string" && !DO.includes(E.language))
19522
19570
  throw new sE(`Unsupported SQL dialect: ${E.language}`);
19523
- const R = uR[E.language || "sql"];
19524
- return oO(T, Object.assign(Object.assign({}, E), { dialect: uI[R] }));
19525
- }, oO = (T, E) => {
19571
+ const R = YR[E.language || "sql"];
19572
+ return PO(T, Object.assign(Object.assign({}, E), { dialect: uI[R] }));
19573
+ }, PO = (T, E) => {
19526
19574
  var { dialect: R } = E, A = iO(E, ["dialect"]);
19527
19575
  if (typeof T != "string")
19528
19576
  throw new Error("Invalid query argument. Expected string, instead got " + typeof T);
@@ -19601,12 +19649,12 @@ async function HO(T, E, R) {
19601
19649
  N = await R.generateSQL(t, T, E);
19602
19650
  }
19603
19651
  const s = Array.from(S).map((t) => {
19604
- var i, o;
19652
+ var i, P;
19605
19653
  return {
19606
19654
  cube: t,
19607
19655
  query: {
19608
19656
  measures: ((i = T.measures) == null ? void 0 : i.filter((M) => M.startsWith(t + "."))) || [],
19609
- dimensions: ((o = T.dimensions) == null ? void 0 : o.filter((M) => M.startsWith(t + "."))) || [],
19657
+ dimensions: ((P = T.dimensions) == null ? void 0 : P.filter((M) => M.startsWith(t + "."))) || [],
19610
19658
  filters: T.filters || [],
19611
19659
  timeDimensions: T.timeDimensions || [],
19612
19660
  order: T.order || {},
@@ -19660,9 +19708,9 @@ function BO(T, E, R) {
19660
19708
  slowQuery: !1
19661
19709
  };
19662
19710
  }
19663
- function $T(T, E) {
19711
+ function vT(T, E) {
19664
19712
  try {
19665
- return PO(T, {
19713
+ return oO(T, {
19666
19714
  language: {
19667
19715
  postgres: "postgresql",
19668
19716
  mysql: "mysql",
@@ -19702,7 +19750,7 @@ class cO {
19702
19750
  l(this, "metadataCache");
19703
19751
  l(this, "metadataCacheTimestamp");
19704
19752
  l(this, "METADATA_CACHE_TTL", 5 * 60 * 1e3);
19705
- E != null && E.databaseExecutor ? this.dbExecutor = E.databaseExecutor : E != null && E.drizzle && (this.dbExecutor = sT(
19753
+ E != null && E.databaseExecutor ? this.dbExecutor = E.databaseExecutor : E != null && E.drizzle && (this.dbExecutor = nT(
19706
19754
  E.drizzle,
19707
19755
  E.schema,
19708
19756
  E.engineType
@@ -19725,7 +19773,7 @@ class cO {
19725
19773
  * Set Drizzle instance and schema directly
19726
19774
  */
19727
19775
  setDrizzle(E, R, A) {
19728
- this.dbExecutor = sT(E, R, A);
19776
+ this.dbExecutor = nT(E, R, A);
19729
19777
  }
19730
19778
  /**
19731
19779
  * Check if database executor is configured
@@ -19763,7 +19811,7 @@ class cO {
19763
19811
  async execute(E, R) {
19764
19812
  if (!this.dbExecutor)
19765
19813
  throw new Error("Database executor not configured");
19766
- return new UE(this.dbExecutor).execute(this.cubes, E, R);
19814
+ return new HE(this.dbExecutor).execute(this.cubes, E, R);
19767
19815
  }
19768
19816
  /**
19769
19817
  * Execute a multi-cube query
@@ -19839,9 +19887,9 @@ class cO {
19839
19887
  throw new Error(`Cube '${E}' not found`);
19840
19888
  if (!this.dbExecutor)
19841
19889
  throw new Error("Database executor not configured");
19842
- const N = await new UE(this.dbExecutor).generateSQL(S, R, A), s = this.dbExecutor.getEngineType();
19890
+ const N = await new HE(this.dbExecutor).generateSQL(S, R, A), s = this.dbExecutor.getEngineType();
19843
19891
  return {
19844
- sql: $T(N.sql, s),
19892
+ sql: vT(N.sql, s),
19845
19893
  params: N.params
19846
19894
  };
19847
19895
  }
@@ -19851,9 +19899,9 @@ class cO {
19851
19899
  async generateMultiCubeSQL(E, R) {
19852
19900
  if (!this.dbExecutor)
19853
19901
  throw new Error("Database executor not configured");
19854
- const S = await new UE(this.dbExecutor).generateMultiCubeSQL(this.cubes, E, R), e = this.dbExecutor.getEngineType();
19902
+ const S = await new HE(this.dbExecutor).generateMultiCubeSQL(this.cubes, E, R), e = this.dbExecutor.getEngineType();
19855
19903
  return {
19856
- sql: $T(S.sql, e),
19904
+ sql: vT(S.sql, e),
19857
19905
  params: S.params
19858
19906
  };
19859
19907
  }
@@ -19894,10 +19942,10 @@ class cO {
19894
19942
  * Ensures all referenced cubes and fields exist
19895
19943
  */
19896
19944
  validateQuery(E) {
19897
- return HR(this.cubes, E);
19945
+ return pR(this.cubes, E);
19898
19946
  }
19899
19947
  }
19900
- function HR(T, E) {
19948
+ function pR(T, E) {
19901
19949
  const R = [], A = /* @__PURE__ */ new Set();
19902
19950
  if (E.measures)
19903
19951
  for (const S of E.measures) {
@@ -19946,17 +19994,17 @@ function HR(T, E) {
19946
19994
  }
19947
19995
  if (E.filters)
19948
19996
  for (const S of E.filters)
19949
- BR(S, T, R, A);
19997
+ dR(S, T, R, A);
19950
19998
  return A.size === 0 && R.push("Query must reference at least one cube through measures, dimensions, or filters"), {
19951
19999
  isValid: R.length === 0,
19952
20000
  errors: R
19953
20001
  };
19954
20002
  }
19955
- function BR(T, E, R, A) {
20003
+ function dR(T, E, R, A) {
19956
20004
  if ("and" in T || "or" in T) {
19957
20005
  const s = T.and || T.or || [];
19958
20006
  for (const _ of s)
19959
- BR(_, E, R, A);
20007
+ dR(_, E, R, A);
19960
20008
  return;
19961
20009
  }
19962
20010
  if (!("member" in T)) {