@uwdata/mosaic-sql 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/src/ast/list.d.ts +15 -0
  2. package/dist/src/ast/list.d.ts.map +1 -0
  3. package/dist/src/ast/list.js +21 -0
  4. package/dist/src/ast/list.js.map +1 -0
  5. package/dist/src/ast/query.d.ts +41 -1
  6. package/dist/src/ast/query.d.ts.map +1 -1
  7. package/dist/src/ast/query.js +57 -1
  8. package/dist/src/ast/query.js.map +1 -1
  9. package/dist/src/ast/unnest.d.ts +19 -0
  10. package/dist/src/ast/unnest.d.ts.map +1 -0
  11. package/dist/src/ast/unnest.js +29 -0
  12. package/dist/src/ast/unnest.js.map +1 -0
  13. package/dist/src/constants.d.ts +2 -0
  14. package/dist/src/constants.d.ts.map +1 -1
  15. package/dist/src/constants.js +2 -0
  16. package/dist/src/constants.js.map +1 -1
  17. package/dist/src/functions/list.d.ts +31 -0
  18. package/dist/src/functions/list.d.ts.map +1 -0
  19. package/dist/src/functions/list.js +49 -0
  20. package/dist/src/functions/list.js.map +1 -0
  21. package/dist/src/functions/unnest.d.ts +10 -0
  22. package/dist/src/functions/unnest.d.ts.map +1 -0
  23. package/dist/src/functions/unnest.js +12 -0
  24. package/dist/src/functions/unnest.js.map +1 -0
  25. package/dist/src/index.d.ts +4 -0
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +4 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/visit/recurse.d.ts.map +1 -1
  30. package/dist/src/visit/recurse.js +2 -1
  31. package/dist/src/visit/recurse.js.map +1 -1
  32. package/package.json +2 -2
  33. package/src/ast/list.ts +23 -0
  34. package/src/ast/query.ts +66 -2
  35. package/src/ast/unnest.ts +31 -0
  36. package/src/constants.ts +2 -0
  37. package/src/functions/list.ts +63 -0
  38. package/src/functions/unnest.ts +13 -0
  39. package/src/index.ts +4 -0
  40. package/src/visit/recurse.ts +2 -0
@@ -0,0 +1,15 @@
1
+ import { ExprNode } from './node.js';
2
+ export declare class ListNode extends ExprNode {
3
+ /** The array of values. */
4
+ readonly values: ExprNode[];
5
+ /**
6
+ * Instantiate a list node.
7
+ * @param values
8
+ */
9
+ constructor(values: ExprNode[]);
10
+ /**
11
+ * Generate a SQL query string for this node.
12
+ */
13
+ toString(): string;
14
+ }
15
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/ast/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,qBAAa,QAAS,SAAQ,QAAQ;IACpC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAE5B;;;OAGG;gBACS,MAAM,EAAE,QAAQ,EAAE;IAK9B;;OAEG;IACH,QAAQ;CAGT"}
@@ -0,0 +1,21 @@
1
+ import { LIST } from '../constants.js';
2
+ import { ExprNode } from './node.js';
3
+ export class ListNode extends ExprNode {
4
+ /** The array of values. */
5
+ values;
6
+ /**
7
+ * Instantiate a list node.
8
+ * @param values
9
+ */
10
+ constructor(values) {
11
+ super(LIST);
12
+ this.values = values;
13
+ }
14
+ /**
15
+ * Generate a SQL query string for this node.
16
+ */
17
+ toString() {
18
+ return `[${this.values.join(', ')}]`;
19
+ }
20
+ }
21
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/ast/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACpC,2BAA2B;IAClB,MAAM,CAAa;IAE5B;;;OAGG;IACH,YAAY,MAAkB;QAC5B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvC,CAAC;CACF"}
@@ -42,21 +42,41 @@ export declare class Query extends ExprNode {
42
42
  * @param queries The queries.
43
43
  */
44
44
  static union(...queries: MaybeArray<Query>[]): SetOperation;
45
+ /**
46
+ * Create a new UNION BY NAME set operation over the given queries.
47
+ * @param queries The queries.
48
+ */
49
+ static unionByName(...queries: MaybeArray<Query>[]): SetOperation;
45
50
  /**
46
51
  * Create a new UNION ALL set operation over the given queries.
47
52
  * @param queries The queries.
48
53
  */
49
54
  static unionAll(...queries: MaybeArray<Query>[]): SetOperation;
55
+ /**
56
+ * Create a new UNION ALL BY NAME set operation over the given queries.
57
+ * @param queries The queries.
58
+ */
59
+ static unionAllByName(...queries: MaybeArray<Query>[]): SetOperation;
50
60
  /**
51
61
  * Create a new INTERSECT set operation over the given queries.
52
62
  * @param queries The queries.
53
63
  */
54
64
  static intersect(...queries: MaybeArray<Query>[]): SetOperation;
65
+ /**
66
+ * Create a new INTERSECT ALL set operation over the given queries.
67
+ * @param queries The queries.
68
+ */
69
+ static intersectAll(...queries: MaybeArray<Query>[]): SetOperation;
55
70
  /**
56
71
  * Create a new EXCEPT set operation over the given queries.
57
72
  * @param queries The queries.
58
73
  */
59
74
  static except(...queries: MaybeArray<Query>[]): SetOperation;
75
+ /**
76
+ * Create a new EXCEPT ALL set operation over the given queries.
77
+ * @param queries The queries.
78
+ */
79
+ static exceptAll(...queries: MaybeArray<Query>[]): SetOperation;
60
80
  /**
61
81
  * Create a new describe query for the given input query.
62
82
  * @param query The query to describe.
@@ -165,7 +185,7 @@ export declare class SelectQuery extends Query {
165
185
  * @param method The sampling method to use.
166
186
  * @param seed The random seed.
167
187
  */
168
- sample(value: number | SampleClauseNode, method?: SampleMethod, seed?: number): this;
188
+ sample(value?: number | SampleClauseNode | null, method?: SampleMethod, seed?: number): this;
169
189
  /**
170
190
  * Add WHERE expressions.
171
191
  * @param expr Expressions to add.
@@ -274,21 +294,41 @@ declare class WithClause {
274
294
  * @param queries The queries.
275
295
  */
276
296
  union(...queries: Query[]): SetOperation;
297
+ /**
298
+ * Create a new UNION BY NAME set operation over the given queries.
299
+ * @param queries The queries.
300
+ */
301
+ unionByName(...queries: Query[]): SetOperation;
277
302
  /**
278
303
  * Create a new UNION ALL set operation over the given queries.
279
304
  * @param queries The queries.
280
305
  */
281
306
  unionAll(...queries: Query[]): SetOperation;
307
+ /**
308
+ * Create a new UNION ALL BY NAME set operation over the given queries.
309
+ * @param queries The queries.
310
+ */
311
+ unionAllByName(...queries: Query[]): SetOperation;
282
312
  /**
283
313
  * Create a new INTERSECT set operation over the given queries.
284
314
  * @param queries The queries.
285
315
  */
286
316
  intersect(...queries: Query[]): SetOperation;
317
+ /**
318
+ * Create a new INTERSECT ALL set operation over the given queries.
319
+ * @param queries The queries.
320
+ */
321
+ intersectAll(...queries: Query[]): SetOperation;
287
322
  /**
288
323
  * Create a new EXCEPT set operation over the given queries.
289
324
  * @param queries The queries.
290
325
  */
291
326
  except(...queries: Query[]): SetOperation;
327
+ /**
328
+ * Create a new EXCEPT ALL set operation over the given queries.
329
+ * @param queries The queries.
330
+ */
331
+ exceptAll(...queries: Query[]): SetOperation;
292
332
  }
