@uwdata/mosaic-sql 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/ast/aggregate.d.ts +5 -4
- package/dist/types/ast/case.d.ts +6 -7
- package/dist/types/ast/column-param.d.ts +7 -7
- package/dist/types/ast/column-ref.d.ts +7 -6
- package/dist/types/ast/param.d.ts +5 -4
- package/dist/types/ast/query.d.ts +46 -39
- package/dist/types/ast/window.d.ts +15 -12
- package/dist/types/functions/aggregate.d.ts +89 -88
- package/dist/types/functions/case.d.ts +6 -8
- package/dist/types/functions/column.d.ts +5 -3
- package/dist/types/functions/datetime.d.ts +12 -11
- package/dist/types/functions/numeric.d.ts +48 -46
- package/dist/types/functions/operators.d.ts +80 -78
- package/dist/types/functions/order-by.d.ts +5 -4
- package/dist/types/functions/spatial.d.ts +14 -13
- package/dist/types/functions/sql-template-tag.d.ts +4 -5
- package/dist/types/functions/string.d.ts +22 -20
- package/dist/types/functions/util.d.ts +8 -0
- package/dist/types/functions/window.d.ts +18 -16
- package/dist/types/index.d.ts +5 -0
- package/dist/types/transforms/bin-1d.d.ts +3 -2
- package/dist/types/transforms/bin-2d.d.ts +6 -5
- package/dist/types/transforms/bin-date.d.ts +44 -0
- package/dist/types/transforms/bin-histogram.d.ts +51 -0
- package/dist/types/transforms/bin-linear-1d.d.ts +6 -4
- package/dist/types/transforms/bin-linear-2d.d.ts +6 -5
- package/dist/types/transforms/line-density.d.ts +5 -4
- package/dist/types/transforms/m4.d.ts +7 -4
- package/dist/types/transforms/util/bin-step.d.ts +61 -0
- package/dist/types/transforms/util/time-interval.d.ts +13 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types/util/ast.d.ts +6 -5
- package/dist/types/util/function.d.ts +6 -4
- package/dist/types/util/type-check.d.ts +6 -2
- package/dist/types/visit/visitors.d.ts +3 -2
- package/dist/types/visit/walk.d.ts +7 -4
- package/package.json +2 -2
- package/src/ast/aggregate.js +5 -2
- package/src/ast/case.js +6 -5
- package/src/ast/column-param.js +7 -5
- package/src/ast/column-ref.js +6 -3
- package/src/ast/param.js +5 -2
- package/src/ast/query.js +23 -19
- package/src/ast/window.js +10 -6
- package/src/functions/aggregate.js +55 -52
- package/src/functions/case.js +7 -7
- package/src/functions/column.js +6 -2
- package/src/functions/datetime.js +9 -6
- package/src/functions/numeric.js +35 -31
- package/src/functions/operators.js +53 -50
- package/src/functions/order-by.js +5 -2
- package/src/functions/spatial.js +10 -7
- package/src/functions/sql-template-tag.js +5 -5
- package/src/functions/string.js +16 -13
- package/src/functions/util.js +14 -0
- package/src/functions/window.js +13 -10
- package/src/index.js +6 -0
- package/src/transforms/bin-1d.js +4 -1
- package/src/transforms/bin-2d.js +7 -4
- package/src/transforms/bin-date.js +37 -0
- package/src/transforms/bin-histogram.js +52 -0
- package/src/transforms/bin-linear-1d.js +7 -3
- package/src/transforms/bin-linear-2d.js +12 -8
- package/src/transforms/line-density.js +7 -3
- package/src/transforms/m4.js +7 -3
- package/src/transforms/util/bin-step.js +79 -0
- package/src/transforms/util/time-interval.js +97 -0
- package/src/types.ts +11 -0
- package/src/util/ast.js +6 -3
- package/src/util/function.js +6 -2
- package/src/util/type-check.js +5 -1
- package/src/visit/visitors.js +6 -2
- package/src/visit/walk.js +8 -3
|
@@ -50,16 +50,16 @@ export class AggregateNode extends ExprNode {
|
|
|
50
50
|
window(): WindowNode;
|
|
51
51
|
/**
|
|
52
52
|
* Return a new window function over this aggregate with the given partitions.
|
|
53
|
-
* @param {...
|
|
53
|
+
* @param {...ExprVarArgs} expr The partition by criteria.
|
|
54
54
|
* @returns {WindowNode} A new window node.
|
|
55
55
|
*/
|
|
56
|
-
partitionby(...expr:
|
|
56
|
+
partitionby(...expr: ExprVarArgs[]): WindowNode;
|
|
57
57
|
/**
|
|
58
58
|
* Return a new window function over this aggregate with the given ordering.
|
|
59
|
-
* @param {...
|
|
59
|
+
* @param {...ExprVarArgs} expr The order by criteria.
|
|
60
60
|
* @returns {WindowNode} A new window node.
|
|
61
61
|
*/
|
|
62
|
-
orderby(...expr:
|
|
62
|
+
orderby(...expr: ExprVarArgs[]): WindowNode;
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* An array of known aggregate function names.
|
|
@@ -68,3 +68,4 @@ export class AggregateNode extends ExprNode {
|
|
|
68
68
|
export const aggregateNames: string[];
|
|
69
69
|
import { ExprNode } from './node.js';
|
|
70
70
|
import { WindowNode } from './window.js';
|
|
71
|
+
import type { ExprVarArgs } from '../types.js';
|
package/dist/types/ast/case.d.ts
CHANGED
|
@@ -30,19 +30,17 @@ export class CaseNode extends ExprNode {
|
|
|
30
30
|
/**
|
|
31
31
|
* Return a new case node with the given conditional added as
|
|
32
32
|
* the last WHEN / THEN pair.
|
|
33
|
-
* @param {
|
|
34
|
-
*
|
|
35
|
-
* @param {import('../types.js').ExprValue} value
|
|
36
|
-
* The THEN value expression.
|
|
33
|
+
* @param {ExprValue} cond The WHEN condition expression.
|
|
34
|
+
* @param {ExprValue} value The THEN value expression.
|
|
37
35
|
* @returns {CaseNode}
|
|
38
36
|
*/
|
|
39
|
-
when(cond:
|
|
37
|
+
when(cond: ExprValue, value: ExprValue): CaseNode;
|
|
40
38
|
/**
|
|
41
39
|
* Return a new case node with the given ELSE expression.
|
|
42
|
-
* @param {
|
|
40
|
+
* @param {ExprValue} expr The ELSE expression.
|
|
43
41
|
* @returns {CaseNode}
|
|
44
42
|
*/
|
|
45
|
-
else(expr:
|
|
43
|
+
else(expr: ExprValue): CaseNode;
|
|
46
44
|
}
|
|
47
45
|
export class WhenNode extends SQLNode {
|
|
48
46
|
/**
|
|
@@ -65,4 +63,5 @@ export class WhenNode extends SQLNode {
|
|
|
65
63
|
readonly then: ExprNode;
|
|
66
64
|
}
|
|
67
65
|
import { ExprNode } from './node.js';
|
|
66
|
+
import type { ExprValue } from '../types.js';
|
|
68
67
|
import { SQLNode } from './node.js';
|
|
@@ -7,17 +7,17 @@ export function isColumnParam(value: any): value is ColumnParamNode;
|
|
|
7
7
|
export class ColumnParamNode extends ColumnRefNode {
|
|
8
8
|
/**
|
|
9
9
|
* Instantiate a column param node.
|
|
10
|
-
* @param {
|
|
11
|
-
*
|
|
12
|
-
* @param {import('./table-ref.js').TableRefNode} [table] The table
|
|
13
|
-
* reference.
|
|
10
|
+
* @param {ParamNode} param The column name as a parameter node.
|
|
11
|
+
* @param {TableRefNode} [table] The table reference.
|
|
14
12
|
*/
|
|
15
|
-
constructor(param:
|
|
13
|
+
constructor(param: ParamNode, table?: TableRefNode);
|
|
16
14
|
/**
|
|
17
15
|
* The column name as a parameter node.
|
|
18
|
-
* @type {
|
|
16
|
+
* @type {ParamNode}
|
|
19
17
|
* @readonly
|
|
20
18
|
*/
|
|
21
|
-
readonly param:
|
|
19
|
+
readonly param: ParamNode;
|
|
22
20
|
}
|
|
23
21
|
import { ColumnRefNode } from './column-ref.js';
|
|
22
|
+
import type { ParamNode } from './param.js';
|
|
23
|
+
import type { TableRefNode } from './table-ref.js';
|
|
@@ -7,15 +7,15 @@ export function isColumnRef(value: any): value is ColumnRefNode;
|
|
|
7
7
|
export class ColumnRefNode extends ExprNode {
|
|
8
8
|
/**
|
|
9
9
|
* Instantiate a column reference node.
|
|
10
|
-
* @param {
|
|
10
|
+
* @param {TableRefNode} [table] The table reference.
|
|
11
11
|
*/
|
|
12
|
-
constructor(type: any, table?:
|
|
12
|
+
constructor(type: any, table?: TableRefNode);
|
|
13
13
|
/**
|
|
14
14
|
* The table reference.
|
|
15
|
-
* @type {
|
|
15
|
+
* @type {TableRefNode}
|
|
16
16
|
* @readonly
|
|
17
17
|
*/
|
|
18
|
-
readonly table:
|
|
18
|
+
readonly table: TableRefNode;
|
|
19
19
|
/**
|
|
20
20
|
* Returns the column name.
|
|
21
21
|
* @returns {string}
|
|
@@ -26,9 +26,9 @@ export class ColumnNameRefNode extends ColumnRefNode {
|
|
|
26
26
|
/**
|
|
27
27
|
* Instantiate a column reference node.
|
|
28
28
|
* @param {string} name The column name.
|
|
29
|
-
* @param {
|
|
29
|
+
* @param {TableRefNode} [table] The table reference.
|
|
30
30
|
*/
|
|
31
|
-
constructor(name: string, table?:
|
|
31
|
+
constructor(name: string, table?: TableRefNode);
|
|
32
32
|
/**
|
|
33
33
|
* The column name.
|
|
34
34
|
* @type {string}
|
|
@@ -37,3 +37,4 @@ export class ColumnNameRefNode extends ColumnRefNode {
|
|
|
37
37
|
readonly name: string;
|
|
38
38
|
}
|
|
39
39
|
import { ExprNode } from './node.js';
|
|
40
|
+
import type { TableRefNode } from './table-ref.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export class ParamNode extends ExprNode {
|
|
2
2
|
/**
|
|
3
3
|
* Instantiate a param node with a dynamic parameter.
|
|
4
|
-
* @param {
|
|
4
|
+
* @param {ParamLike} param The dynamic parameter.
|
|
5
5
|
*/
|
|
6
|
-
constructor(param:
|
|
6
|
+
constructor(param: ParamLike);
|
|
7
7
|
/**
|
|
8
8
|
* The dynamic parameter.
|
|
9
|
-
* @type {
|
|
9
|
+
* @type {ParamLike}
|
|
10
10
|
* @readonly
|
|
11
11
|
*/
|
|
12
|
-
readonly param:
|
|
12
|
+
readonly param: ParamLike;
|
|
13
13
|
/**
|
|
14
14
|
* Returns the current parameter value.
|
|
15
15
|
* @returns {*}
|
|
@@ -17,3 +17,4 @@ export class ParamNode extends ExprNode {
|
|
|
17
17
|
get value(): any;
|
|
18
18
|
}
|
|
19
19
|
import { ExprNode } from './node.js';
|
|
20
|
+
import type { ParamLike } from '../types.js';
|
|
@@ -19,22 +19,22 @@ export function isDescribeQuery(value: any): value is DescribeQuery;
|
|
|
19
19
|
export class Query extends ExprNode {
|
|
20
20
|
/**
|
|
21
21
|
* Create a new WITH clause with the given CTE queries.
|
|
22
|
-
* @param {...
|
|
22
|
+
* @param {...WithExpr} expr The WITH CTE queries.
|
|
23
23
|
* @returns {WithClause}
|
|
24
24
|
*/
|
|
25
|
-
static with(...expr:
|
|
25
|
+
static with(...expr: WithExpr[]): WithClause;
|
|
26
26
|
/**
|
|
27
27
|
* Create a new select query with the given SELECT expressions.
|
|
28
|
-
* @param {...
|
|
28
|
+
* @param {...SelectExpr} expr The SELECT expressions.
|
|
29
29
|
* @returns {SelectQuery}
|
|
30
30
|
*/
|
|
31
|
-
static select(...expr:
|
|
31
|
+
static select(...expr: SelectExpr[]): SelectQuery;
|
|
32
32
|
/**
|
|
33
33
|
* Create a new select query with the given FROM expressions.
|
|
34
|
-
* @param {...
|
|
34
|
+
* @param {...FromExpr} expr The FROM expressions.
|
|
35
35
|
* @returns {SelectQuery}
|
|
36
36
|
*/
|
|
37
|
-
static from(...expr:
|
|
37
|
+
static from(...expr: FromExpr[]): SelectQuery;
|
|
38
38
|
/**
|
|
39
39
|
* Create a new UNION set operation over the given queries.
|
|
40
40
|
* @param {...Query} queries The queries.
|
|
@@ -91,16 +91,16 @@ export class Query extends ExprNode {
|
|
|
91
91
|
clone(): Query;
|
|
92
92
|
/**
|
|
93
93
|
* Add WITH common table expressions (CTEs).
|
|
94
|
-
* @param {...
|
|
94
|
+
* @param {...WithExpr} expr Expressions to add.
|
|
95
95
|
* @returns {this}
|
|
96
96
|
*/
|
|
97
|
-
with(...expr:
|
|
97
|
+
with(...expr: WithExpr[]): this;
|
|
98
98
|
/**
|
|
99
99
|
* Add ORDER BY expressions.
|
|
100
|
-
* @param {...
|
|
100
|
+
* @param {...OrderByExpr} expr Expressions to add.
|
|
101
101
|
* @returns
|
|
102
102
|
*/
|
|
103
|
-
orderby(...expr:
|
|
103
|
+
orderby(...expr: OrderByExpr[]): this;
|
|
104
104
|
/**
|
|
105
105
|
* Set the query result LIMIT.
|
|
106
106
|
* @param {number} value The limit value.
|
|
@@ -142,16 +142,16 @@ export class SelectQuery extends Query {
|
|
|
142
142
|
clone(): SelectQuery;
|
|
143
143
|
/**
|
|
144
144
|
* Add SELECT expressions.
|
|
145
|
-
* @param {...
|
|
145
|
+
* @param {...SelectExpr} expr Expressions to add.
|
|
146
146
|
* @returns {this}
|
|
147
147
|
*/
|
|
148
|
-
select(...expr:
|
|
148
|
+
select(...expr: SelectExpr[]): this;
|
|
149
149
|
/**
|
|
150
150
|
* Set SELECT expressions, replacing any prior expressions.
|
|
151
|
-
* @param {...
|
|
151
|
+
* @param {...SelectExpr} expr Expressions to add.
|
|
152
152
|
* @returns {this}
|
|
153
153
|
*/
|
|
154
|
-
setSelect(...expr:
|
|
154
|
+
setSelect(...expr: SelectExpr[]): this;
|
|
155
155
|
/**
|
|
156
156
|
* Indicate if this query should retrieve distinct values only.
|
|
157
157
|
* @param {boolean} value The distinct flag
|
|
@@ -161,56 +161,56 @@ export class SelectQuery extends Query {
|
|
|
161
161
|
_distinct: boolean;
|
|
162
162
|
/**
|
|
163
163
|
* Add table FROM expressions.
|
|
164
|
-
* @param {...
|
|
164
|
+
* @param {...FromExpr} expr Expressions to add.
|
|
165
165
|
* @returns {this}
|
|
166
166
|
*/
|
|
167
|
-
from(...expr:
|
|
167
|
+
from(...expr: FromExpr[]): this;
|
|
168
168
|
/**
|
|
169
169
|
* Set FROM expressions, replacing any prior expressions.
|
|
170
|
-
* @param {...
|
|
170
|
+
* @param {...FromExpr} expr Expressions to add.
|
|
171
171
|
* @returns {this}
|
|
172
172
|
*/
|
|
173
|
-
setFrom(...expr:
|
|
173
|
+
setFrom(...expr: FromExpr[]): this;
|
|
174
174
|
/**
|
|
175
175
|
* Set SAMPLE settings.
|
|
176
176
|
* @param {number | SampleClauseNode} value Either a sample clause node
|
|
177
177
|
* or the sample size as either a row count or percentage.
|
|
178
|
-
* @param {
|
|
178
|
+
* @param {SampleMethod} [method] The sampling method
|
|
179
179
|
* to use.
|
|
180
180
|
* @param {number} [seed] The random seed.
|
|
181
181
|
* @returns {this}
|
|
182
182
|
*/
|
|
183
|
-
sample(value: number | SampleClauseNode, method?:
|
|
183
|
+
sample(value: number | SampleClauseNode, method?: SampleMethod, seed?: number): this;
|
|
184
184
|
/**
|
|
185
185
|
* Add WHERE expressions.
|
|
186
|
-
* @param {...
|
|
186
|
+
* @param {...FilterExpr} expr Expressions to add.
|
|
187
187
|
* @returns {this}
|
|
188
188
|
*/
|
|
189
|
-
where(...expr:
|
|
189
|
+
where(...expr: FilterExpr[]): this;
|
|
190
190
|
/**
|
|
191
191
|
* Set WHERE expressions, replacing any prior expressions.
|
|
192
|
-
* @param {...
|
|
192
|
+
* @param {...FilterExpr} expr Expressions to add.
|
|
193
193
|
* @returns {this}
|
|
194
194
|
*/
|
|
195
|
-
setWhere(...expr:
|
|
195
|
+
setWhere(...expr: FilterExpr[]): this;
|
|
196
196
|
/**
|
|
197
197
|
* Add GROUP BY expressions.
|
|
198
|
-
* @param {...
|
|
198
|
+
* @param {...GroupByExpr} expr Expressions to add.
|
|
199
199
|
* @returns {this}
|
|
200
200
|
*/
|
|
201
|
-
groupby(...expr:
|
|
201
|
+
groupby(...expr: GroupByExpr[]): this;
|
|
202
202
|
/**
|
|
203
203
|
* Set GROUP BY expressions, replacing any prior expressions.
|
|
204
|
-
* @param {...
|
|
204
|
+
* @param {...GroupByExpr} expr Expressions to add.
|
|
205
205
|
* @returns {this}
|
|
206
206
|
*/
|
|
207
|
-
setGroupby(...expr:
|
|
207
|
+
setGroupby(...expr: GroupByExpr[]): this;
|
|
208
208
|
/**
|
|
209
209
|
* Add HAVING expressions.
|
|
210
|
-
* @param {...
|
|
210
|
+
* @param {...FilterExpr} expr Expressions to add.
|
|
211
211
|
* @returns {this}
|
|
212
212
|
*/
|
|
213
|
-
having(...expr:
|
|
213
|
+
having(...expr: FilterExpr[]): this;
|
|
214
214
|
/**
|
|
215
215
|
* Add WINDOW definitions.
|
|
216
216
|
* @param {...any} expr Expressions to add.
|
|
@@ -219,10 +219,10 @@ export class SelectQuery extends Query {
|
|
|
219
219
|
window(...expr: any[]): this;
|
|
220
220
|
/**
|
|
221
221
|
* Add QUALIFY expressions.
|
|
222
|
-
* @param {...
|
|
222
|
+
* @param {...FilterExpr} expr Expressions to add.
|
|
223
223
|
* @returns {this}
|
|
224
224
|
*/
|
|
225
|
-
qualify(...expr:
|
|
225
|
+
qualify(...expr: FilterExpr[]): this;
|
|
226
226
|
}
|
|
227
227
|
export class DescribeQuery extends SQLNode {
|
|
228
228
|
/**
|
|
@@ -261,25 +261,27 @@ export class SetOperation extends Query {
|
|
|
261
261
|
}
|
|
262
262
|
import { ExprNode } from './node.js';
|
|
263
263
|
import { WithClauseNode } from './with.js';
|
|
264
|
+
import type { WithExpr } from '../types.js';
|
|
265
|
+
import type { OrderByExpr } from '../types.js';
|
|
264
266
|
declare class WithClause {
|
|
265
267
|
/**
|
|
266
268
|
* Instantiate a new WITH clause instance.
|
|
267
|
-
* @param {...
|
|
269
|
+
* @param {...WithExpr} expr The WITH CTE queries.
|
|
268
270
|
*/
|
|
269
|
-
constructor(...expr:
|
|
270
|
-
_with:
|
|
271
|
+
constructor(...expr: WithExpr[]);
|
|
272
|
+
_with: WithExpr[];
|
|
271
273
|
/**
|
|
272
274
|
* Create a new select query with the given SELECT expressions.
|
|
273
|
-
* @param {...
|
|
275
|
+
* @param {...SelectExpr} expr The SELECT expressions.
|
|
274
276
|
* @returns {SelectQuery}
|
|
275
277
|
*/
|
|
276
|
-
select(...expr:
|
|
278
|
+
select(...expr: SelectExpr[]): SelectQuery;
|
|
277
279
|
/**
|
|
278
280
|
* Create a new select query with the given FROM expressions.
|
|
279
|
-
* @param {...
|
|
281
|
+
* @param {...FromExpr} expr The FROM expressions.
|
|
280
282
|
* @returns {SelectQuery}
|
|
281
283
|
*/
|
|
282
|
-
from(...expr:
|
|
284
|
+
from(...expr: FromExpr[]): SelectQuery;
|
|
283
285
|
/**
|
|
284
286
|
* Create a new UNION set operation over the given queries.
|
|
285
287
|
* @param {...Query} queries The queries.
|
|
@@ -305,9 +307,14 @@ declare class WithClause {
|
|
|
305
307
|
*/
|
|
306
308
|
except(...queries: Query[]): SetOperation;
|
|
307
309
|
}
|
|
310
|
+
import type { SelectExpr } from '../types.js';
|
|
311
|
+
import type { FromExpr } from '../types.js';
|
|
308
312
|
import { SelectClauseNode } from './select.js';
|
|
309
313
|
import { FromClauseNode } from './from.js';
|
|
310
314
|
import { SampleClauseNode } from './sample.js';
|
|
311
315
|
import { WindowClauseNode } from './window.js';
|
|
316
|
+
import type { SampleMethod } from './sample.js';
|
|
317
|
+
import type { FilterExpr } from '../types.js';
|
|
318
|
+
import type { GroupByExpr } from '../types.js';
|
|
312
319
|
import { SQLNode } from './node.js';
|
|
313
320
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @typedef {[any, any] |
|
|
2
|
+
* @typedef {[any, any] | ParamLike} FrameExtent
|
|
3
3
|
*/
|
|
4
4
|
export class WindowClauseNode extends SQLNode {
|
|
5
5
|
/**
|
|
@@ -46,16 +46,16 @@ export class WindowNode extends ExprNode {
|
|
|
46
46
|
over(name: string): WindowNode;
|
|
47
47
|
/**
|
|
48
48
|
* Return an updated window with the given partitions.
|
|
49
|
-
* @param {...
|
|
49
|
+
* @param {...ExprVarArgs} expr The partition by criteria.
|
|
50
50
|
* @returns {WindowNode} A new window node.
|
|
51
51
|
*/
|
|
52
|
-
partitionby(...expr:
|
|
52
|
+
partitionby(...expr: ExprVarArgs[]): WindowNode;
|
|
53
53
|
/**
|
|
54
54
|
* Return an updated window with the given ordering.
|
|
55
|
-
* @param {...
|
|
55
|
+
* @param {...ExprVarArgs} expr The order by criteria.
|
|
56
56
|
* @returns {WindowNode} A new window node.
|
|
57
57
|
*/
|
|
58
|
-
orderby(...expr:
|
|
58
|
+
orderby(...expr: ExprVarArgs[]): WindowNode;
|
|
59
59
|
/**
|
|
60
60
|
* Return an updated window with the given rows frame.
|
|
61
61
|
* @param {FrameExtent} extent The row-based window frame extent.
|
|
@@ -72,10 +72,10 @@ export class WindowNode extends ExprNode {
|
|
|
72
72
|
export class WindowFunctionNode extends FunctionNode {
|
|
73
73
|
/**
|
|
74
74
|
* Instantiate a window function call node.
|
|
75
|
-
* @param {
|
|
75
|
+
* @param {WindowFunctionName} name The function name.
|
|
76
76
|
* @param {ExprNode[]} [args=[]] The function arguments.
|
|
77
77
|
*/
|
|
78
|
-
constructor(name:
|
|
78
|
+
constructor(name: WindowFunctionName, args?: ExprNode[]);
|
|
79
79
|
}
|
|
80
80
|
export class WindowDefNode extends SQLNode {
|
|
81
81
|
/**
|
|
@@ -118,16 +118,16 @@ export class WindowDefNode extends SQLNode {
|
|
|
118
118
|
over(name: string): WindowDefNode;
|
|
119
119
|
/**
|
|
120
120
|
* Return an updated window definition with the given partitions.
|
|
121
|
-
* @param {...
|
|
121
|
+
* @param {...ExprVarArgs} expr The partition by criteria.
|
|
122
122
|
* @returns {WindowDefNode} A new window definition node.
|
|
123
123
|
*/
|
|
124
|
-
partitionby(...expr:
|
|
124
|
+
partitionby(...expr: ExprVarArgs[]): WindowDefNode;
|
|
125
125
|
/**
|
|
126
126
|
* Return an updated window definition with the given ordering.
|
|
127
|
-
* @param {...
|
|
127
|
+
* @param {...ExprVarArgs} expr The order by criteria.
|
|
128
128
|
* @returns {WindowDefNode} A new window definition node.
|
|
129
129
|
*/
|
|
130
|
-
orderby(...expr:
|
|
130
|
+
orderby(...expr: ExprVarArgs[]): WindowDefNode;
|
|
131
131
|
/**
|
|
132
132
|
* Return an updated window definition with the given rows frame.
|
|
133
133
|
* @param {FrameExtent} extent The row-based window frame extent.
|
|
@@ -169,9 +169,12 @@ export class WindowFrameNode extends SQLNode {
|
|
|
169
169
|
*/
|
|
170
170
|
readonly exclude: ExprNode;
|
|
171
171
|
}
|
|
172
|
-
export type FrameExtent = [any, any] |
|
|
172
|
+
export type FrameExtent = [any, any] | ParamLike;
|
|
173
173
|
import { SQLNode } from './node.js';
|
|
174
174
|
import { ExprNode } from './node.js';
|
|
175
175
|
import { AggregateNode } from './aggregate.js';
|
|
176
|
+
import type { ExprVarArgs } from '../types.js';
|
|
176
177
|
import { FunctionNode } from './function.js';
|
|
178
|
+
import type { WindowFunctionName } from '../types.js';
|
|
177
179
|
import { ParamNode } from './param.js';
|
|
180
|
+
import type { ParamLike } from '../types.js';
|