293
333
  export {};
294
334
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/ast/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/ast/query.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,13 @@ export class Query extends ExprNode {
61
61
  static union(...queries) {
62
62
  return new SetOperation('UNION', queries.flat());
63
63
  }
64
+ /**
65
+ * Create a new UNION BY NAME set operation over the given queries.
66
+ * @param queries The queries.
67
+ */
68
+ static unionByName(...queries) {
69
+ return new SetOperation('UNION BY NAME', queries.flat());
70
+ }
64
71
  /**
65
72
  * Create a new UNION ALL set operation over the given queries.
66
73
  * @param queries The queries.
@@ -68,6 +75,13 @@ export class Query extends ExprNode {
68
75
  static unionAll(...queries) {
69
76
  return new SetOperation('UNION ALL', queries.flat());
70
77
  }
78
+ /**
79
+ * Create a new UNION ALL BY NAME set operation over the given queries.
80
+ * @param queries The queries.
81
+ */
82
+ static unionAllByName(...queries) {
83
+ return new SetOperation('UNION ALL BY NAME', queries.flat());
84
+ }
71
85
  /**
72
86
  * Create a new INTERSECT set operation over the given queries.
73
87
  * @param queries The queries.
@@ -75,6 +89,13 @@ export class Query extends ExprNode {
75
89
  static intersect(...queries) {
76
90
  return new SetOperation('INTERSECT', queries.flat());
77
91
  }
92
+ /**
93
+ * Create a new INTERSECT ALL set operation over the given queries.
94
+ * @param queries The queries.
95
+ */
96
+ static intersectAll(...queries) {
97
+ return new SetOperation('INTERSECT ALL', queries.flat());
98
+ }
78
99
  /**
79
100
  * Create a new EXCEPT set operation over the given queries.
80
101
  * @param queries The queries.
@@ -82,6 +103,13 @@ export class Query extends ExprNode {
82
103
  static except(...queries) {
83
104
  return new SetOperation('EXCEPT', queries.flat());
84
105
  }
106
+ /**
107
+ * Create a new EXCEPT ALL set operation over the given queries.
108
+ * @param queries The queries.
109
+ */
110
+ static exceptAll(...queries) {
111
+ return new SetOperation('EXCEPT ALL', queries.flat());
112
+ }
85
113
  /**
86
114
  * Create a new describe query for the given input query.
87
115
  * @param query The query to describe.
@@ -322,7 +350,7 @@ export class SelectQuery extends Query {
322
350
  else {
323
351
  clause = value;
324
352
  }
325
- this._sample = clause;
353
+ this._sample = clause ?? undefined;
326
354
  return this;
327
355
  }
328
356
  /**
@@ -559,6 +587,13 @@ class WithClause {
559
587
  union(...queries) {
560
588
  return Query.union(...queries).with(...this._with);
561
589
  }
590
+ /**
591
+ * Create a new UNION BY NAME set operation over the given queries.
592
+ * @param queries The queries.
593
+ */
594
+ unionByName(...queries) {
595
+ return Query.unionByName(...queries).with(...this._with);
596
+ }
562
597
  /**
563
598
  * Create a new UNION ALL set operation over the given queries.
564
599
  * @param queries The queries.
@@ -566,6 +601,13 @@ class WithClause {
566
601
  unionAll(...queries) {
567
602
  return Query.unionAll(...queries).with(...this._with);
568
603
  }
604
+ /**
605
+ * Create a new UNION ALL BY NAME set operation over the given queries.
606
+ * @param queries The queries.
607
+ */
608
+ unionAllByName(...queries) {
609
+ return Query.unionAllByName(...queries).with(...this._with);
610
+ }
569
611
  /**
570
612
  * Create a new INTERSECT set operation over the given queries.
571
613
  * @param queries The queries.
@@ -573,6 +615,13 @@ class WithClause {
573
615
  intersect(...queries) {
574
616
  return Query.intersect(...queries).with(...this._with);
575
617
  }
618
+ /**
619
+ * Create a new INTERSECT ALL set operation over the given queries.
620
+ * @param queries The queries.
621
+ */
622
+ intersectAll(...queries) {
623
+ return Query.intersectAll(...queries).with(...this._with);
624
+ }
576
625
  /**
577
626
  * Create a new EXCEPT set operation over the given queries.
578
627
  * @param queries The queries.
@@ -580,5 +629,12 @@ class WithClause {
580
629
  except(...queries) {
581
630
  return Query.except(...queries).with(...this._with);
582
631
  }
632
+ /**
633
+ * Create a new EXCEPT ALL set operation over the given queries.
634
+ * @param queries The queries.
635
+ */
636
+ exceptAll(...queries) {
637
+ return Query.exceptAll(...queries).with(...this._with);
638
+ }
583
639
  }
584
640
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/ast/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/ast/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { ExprNode } from './node.js';
2
+ export declare class UnnestNode extends ExprNode {
3
+ /** An expression that resolves to a list or a struct */
4
+ readonly expr: ExprNode;
5
+ readonly recursive: boolean;
6
+ readonly maxDepth: number;
7
+ /**
8
+ * Instantiate an Unnest node.
9
+ * @param expr
10
+ * @param recursive
11
+ * @param maxDepth
12
+ */
13
+ constructor(expr: ExprNode, recursive?: boolean, maxDepth?: number);
14
+ /**
15
+ * Generate a SQL query string for this node.
16
+ */
17
+ toString(): string;
18
+ }
19
+ //# sourceMappingURL=unnest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unnest.d.ts","sourceRoot":"","sources":["../../../src/ast/unnest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,qBAAa,UAAW,SAAQ,QAAQ;IACtC,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;gBACS,IAAI,EAAE,QAAQ,EAAE,SAAS,UAAQ,EAAE,QAAQ,SAAI;IAO3D;;OAEG;IACH,QAAQ;CAKT"}
@@ -0,0 +1,29 @@
1
+ import { UNNEST } from '../constants.js';
2
+ import { ExprNode } from './node.js';
3
+ export class UnnestNode extends ExprNode {
4
+ /** An expression that resolves to a list or a struct */
5
+ expr;
6
+ recursive;
7
+ maxDepth;
8
+ /**
9
+ * Instantiate an Unnest node.
10
+ * @param expr
11
+ * @param recursive
12
+ * @param maxDepth
13
+ */
14
+ constructor(expr, recursive = false, maxDepth = 0) {
15
+ super(UNNEST);
16
+ this.expr = expr;
17
+ this.recursive = recursive;
18
+ this.maxDepth = maxDepth;
19
+ }
20
+ /**
21
+ * Generate a SQL query string for this node.
22
+ */
23
+ toString() {
24
+ const recursive = this.recursive ? ', recursive := true' : '';
25
+ const maxDepth = this.maxDepth > 0 ? `, max_depth := ${this.maxDepth}` : '';
26
+ return `UNNEST(${this.expr}${recursive}${maxDepth})`;
27
+ }
28
+ }
29
+ //# sourceMappingURL=unnest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unnest.js","sourceRoot":"","sources":["../../../src/ast/unnest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,wDAAwD;IAC/C,IAAI,CAAW;IACf,SAAS,CAAU;IACnB,QAAQ,CAAS;IAE1B;;;;;OAKG;IACH,YAAY,IAAc,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,CAAC;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,UAAU,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC;IACvD,CAAC;CACF"}
@@ -3,6 +3,8 @@ export declare const COLUMN_PARAM = "COLUMN_PARAM";
3
3
  export declare const TABLE_REF = "TABLE_REF";
4
4
  export declare const LITERAL = "LITERAL";
5
5
  export declare const INTERVAL = "INTERVAL";
6
+ export declare const LIST = "LIST";
7
+ export declare const UNNEST = "UNNEST";
6
8
  export declare const ORDER_BY = "ORDER_BY";
7
9
  export declare const CAST = "CAST";
8
10
  export declare const CASE = "CASE";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,eAAe,oBAAoB,CAAC"}
@@ -3,6 +3,8 @@ export const COLUMN_PARAM = 'COLUMN_PARAM';
3
3
  export const TABLE_REF = 'TABLE_REF';
4
4
  export const LITERAL = 'LITERAL';
5
5
  export const INTERVAL = 'INTERVAL';
6
+ export const LIST = 'LIST';
7
+ export const UNNEST = 'UNNEST';
6
8
  export const ORDER_BY = 'ORDER_BY';
7
9
  export const CAST = 'CAST';
8
10
  export const CASE = 'CASE';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAE7B,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAE7B,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { ExprValue } from "../types.js";
2
+ import { ListNode } from "../ast/list.js";
3
+ /**
4
+ * Create a List containing the argument values.
5
+ * @param values
6
+ */
7
+ export declare function list(values: ExprValue[]): ListNode;
8
+ /**
9
+ * Function that returns true if the list contains the element,
10
+ * false otherwise. If the first argument is a string, it is
11
+ * interpreted as a column reference, otherwise it is coerced
12
+ * to a list.
13
+ * @param list1
14
+ * @param element
15
+ */
16
+ export declare function listContains(list1: ExprValue | ExprValue[], element: ExprValue): import("../index.js").FunctionNode;
17
+ /**
18
+ * Function that returns true if all elements of list2 exist in list1,
19
+ * false otherwise.
20
+ * @param list1
21
+ * @param list2
22
+ */
23
+ export declare function listHasAll(list1: ExprValue | ExprValue[], list2: ExprValue | ExprValue[]): import("../index.js").FunctionNode;
24
+ /**
25
+ * Function that returns true if any elements exist in both lists,
26
+ * false otherwise.
27
+ * @param list1
28
+ * @param list2
29
+ */
30
+ export declare function listHasAny(list1: ExprValue | ExprValue[], list2: ExprValue | ExprValue[]): import("../index.js").FunctionNode;
31
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/functions/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,YAEvC;AAYD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,EAC9B,OAAO,EAAE,SAAS,sCAGnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,EAC9B,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,sCAG/B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,EAC9B,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,sCAG/B"}
@@ -0,0 +1,49 @@
1
+ import { asLiteral, asNode } from "../util/ast.js";
2
+ import { argsList, fn } from "../util/function.js";
3
+ import { ListNode } from "../ast/list.js";
4
+ /**
5
+ * Create a List containing the argument values.
6
+ * @param values
7
+ */
8
+ export function list(values) {
9
+ return new ListNode(argsList(values).map(asLiteral));
10
+ }
11
+ /**
12
+ * Convert a single value or an array of values to either a ListNode if the input
13
+ * is an array, or a single ExprNode if it is a single value. A single string will
14
+ * be interpreted as a column reference.
15
+ * @param values
16
+ */
17
+ function asList(values) {
18
+ return Array.isArray(values) ? list(values) : asNode(values);
19
+ }
20
+ /**
21
+ * Function that returns true if the list contains the element,
22
+ * false otherwise. If the first argument is a string, it is
23
+ * interpreted as a column reference, otherwise it is coerced
24
+ * to a list.
25
+ * @param list1
26
+ * @param element
27
+ */
28
+ export function listContains(list1, element) {
29
+ return fn("list_contains", asList(list1), asLiteral(element));
30
+ }
31
+ /**
32
+ * Function that returns true if all elements of list2 exist in list1,
33
+ * false otherwise.
34
+ * @param list1
35
+ * @param list2
36
+ */
37
+ export function listHasAll(list1, list2) {
38
+ return fn("list_has_all", asList(list1), asList(list2));
39
+ }
40
+ /**
41
+ * Function that returns true if any elements exist in both lists,
42
+ * false otherwise.
43
+ * @param list1
44
+ * @param list2
45
+ */
46
+ export function listHasAny(list1, list2) {
47
+ return fn("list_has_any", asList(list1), asList(list2));
48
+ }
49
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/functions/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,MAAmB;IACtC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAS,MAAM,CAAC,MAA+B;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,KAA8B,EAC9B,OAAkB;IAElB,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,KAA8B,EAC9B,KAA8B;IAE9B,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,KAA8B,EAC9B,KAA8B;IAE9B,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ExprValue } from "../types.js";
2
+ import { UnnestNode } from "../ast/unnest.js";
3
+ /**
4
+ * Create an Unnest Node to flatten nested structures, either structs or lists.
5
+ * @param value
6
+ * @param recursive
7
+ * @param maxDepth
8
+ */
9
+ export declare function unnest(value: ExprValue, recursive?: boolean, maxDepth?: number): UnnestNode;
10
+ //# sourceMappingURL=unnest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unnest.d.ts","sourceRoot":"","sources":["../../../src/functions/unnest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,UAAQ,EAAE,QAAQ,SAAI,cAEvE"}
@@ -0,0 +1,12 @@
1
+ import { asNode } from "../util/ast.js";
2
+ import { UnnestNode } from "../ast/unnest.js";
3
+ /**
4
+ * Create an Unnest Node to flatten nested structures, either structs or lists.
5
+ * @param value
6
+ * @param recursive
7
+ * @param maxDepth
8
+ */
9
+ export function unnest(value, recursive = false, maxDepth = 0) {
10
+ return new UnnestNode(asNode(value), recursive, maxDepth);
11
+ }
12
+ //# sourceMappingURL=unnest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unnest.js","sourceRoot":"","sources":["../../../src/functions/unnest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,KAAgB,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,CAAC;IACtE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC"}
@@ -11,6 +11,7 @@ export { FromClauseNode } from './ast/from.js';
11
11
  export { FunctionNode } from './ast/function.js';
12
12
  export { InOpNode } from './ast/in-op.js';
13
13
  export { IntervalNode } from './ast/interval.js';
14
+ export { ListNode } from './ast/list.js';
14
15
  export { LiteralNode } from './ast/literal.js';
15
16
  export { AndNode, OrNode } from './ast/logical-op.js';
16
17
  export { SQLNode, ExprNode, isNode } from './ast/node.js';
@@ -22,6 +23,7 @@ export { ScalarSubqueryNode } from './ast/subquery.js';
22
23
  export { SelectClauseNode } from './ast/select.js';
23
24
  export { TableRefNode, isTableRef } from './ast/table-ref.js';
24
25
  export { UnaryOpNode, UnaryPostfixOpNode } from './ast/unary-op.js';
26
+ export { UnnestNode } from './ast/unnest.js';
25
27
  export { VerbatimNode } from './ast/verbatim.js';
26
28
  export { WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowNode } from './ast/window.js';
27
29
  export { WindowFrameNode, WindowFrameExprNode, type FrameExclude, type FrameExtent, type FrameScope, type FrameType, type FrameValue } from './ast/window-frame.js';
@@ -34,6 +36,7 @@ export { column } from './functions/column.js';
34
36
  export { cte } from './functions/cte.js';
35
37
  export { dateBin, dateMonth, dateMonthDay, dateDay, epoch_ms } from './functions/datetime.js';
36
38
  export { days, hours, interval, microseconds, minutes, milliseconds, months, seconds, years } from './functions/interval.js';
39
+ export { list, listContains, listHasAll, listHasAny } from './functions/list.js';
37
40
  export { literal, verbatim } from './functions/literal.js';
38
41
  export { abs, ceil, exp, floor, greatest, isFinite, isInfinite, isNaN, least, ln, log, round, sign, sqrt, trunc } from './functions/numeric.js';
39
42
  export { and, or, not, isNull, isNotNull, bitNot, bitAnd, bitOr, bitLeft, bitRight, add, sub, mul, div, idiv, mod, pow, eq, neq, lt, gt, lte, gte, isDistinct, isNotDistinct, isBetween, isNotBetween, isIn } from './functions/operators.js';
@@ -41,6 +44,7 @@ export { asc, desc } from './functions/order-by.js';
41
44
  export { geojson, x, y, centroid, centroidX, centroidY } from './functions/spatial.js';
42
45
  export { sql } from './functions/sql-template-tag.js';
43
46
  export { regexp_matches, contains, prefix, suffix, lower, upper, length } from './functions/string.js';
47
+ export { unnest } from './functions/unnest.js';
44
48
  export { coalesce } from './functions/util.js';
45
49
  export { cume_dist, dense_rank, first_value, lag, last_value, lead, nth_value, ntile, percent_rank, rank, row_number } from './functions/window.js';
46
50
  export { currentRow, following, frameGroups, frameRange, frameRows, preceding } from './functions/window-frame.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -11,6 +11,7 @@ export { FromClauseNode } from './ast/from.js';
11
11
  export { FunctionNode } from './ast/function.js';
12
12
  export { InOpNode } from './ast/in-op.js';
13
13
  export { IntervalNode } from './ast/interval.js';
14
+ export { ListNode } from './ast/list.js';
14
15
  export { LiteralNode } from './ast/literal.js';
15
16
  export { AndNode, OrNode } from './ast/logical-op.js';
16
17
  export { SQLNode, ExprNode, isNode } from './ast/node.js';
@@ -22,6 +23,7 @@ export { ScalarSubqueryNode } from './ast/subquery.js';
22
23
  export { SelectClauseNode } from './ast/select.js';
23
24
  export { TableRefNode, isTableRef } from './ast/table-ref.js';
24
25
  export { UnaryOpNode, UnaryPostfixOpNode } from './ast/unary-op.js';
26
+ export { UnnestNode } from './ast/unnest.js';
25
27
  export { VerbatimNode } from './ast/verbatim.js';
26
28
  export { WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowNode } from './ast/window.js';
27
29
  export { WindowFrameNode, WindowFrameExprNode } from './ast/window-frame.js';
@@ -34,6 +36,7 @@ export { column } from './functions/column.js';
34
36
  export { cte } from './functions/cte.js';
35
37
  export { dateBin, dateMonth, dateMonthDay, dateDay, epoch_ms } from './functions/datetime.js';
36
38
  export { days, hours, interval, microseconds, minutes, milliseconds, months, seconds, years } from './functions/interval.js';
39
+ export { list, listContains, listHasAll, listHasAny } from './functions/list.js';
37
40
  export { literal, verbatim } from './functions/literal.js';
38
41
  export { abs, ceil, exp, floor, greatest, isFinite, isInfinite, isNaN, least, ln, log, round, sign, sqrt, trunc } from './functions/numeric.js';
39
42
  export { and, or, not, isNull, isNotNull, bitNot, bitAnd, bitOr, bitLeft, bitRight, add, sub, mul, div, idiv, mod, pow, eq, neq, lt, gt, lte, gte, isDistinct, isNotDistinct, isBetween, isNotBetween, isIn } from './functions/operators.js';
@@ -41,6 +44,7 @@ export { asc, desc } from './functions/order-by.js';
41
44
  export { geojson, x, y, centroid, centroidX, centroidY } from './functions/spatial.js';
42
45
  export { sql } from './functions/sql-template-tag.js';
43
46
  export { regexp_matches, contains, prefix, suffix, lower, upper, length } from './functions/string.js';
47
+ export { unnest } from './functions/unnest.js';
44
48
  export { coalesce } from './functions/util.js';
45
49
  export { cume_dist, dense_rank, first_value, lag, last_value, lead, nth_value, ntile, percent_rank, rank, row_number } from './functions/window.js';
46
50
  export { currentRow, following, frameGroups, frameRange, frameRows, preceding } from './functions/window-frame.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1H,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAyF,MAAM,uBAAuB,CAAC;AACpK,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAChW,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC7H,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAChJ,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC9O,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpJ,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAEnH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,IAAI,EAA4C,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAwF,MAAM,wBAAwB,CAAC;AAE9I,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAmB,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAiB,MAAM,oCAAoC,CAAC;AAEjF,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recurse.d.ts","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAiC5C,CAAC"}
1
+ {"version":3,"file":"recurse.d.ts","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAkC5C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AGGREGATE, BETWEEN_OPERATOR, BINARY_OPERATOR, CASE, CAST, COLLATE, COLUMN_PARAM, COLUMN_REF, DESCRIBE_QUERY, EXPRESSION, FRAGMENT, FROM_CLAUSE, FUNCTION, IN_OPERATOR, LOGICAL_OPERATOR, NOT_BETWEEN_OPERATOR, ORDER_BY, PARAM, SCALAR_SUBQUERY, SELECT_CLAUSE, SELECT_QUERY, SET_OPERATION, UNARY_OPERATOR, UNARY_POSTFIX_OPERATOR, WHEN, WINDOW, WINDOW_CLAUSE, WINDOW_DEF, WINDOW_EXTENT_EXPR, WINDOW_FRAME, WINDOW_FUNCTION, WITH_CLAUSE } from '../constants.js';
1
+ import { AGGREGATE, BETWEEN_OPERATOR, BINARY_OPERATOR, CASE, CAST, COLLATE, COLUMN_PARAM, COLUMN_REF, DESCRIBE_QUERY, EXPRESSION, FRAGMENT, FROM_CLAUSE, FUNCTION, IN_OPERATOR, LOGICAL_OPERATOR, NOT_BETWEEN_OPERATOR, ORDER_BY, PARAM, SCALAR_SUBQUERY, SELECT_CLAUSE, SELECT_QUERY, SET_OPERATION, UNARY_OPERATOR, UNARY_POSTFIX_OPERATOR, UNNEST, WHEN, WINDOW, WINDOW_CLAUSE, WINDOW_DEF, WINDOW_EXTENT_EXPR, WINDOW_FRAME, WINDOW_FUNCTION, WITH_CLAUSE } from '../constants.js';
2
2
  export const recurse = {
3
3
  [AGGREGATE]: ['args', 'order', 'filter'],
4
4
  [BETWEEN_OPERATOR]: ['expr', 'extent'],
@@ -24,6 +24,7 @@ export const recurse = {
24
24
  [SET_OPERATION]: ['queries', '_orderby'],
25
25
  [UNARY_OPERATOR]: ['expr'],
26
26
  [UNARY_POSTFIX_OPERATOR]: ['expr'],
27
+ [UNNEST]: ['expr'],
27
28
  [WHEN]: ['when', 'then'],
28
29
  [WINDOW]: ['func', 'def'],
29
30
  [WINDOW_CLAUSE]: ['def'],
@@ -1 +1 @@
1
- {"version":3,"file":"recurse.js","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,KAAK,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,IAAI,EACJ,MAAM,EACN,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IACxC,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACtC,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACpC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IAChB,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;IACnB,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC;IACvB,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC;IAC3B,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC;IACtB,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;IACrB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;IACvB,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;IACpB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACjC,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC;IAC/B,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1C,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;IACpB,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;IAClB,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC;IAC/B,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC;IACzB,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;IAC5H,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IACxC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC;IAC1B,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,CAAC;IAClC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACzB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC;IAChD,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC;IAC9B,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC;IAC1B,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC;IAC3B,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"recurse.js","sourceRoot":"","sources":["../../../src/visit/recurse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uwdata/mosaic-sql",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "SQL query construction and analysis.",
5
5
  "keywords": [
6
6
  "sql",
@@ -29,5 +29,5 @@
29
29
  "test": "vitest run",
30
30
  "prepublishOnly": "npm run test && npm run lint && tsc --build"
31
31
  },
32
- "gitHead": "dfb9ded0b0307754e3185ca34cc49a1384fe8455"
32
+ "gitHead": "0ba4f2d710ca2fa53da7ff02a370e39a32dc2ce4"
33
33
  }
@@ -0,0 +1,23 @@
1
+ import { LIST } from '../constants.js';
2
+ import { ExprNode } from './node.js';
3
+
4
+ export class ListNode extends ExprNode {
5
+ /** The array of values. */
6
+ readonly values: ExprNode[];
7
+
8
+ /**
9
+ * Instantiate a list node.
10
+ * @param values
11
+ */
12
+ constructor(values: ExprNode[]) {
13
+ super(LIST);
14
+ this.values = values;
15
+ }
16
+
17
+ /**
18
+ * Generate a SQL query string for this node.
19
+ */
20
+ toString() {
21
+ return `[${this.values.join(', ')}]`;
22
+ }
23
+ }
package/src/ast/query.ts CHANGED
@@ -71,6 +71,14 @@ export class Query extends ExprNode {
71
71
  return new SetOperation('UNION', queries.flat());
72
72
  }
73
73
 
74
+ /**
75
+ * Create a new UNION BY NAME set operation over the given queries.
76
+ * @param queries The queries.
77
+ */
78
+ static unionByName(...queries: MaybeArray<Query>[]) {
79
+ return new SetOperation('UNION BY NAME', queries.flat());
80
+ }
81
+
74
82
  /**
75
83
  * Create a new UNION ALL set operation over the given queries.
76
84
  * @param queries The queries.
@@ -79,6 +87,14 @@ export class Query extends ExprNode {
79
87
  return new SetOperation('UNION ALL', queries.flat());
80
88
  }
81
89
 
90
+ /**
91
+ * Create a new UNION ALL BY NAME set operation over the given queries.
92
+ * @param queries The queries.
93
+ */
94
+ static unionAllByName(...queries: MaybeArray<Query>[]) {
95
+ return new SetOperation('UNION ALL BY NAME', queries.flat());
96
+ }
97
+
82
98
  /**
83
99
  * Create a new INTERSECT set operation over the given queries.
84
100
  * @param queries The queries.
@@ -87,6 +103,14 @@ export class Query extends ExprNode {
87
103
  return new SetOperation('INTERSECT', queries.flat());
88
104
  }
89
105
 
106
+ /**
107
+ * Create a new INTERSECT ALL set operation over the given queries.
108
+ * @param queries The queries.
109
+ */
110
+ static intersectAll(...queries: MaybeArray<Query>[]) {
111
+ return new SetOperation('INTERSECT ALL', queries.flat());
112
+ }
113
+
90
114
  /**
91
115
  * Create a new EXCEPT set operation over the given queries.
92
116
  * @param queries The queries.
@@ -95,6 +119,14 @@ export class Query extends ExprNode {
95
119
  return new SetOperation('EXCEPT', queries.flat());
96
120
  }
97
121
 
122
+ /**
123
+ * Create a new EXCEPT ALL set operation over the given queries.
124
+ * @param queries The queries.
125
+ */
126
+ static exceptAll(...queries: MaybeArray<Query>[]) {
127
+ return new SetOperation('EXCEPT ALL', queries.flat());
128
+ }
129
+
98
130
  /**
99
131
  * Create a new describe query for the given input query.
100
132
  * @param query The query to describe.
@@ -334,7 +366,7 @@ export class SelectQuery extends Query {
334
366
  * @param seed The random seed.
335
367
  */
336
368
  sample(
337
- value: number | SampleClauseNode,
369
+ value?: number | SampleClauseNode | null,
338
370
  method?: SampleMethod,
339
371
  seed?: number
340
372
  ): this {
@@ -346,7 +378,7 @@ export class SelectQuery extends Query {
346
378
  } else {
347
379
  clause = value;
348
380
  }
349
- this._sample = clause;
381
+ this._sample = clause ?? undefined;
350
382
  return this;
351
383
  }
352
384
 
@@ -613,6 +645,14 @@ class WithClause {
613
645
  return Query.union(...queries).with(...this._with);
614
646
  }
615
647
 
648
+ /**
649
+ * Create a new UNION BY NAME set operation over the given queries.
650
+ * @param queries The queries.
651
+ */
652
+ unionByName(...queries: Query[]) {
653
+ return Query.unionByName(...queries).with(...this._with);
654
+ }
655
+
616
656
  /**
617
657
  * Create a new UNION ALL set operation over the given queries.
618
658
  * @param queries The queries.
@@ -621,6 +661,14 @@ class WithClause {
621
661
  return Query.unionAll(...queries).with(...this._with);
622
662
  }
623
663
 
664
+ /**
665
+ * Create a new UNION ALL BY NAME set operation over the given queries.
666
+ * @param queries The queries.
667
+ */
668
+ unionAllByName(...queries: Query[]) {
669
+ return Query.unionAllByName(...queries).with(...this._with);
670
+ }
671
+
624
672
  /**
625
673
  * Create a new INTERSECT set operation over the given queries.
626
674
  * @param queries The queries.
@@ -629,6 +677,14 @@ class WithClause {
629
677
  return Query.intersect(...queries).with(...this._with);
630
678
  }
631
679
 
680
+ /**
681
+ * Create a new INTERSECT ALL set operation over the given queries.
682
+ * @param queries The queries.
683
+ */
684
+ intersectAll(...queries: Query[]) {
685
+ return Query.intersectAll(...queries).with(...this._with);
686
+ }
687
+
632
688
  /**
633
689
  * Create a new EXCEPT set operation over the given queries.
634
690
  * @param queries The queries.
@@ -636,4 +692,12 @@ class WithClause {
636
692
  except(...queries: Query[]) {
637
693
  return Query.except(...queries).with(...this._with);
638
694
  }
695
+
696
+ /**
697
+ * Create a new EXCEPT ALL set operation over the given queries.
698
+ * @param queries The queries.
699
+ */
700
+ exceptAll(...queries: Query[]) {
701
+ return Query.exceptAll(...queries).with(...this._with);
702
+ }
639
703
  }
@@ -0,0 +1,31 @@
1
+ import { UNNEST } from '../constants.js';
2
+ import { ExprNode } from './node.js';
3
+
4
+ export class UnnestNode extends ExprNode {
5
+ /** An expression that resolves to a list or a struct */
6
+ readonly expr: ExprNode;
7
+ readonly recursive: boolean;
8
+ readonly maxDepth: number;
9
+
10
+ /**
11
+ * Instantiate an Unnest node.
12
+ * @param expr
13
+ * @param recursive
14
+ * @param maxDepth
15
+ */
16
+ constructor(expr: ExprNode, recursive = false, maxDepth = 0) {
17
+ super(UNNEST);
18
+ this.expr = expr;
19
+ this.recursive = recursive;
20
+ this.maxDepth = maxDepth;
21
+ }
22
+
23
+ /**
24
+ * Generate a SQL query string for this node.
25
+ */
26
+ toString() {
27
+ const recursive = this.recursive ? ', recursive := true' : '';
28
+ const maxDepth = this.maxDepth > 0 ? `, max_depth := ${this.maxDepth}` : '';
29
+ return `UNNEST(${this.expr}${recursive}${maxDepth})`;
30
+ }
31
+ }
package/src/constants.ts CHANGED
@@ -3,6 +3,8 @@ export const COLUMN_PARAM = 'COLUMN_PARAM';
3
3
  export const TABLE_REF = 'TABLE_REF';
4
4
  export const LITERAL = 'LITERAL';
5
5
  export const INTERVAL = 'INTERVAL';
6
+ export const LIST = 'LIST';
7
+ export const UNNEST = 'UNNEST';
6
8
 
7
9
  export const ORDER_BY = 'ORDER_BY';
8
10
  export const CAST = 'CAST';
@@ -0,0 +1,63 @@
1
+ import type { ExprValue } from "../types.js";
2
+ import { asLiteral, asNode } from "../util/ast.js";
3
+ import { argsList, fn } from "../util/function.js";
4
+ import { ListNode } from "../ast/list.js";
5
+
6
+ /**
7
+ * Create a List containing the argument values.
8
+ * @param values
9
+ */
10
+ export function list(values: ExprValue[]) {
11
+ return new ListNode(argsList(values).map(asLiteral));
12
+ }
13
+
14
+ /**
15
+ * Convert a single value or an array of values to either a ListNode if the input
16
+ * is an array, or a single ExprNode if it is a single value. A single string will
17
+ * be interpreted as a column reference.
18
+ * @param values
19
+ */
20
+ function asList(values: ExprValue | ExprValue[]) {
21
+ return Array.isArray(values) ? list(values) : asNode(values);
22
+ }
23
+
24
+ /**
25
+ * Function that returns true if the list contains the element,
26
+ * false otherwise. If the first argument is a string, it is
27
+ * interpreted as a column reference, otherwise it is coerced
28
+ * to a list.
29
+ * @param list1
30
+ * @param element
31
+ */
32
+ export function listContains(
33
+ list1: ExprValue | ExprValue[],
34
+ element: ExprValue,
35
+ ) {
36
+ return fn("list_contains", asList(list1), asLiteral(element));
37
+ }
38
+
39
+ /**
40
+ * Function that returns true if all elements of list2 exist in list1,
41
+ * false otherwise.
42
+ * @param list1
43
+ * @param list2
44
+ */
45
+ export function listHasAll(
46
+ list1: ExprValue | ExprValue[],
47
+ list2: ExprValue | ExprValue[],
48
+ ) {
49
+ return fn("list_has_all", asList(list1), asList(list2));
50
+ }
51
+
52
+ /**
53
+ * Function that returns true if any elements exist in both lists,
54
+ * false otherwise.
55
+ * @param list1
56
+ * @param list2
57
+ */
58
+ export function listHasAny(
59
+ list1: ExprValue | ExprValue[],
60
+ list2: ExprValue | ExprValue[],
61
+ ) {
62
+ return fn("list_has_any", asList(list1), asList(list2));
63
+ }
@@ -0,0 +1,13 @@
1
+ import type { ExprValue } from "../types.js";
2
+ import { asNode } from "../util/ast.js";
3
+ import { UnnestNode } from "../ast/unnest.js";
4
+
5
+ /**
6
+ * Create an Unnest Node to flatten nested structures, either structs or lists.
7
+ * @param value
8
+ * @param recursive
9
+ * @param maxDepth
10
+ */
11
+ export function unnest(value: ExprValue, recursive = false, maxDepth = 0) {
12
+ return new UnnestNode(asNode(value), recursive, maxDepth);
13
+ }
package/src/index.ts CHANGED
@@ -11,6 +11,7 @@ export { FromClauseNode } from './ast/from.js';
11
11
  export { FunctionNode } from './ast/function.js';
12
12
  export { InOpNode } from './ast/in-op.js';
13
13
  export { IntervalNode } from './ast/interval.js';
14
+ export { ListNode } from './ast/list.js';
14
15
  export { LiteralNode } from './ast/literal.js';
15
16
  export { AndNode, OrNode } from './ast/logical-op.js';
16
17
  export { SQLNode, ExprNode, isNode } from './ast/node.js';
@@ -22,6 +23,7 @@ export { ScalarSubqueryNode } from './ast/subquery.js';
22
23
  export { SelectClauseNode } from './ast/select.js';
23
24
  export { TableRefNode, isTableRef } from './ast/table-ref.js';
24
25
  export { UnaryOpNode, UnaryPostfixOpNode } from './ast/unary-op.js';
26
+ export { UnnestNode } from './ast/unnest.js';
25
27
  export { VerbatimNode } from './ast/verbatim.js';
26
28
  export { WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowNode } from './ast/window.js';
27
29
  export { WindowFrameNode, WindowFrameExprNode, type FrameExclude, type FrameExtent, type FrameScope, type FrameType, type FrameValue } from './ast/window-frame.js';
@@ -35,6 +37,7 @@ export { column } from './functions/column.js';
35
37
  export { cte } from './functions/cte.js';
36
38
  export { dateBin, dateMonth, dateMonthDay, dateDay, epoch_ms } from './functions/datetime.js';
37
39
  export { days, hours, interval, microseconds, minutes, milliseconds, months, seconds, years } from './functions/interval.js';
40
+ export { list, listContains, listHasAll, listHasAny } from './functions/list.js';
38
41
  export { literal, verbatim } from './functions/literal.js';
39
42
  export { abs, ceil, exp, floor, greatest, isFinite, isInfinite, isNaN, least, ln, log, round, sign, sqrt, trunc } from './functions/numeric.js';
40
43
  export { and, or, not, isNull, isNotNull, bitNot, bitAnd, bitOr, bitLeft, bitRight, add, sub, mul, div, idiv, mod, pow, eq, neq, lt, gt, lte, gte, isDistinct, isNotDistinct, isBetween, isNotBetween, isIn } from './functions/operators.js';
@@ -42,6 +45,7 @@ export { asc, desc } from './functions/order-by.js';
42
45
  export { geojson, x, y, centroid, centroidX, centroidY } from './functions/spatial.js';
43
46
  export { sql } from './functions/sql-template-tag.js';
44
47
  export { regexp_matches, contains, prefix, suffix, lower, upper, length } from './functions/string.js';
48
+ export { unnest } from './functions/unnest.js';
45
49
  export { coalesce } from './functions/util.js';
46
50
  export { cume_dist, dense_rank, first_value, lag, last_value, lead, nth_value, ntile, percent_rank, rank, row_number } from './functions/window.js';
47
51
  export { currentRow, following, frameGroups, frameRange, frameRows, preceding } from './functions/window-frame.js';
@@ -23,6 +23,7 @@ import {
23
23
  SET_OPERATION,
24
24
  UNARY_OPERATOR,
25
25
  UNARY_POSTFIX_OPERATOR,
26
+ UNNEST,
26
27
  WHEN,
27
28
  WINDOW,
28
29
  WINDOW_CLAUSE,
@@ -58,6 +59,7 @@ export const recurse: Record<string, string[]> = {
58
59
  [SET_OPERATION]: ['queries', '_orderby'],
59
60
  [UNARY_OPERATOR]: ['expr'],
60
61
  [UNARY_POSTFIX_OPERATOR]: ['expr'],
62
+ [UNNEST]: ['expr'],
61
63
  [WHEN]: ['when', 'then'],
62
64
  [WINDOW]: ['func', 'def'],
63
65
  [WINDOW_CLAUSE]: ['def'],