@itwin/ecsql-common 4.2.0-dev.10
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/LICENSE.md +9 -0
- package/README.md +11 -0
- package/lib/cjs/ECSqlAst.d.ts +1039 -0
- package/lib/cjs/ECSqlAst.d.ts.map +1 -0
- package/lib/cjs/ECSqlAst.js +2393 -0
- package/lib/cjs/ECSqlAst.js.map +1 -0
- package/lib/cjs/ecsql-common.d.ts +2 -0
- package/lib/cjs/ecsql-common.d.ts.map +1 -0
- package/lib/cjs/ecsql-common.js +22 -0
- package/lib/cjs/ecsql-common.js.map +1 -0
- package/lib/esm/ECSqlAst.d.ts +1039 -0
- package/lib/esm/ECSqlAst.d.ts.map +1 -0
- package/lib/esm/ECSqlAst.js +2384 -0
- package/lib/esm/ECSqlAst.js.map +1 -0
- package/lib/esm/ecsql-common.d.ts +2 -0
- package/lib/esm/ecsql-common.d.ts.map +1 -0
- package/lib/esm/ecsql-common.js +6 -0
- package/lib/esm/ecsql-common.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,1039 @@
|
|
|
1
|
+
import { Constructor } from "@itwin/core-bentley";
|
|
2
|
+
/**
|
|
3
|
+
* Id returned by native code
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
declare enum NativeExpIds {
|
|
7
|
+
AllOrAny = "AllOrAnyExp",
|
|
8
|
+
Assignment = "AssignmentExp",
|
|
9
|
+
BetweenRangeValue = "BetweenRangeValueExp",
|
|
10
|
+
BinaryBoolean = "BinaryBooleanExp",
|
|
11
|
+
BinaryValue = "BinaryValueExp",
|
|
12
|
+
BooleanFactor = "BooleanFactorExp",
|
|
13
|
+
Cast = "CastExp",
|
|
14
|
+
ClassName = "ClassNameExp",
|
|
15
|
+
CommonTable = "CommonTableExp",
|
|
16
|
+
CommonTableBlock = "CommonTableBlockExp",
|
|
17
|
+
CommonTableBlockName = "CommonTableBlockNameExp",
|
|
18
|
+
CrossJoin = "CrossJoinExp",
|
|
19
|
+
DeleteStatement = "DeleteStatementExp",
|
|
20
|
+
DerivedProperty = "DerivedPropertyExp",
|
|
21
|
+
FunctionCall = "FunctionCallExp",
|
|
22
|
+
IIF = "IIFExp",
|
|
23
|
+
InsertStatement = "InsertStatementExp",
|
|
24
|
+
LikeRhsValue = "LikeRhsValueExp",
|
|
25
|
+
LimitOffset = "LimitOffsetExp",
|
|
26
|
+
LiteralValue = "LiteralValueExp",
|
|
27
|
+
MemberFunctionCall = "MemberFunctionCallExp",
|
|
28
|
+
NaturalJoin = "NaturalJoinExp",
|
|
29
|
+
Options = "OptionsExp",
|
|
30
|
+
OrderBySpec = "OrderBySpecExp",
|
|
31
|
+
Parameter = "ParameterExp",
|
|
32
|
+
PropertyName = "PropertyNameExp",
|
|
33
|
+
QualifiedJoin = "QualifiedJoinExp",
|
|
34
|
+
RowConstructor = "RowConstructor",
|
|
35
|
+
SearchCaseValue = "SearchCaseValueExp",
|
|
36
|
+
SelectStatement = "SelectStatementExp",
|
|
37
|
+
SingleSelectStatement = "SingleSelectStatementExp",
|
|
38
|
+
Subquery = "SubqueryExp",
|
|
39
|
+
SubqueryRef = "SubqueryRefExp",
|
|
40
|
+
SubqueryTest = "SubqueryTestExp",
|
|
41
|
+
TableValuedFunction = "TableValuedFunctionExp",
|
|
42
|
+
UnaryValue = "UnaryValueExp",
|
|
43
|
+
UpdateStatement = "UpdateStatementExp",
|
|
44
|
+
UsingRelationshipJoinExp = "UsingRelationshipJoinExp"
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Type of literal value.
|
|
48
|
+
* @alpha
|
|
49
|
+
*/
|
|
50
|
+
export declare enum LiteralValueType {
|
|
51
|
+
Null = "NULL",
|
|
52
|
+
String = "STRING",
|
|
53
|
+
Date = "DATE",
|
|
54
|
+
Time = "TIME",
|
|
55
|
+
Timestamp = "TIMESTAMP",
|
|
56
|
+
Raw = "RAW"
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Sort direction specified by ORDER BY spec @see [[OrderBySpecExpr]]
|
|
60
|
+
* @alpha
|
|
61
|
+
*/
|
|
62
|
+
export type FirstOrLast = "FIRST" | "LAST";
|
|
63
|
+
/**
|
|
64
|
+
* Sort direction specified by ORDER BY spec @see [[OrderBySpecExpr]]
|
|
65
|
+
* @alpha
|
|
66
|
+
*/
|
|
67
|
+
export type SortDirection = "ASC" | "DESC";
|
|
68
|
+
/**
|
|
69
|
+
* Describe how SELECT result is combined with another SELECT in compound select statement @see [[NextSelect]] @see [[SelectStatementExp]]
|
|
70
|
+
* @alpha
|
|
71
|
+
*/
|
|
72
|
+
export type CompoundSelectOp = "UNION" | "UNION ALL" | "INTERSECT" | "EXCEPT";
|
|
73
|
+
/**
|
|
74
|
+
* Test subquery result. @see [[SubqueryTest]]
|
|
75
|
+
* @alpha
|
|
76
|
+
*/
|
|
77
|
+
export type SubqueryTestOp = "EXISTS";
|
|
78
|
+
/**
|
|
79
|
+
* Describe JOIN/USING relationship direction when relationship is of time 1:1. @see [[UsingRelationshipJoin]]
|
|
80
|
+
* @alpha
|
|
81
|
+
*/
|
|
82
|
+
export type JoinDirection = "FORWARD" | "BACKWARD";
|
|
83
|
+
/**
|
|
84
|
+
* Join specification of a Qualified join. @see [[QualifiedJoinExpr]]
|
|
85
|
+
* @alpha
|
|
86
|
+
*/
|
|
87
|
+
export type JoinSpec = BooleanExpr | string[] | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Qualified JOIN type @see [[QualifiedJoinExpr]]
|
|
90
|
+
* @alpha
|
|
91
|
+
*/
|
|
92
|
+
export declare enum JoinType {
|
|
93
|
+
LeftOuter = "LEFT OUTER JOIN",
|
|
94
|
+
RightOuter = "RIGHT OUTER JOIN",
|
|
95
|
+
FullOuter = "FULL OUTER JOIN",
|
|
96
|
+
Inner = "INNER JOIN"
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Unary operator for @see [[ValueExpr]].
|
|
100
|
+
* @alpha
|
|
101
|
+
*/
|
|
102
|
+
export type UnaryValueOp = "-" | "+" | "~";
|
|
103
|
+
/**
|
|
104
|
+
* Unary operator for @see [[BooleanExpr]]
|
|
105
|
+
* @alpha
|
|
106
|
+
*/
|
|
107
|
+
export type UnaryBooleanOp = "NOT";
|
|
108
|
+
/**
|
|
109
|
+
* Binary boolean operators used by @see [[BinaryBooleanExpr]]
|
|
110
|
+
* @alpha
|
|
111
|
+
*/
|
|
112
|
+
export type BinaryBooleanOp = "AND" | "OR" | "=" | ">=" | ">" | "<=" | "<" | "<>" | "!=";
|
|
113
|
+
/**
|
|
114
|
+
* Binary value operators used by @see [[BinaryValueExpr]]
|
|
115
|
+
* @alpha
|
|
116
|
+
*/
|
|
117
|
+
export type BinaryValueOp = "&" | "|" | "<<" | "||" | "/" | "-" | "*" | "+" | "%";
|
|
118
|
+
/**
|
|
119
|
+
* Disqualify term in ECSQL so query planner does not try to find index for it. @see [[ClassNameExpr]]
|
|
120
|
+
* @alpha
|
|
121
|
+
*/
|
|
122
|
+
export type DisqualifyOp = "+";
|
|
123
|
+
/**
|
|
124
|
+
* Optional recursive keyword for common table expressions @see [[CteExpr]]
|
|
125
|
+
* @alpha
|
|
126
|
+
*/
|
|
127
|
+
export type RecursiveCte = "RECURSIVE";
|
|
128
|
+
/**
|
|
129
|
+
* Polymorphic constraint for @see [[ClassNameExpr]]
|
|
130
|
+
* @alpha
|
|
131
|
+
*/
|
|
132
|
+
export type AllOrAnyOp = "ONLY" | "ALL";
|
|
133
|
+
/**
|
|
134
|
+
* Filter rows in select clause or aggregate functions @see [[FuncCallExpr]] and @see [[SelectExpr]]
|
|
135
|
+
* @alpha
|
|
136
|
+
*/
|
|
137
|
+
export type AllOrDistinctOp = "DISTINCT" | "ALL";
|
|
138
|
+
/**
|
|
139
|
+
* Return by native code
|
|
140
|
+
* @alpha
|
|
141
|
+
*/
|
|
142
|
+
export interface NativeECSqlParseNode {
|
|
143
|
+
[key: string]: any;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Return by native code
|
|
147
|
+
* @alpha
|
|
148
|
+
*/
|
|
149
|
+
export interface NativeECSqlParseNodeProvider {
|
|
150
|
+
parseECSql: (ecsql: string) => Promise<NativeECSqlParseNode>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* ECSql expr type supported @see [[Expr]]
|
|
154
|
+
* @alpha
|
|
155
|
+
*/
|
|
156
|
+
export declare enum ExprType {
|
|
157
|
+
Literal = "Literal",
|
|
158
|
+
Unary = "Unary",
|
|
159
|
+
Parameter = "Parameter",
|
|
160
|
+
Cast = "Cast",
|
|
161
|
+
BinaryValue = "BinaryValue",
|
|
162
|
+
SearchCase = "SearchCase",
|
|
163
|
+
IIF = "IIF",
|
|
164
|
+
FuncCall = "FuncCall",
|
|
165
|
+
PropertyName = "PropertyName",
|
|
166
|
+
Subquery = "Subquery",
|
|
167
|
+
Between = "Between",
|
|
168
|
+
Like = "Like",
|
|
169
|
+
In = "In",
|
|
170
|
+
Not = "Not",
|
|
171
|
+
IsOfType = "IsOfType",
|
|
172
|
+
IsNull = "IsNull",
|
|
173
|
+
BinaryBoolean = "BinaryBoolean",
|
|
174
|
+
SubqueryTest = "SubqueryTest",
|
|
175
|
+
UsingRelationshipJoin = "UsingRelationshipJoin",
|
|
176
|
+
QualifiedJoin = "QualifiedJoin",
|
|
177
|
+
SubqueryRef = "SubqueryRef",
|
|
178
|
+
CteBlockRef = "CteBlockRef",
|
|
179
|
+
ClassName = "ClassName",
|
|
180
|
+
TableValuedFunc = "TableValuedFunc",
|
|
181
|
+
DerivedProperty = "DerivedProperty",
|
|
182
|
+
SetClause = "SetClause",
|
|
183
|
+
Select = "Select",
|
|
184
|
+
ECSqlOptionsClause = "ECSqlOptions",
|
|
185
|
+
CteBlock = "CteBlock",
|
|
186
|
+
MemberFuncCall = "MemberFuncCall",
|
|
187
|
+
Cte = "Cte",
|
|
188
|
+
UpdateStatement = "UpdateStatement",
|
|
189
|
+
InsertStatement = "InsertStatement",
|
|
190
|
+
DeleteStatement = "DeleteStatement",
|
|
191
|
+
SelectStatement = "SelectStatement",
|
|
192
|
+
SelectionClause = "SelectionClause",
|
|
193
|
+
WhereClause = "WhereClause",
|
|
194
|
+
GroupByClause = "GroupByClause",
|
|
195
|
+
HavingClause = "HavingCluase",
|
|
196
|
+
FromClause = "FromClause",
|
|
197
|
+
OrderByClause = "OrderByClause",
|
|
198
|
+
OrderBySpec = "OrderBySpec",
|
|
199
|
+
LimitClause = "LimitClause",
|
|
200
|
+
Assignment = "Assignment"
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Allow to create statement expression tree from a ecsql
|
|
204
|
+
* @alpha
|
|
205
|
+
*/
|
|
206
|
+
export declare class ExprFactory {
|
|
207
|
+
readonly provider: NativeECSqlParseNodeProvider;
|
|
208
|
+
constructor(provider: NativeECSqlParseNodeProvider);
|
|
209
|
+
parseStatement(ecsql: string): Promise<StatementExpr>;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Base class for all ECSql expressions.
|
|
213
|
+
* @alpha
|
|
214
|
+
*/
|
|
215
|
+
export declare abstract class Expr {
|
|
216
|
+
readonly expType: ExprType;
|
|
217
|
+
constructor(expType: ExprType);
|
|
218
|
+
/**
|
|
219
|
+
* Write expression tree to a ECSQL string
|
|
220
|
+
* @param writer A instance of writer to which expression tree will output tokens.
|
|
221
|
+
*/
|
|
222
|
+
abstract writeTo(writer: ECSqlWriter): void;
|
|
223
|
+
abstract get children(): Expr[];
|
|
224
|
+
/**
|
|
225
|
+
* Find instances of expressions matching the type in sub tree.
|
|
226
|
+
* @param type a subclass of Expr
|
|
227
|
+
* @returns
|
|
228
|
+
*/
|
|
229
|
+
findInstancesOf<T extends Expr>(type: Constructor<T>): T[];
|
|
230
|
+
/**
|
|
231
|
+
* Allow to traverse the expression tree depth first
|
|
232
|
+
* @param callback this will be called for each expression traverse from first to last.
|
|
233
|
+
*/
|
|
234
|
+
traverse(callback: (expr: Expr, parent?: Expr) => void | boolean): void;
|
|
235
|
+
/**
|
|
236
|
+
* Test if class instance is of certain type
|
|
237
|
+
* @param type A class that extends from Expr
|
|
238
|
+
* @returns true if instances matches the type else return false.
|
|
239
|
+
*/
|
|
240
|
+
isInstanceOf<T extends Expr>(type: Constructor<T>): boolean;
|
|
241
|
+
asInstanceOf<T extends Expr>(type: Constructor<T>): T | undefined;
|
|
242
|
+
/**
|
|
243
|
+
* Convert expression tree to ECSQL.
|
|
244
|
+
* @param args args to ecsql writer.
|
|
245
|
+
* @returns ECSQL string
|
|
246
|
+
*/
|
|
247
|
+
toECSql(args?: ECSqlWriterArgs): string;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Base class for all ECSQL Statements. Here are list of subclasses @see [[CteExpr]], @see [[SelectStatement]], @see [[InsertStatement]], @see [UpdateStatement]] and @see [[DeleteStatement]]
|
|
251
|
+
* @alpha
|
|
252
|
+
*/
|
|
253
|
+
export declare abstract class StatementExpr extends Expr {
|
|
254
|
+
static deserialize(node: NativeECSqlParseNode): StatementExpr | InsertStatementExpr | UpdateStatementExpr | DeleteStatementExpr | CteExpr;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Base class for all computed expression like Value and Boolean.
|
|
258
|
+
* @alpha
|
|
259
|
+
*/
|
|
260
|
+
export declare abstract class ComputedExpr extends Expr {
|
|
261
|
+
static deserialize(node: NativeECSqlParseNode): BooleanExpr | ValueExpr;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Base class for a boolean expressions. It has following subclasses
|
|
265
|
+
* @see [[BooleanExpr]]
|
|
266
|
+
* @see [[ubqueryTestExpr]]
|
|
267
|
+
* @see [[BetweenExpr]]
|
|
268
|
+
* @see [[LikeExpr]]
|
|
269
|
+
* @see [[InExpr]]
|
|
270
|
+
* @see [[IsNullExpr]]
|
|
271
|
+
* @see [[IsOfTypeExpr]]
|
|
272
|
+
* @see [[NotExpr]]
|
|
273
|
+
* @see [[BinaryBooleanExpr]]
|
|
274
|
+
* @alpha
|
|
275
|
+
*/
|
|
276
|
+
export declare abstract class BooleanExpr extends ComputedExpr {
|
|
277
|
+
static readonly deserializableIds: NativeExpIds[];
|
|
278
|
+
static deserialize(node: NativeECSqlParseNode): BooleanExpr | SubqueryTestExpr | BetweenExpr | LikeExpr | InExpr | IsNullExpr | IsOfTypeExpr | NotExpr | BinaryBooleanExpr;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Base class for all value expressions. Following is list of subclasses.
|
|
282
|
+
* @see [[SubqueryExpr]]
|
|
283
|
+
* @see [[ValueExpr]]
|
|
284
|
+
* @see [[UnaryValueExpr]]
|
|
285
|
+
* @see [[FuncCallExpr]]
|
|
286
|
+
* @see [[CastExpr]]
|
|
287
|
+
* @see [[BinaryValueExpr]]
|
|
288
|
+
* @see [[SearchCaseExpr]]
|
|
289
|
+
* @see [[IIFExpr]]
|
|
290
|
+
* @see [[LiteralExpr]]
|
|
291
|
+
* @see [[PropertyNameExpr]]
|
|
292
|
+
* @alpha
|
|
293
|
+
*/
|
|
294
|
+
export declare abstract class ValueExpr extends ComputedExpr {
|
|
295
|
+
static readonly deserializableIds: NativeExpIds[];
|
|
296
|
+
static deserialize(node: NativeECSqlParseNode): SubqueryExpr | ValueExpr | UnaryValueExpr | FuncCallExpr | CastExpr | BinaryValueExpr | SearchCaseExpr | IIFExpr | LiteralExpr | PropertyNameExpr;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Hold polymorphic information about @see [[ClassNameExp]]
|
|
300
|
+
* @alpha
|
|
301
|
+
*/
|
|
302
|
+
export interface PolymorphicInfo {
|
|
303
|
+
allOrAny: AllOrAnyOp;
|
|
304
|
+
disqualify?: DisqualifyOp;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Base class for expressions that can be used in FROM clause of a SELECT. Following list of this subclasses.
|
|
308
|
+
* @see [[ClassRefExpr]]
|
|
309
|
+
* @see [[ClassNameExpr]]
|
|
310
|
+
* @see [[SubqueryRefExpr]]
|
|
311
|
+
* @see [[UsingRelationshipJoinExpr]]
|
|
312
|
+
* @see [[QualifiedJoinExpr]]
|
|
313
|
+
* @see [[CteBlockRefExpr]]
|
|
314
|
+
* @see [[TableValuedFuncExpr]]
|
|
315
|
+
* @alpha
|
|
316
|
+
*/
|
|
317
|
+
export declare abstract class ClassRefExpr extends Expr {
|
|
318
|
+
static readonly deserializableIds: NativeExpIds[];
|
|
319
|
+
static deserialize(node: NativeECSqlParseNode): ClassNameExpr | SubqueryRefExpr | UsingRelationshipJoinExpr | QualifiedJoinExpr | CteBlockRefExpr | TableValuedFuncExpr;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Options for @see [[ECSqlWriter]]
|
|
323
|
+
* @alpha
|
|
324
|
+
*/
|
|
325
|
+
export interface ECSqlWriterArgs {
|
|
326
|
+
readonly multiline: boolean;
|
|
327
|
+
readonly eol: "\r\n" | "\n";
|
|
328
|
+
readonly spaceAfterComma: boolean;
|
|
329
|
+
readonly spaceAroundBinOp: boolean;
|
|
330
|
+
readonly keywordCasing: "lower" | "UPPER";
|
|
331
|
+
readonly indent: {
|
|
332
|
+
readonly size: number;
|
|
333
|
+
readonly char: string;
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Keywords output by @see [[ECSqlWriter.appendKeyword]]
|
|
338
|
+
* @alpha
|
|
339
|
+
*/
|
|
340
|
+
export type Keywords = "ALL" | "AND" | "AS" | "ASC" | "BACKWARD" | "BETWEEN" | "BY" | "CASE" | "CAST" | "CROSS" | "DATE" | "DELETE" | "DESC" | "DISTINCT" | "ECSQLOPTIONS" | "ELSE" | "END" | "ESCAPE" | "EXCEPT" | "EXISTS" | "FIRST" | "FORWARD" | "FROM" | "FULL" | "GROUP" | "HAVING" | "IIF" | "IN" | "INNER" | "INSERT" | "INTERSECT" | "INTO" | "IS" | "JOIN" | "LAST" | "LEFT" | "LIKE" | "LIMIT" | "NATURAL" | "NOT" | "NULL" | "NULLS" | "OFFSET" | "ON" | "ONLY" | "OR" | "ORDER" | "OUTER" | "RECURSIVE" | "RIGHT" | "SELECT" | "SET" | "THEN" | "TIME" | "TIMESTAMP" | "UNION" | "UPDATE" | "USING" | "VALUES" | "WHEN" | "WHERE" | "WITH";
|
|
341
|
+
/**
|
|
342
|
+
* Write expression tree to string
|
|
343
|
+
* @alpha
|
|
344
|
+
*/
|
|
345
|
+
export declare class ECSqlWriter {
|
|
346
|
+
readonly options: ECSqlWriterArgs;
|
|
347
|
+
private _tokens;
|
|
348
|
+
private _currentIndent;
|
|
349
|
+
private _isNewLine;
|
|
350
|
+
constructor(options?: ECSqlWriterArgs);
|
|
351
|
+
indent(): void;
|
|
352
|
+
unindent(): void;
|
|
353
|
+
appendBinaryOp(val: string): this;
|
|
354
|
+
appendKeyword(val: Keywords): this;
|
|
355
|
+
appendComma(): void;
|
|
356
|
+
appendQuoted(val: string): this;
|
|
357
|
+
append(val: string): this;
|
|
358
|
+
appendStringLiteral(val: string): this;
|
|
359
|
+
appendLineOrSpace(): this;
|
|
360
|
+
appendSpace(): this;
|
|
361
|
+
appendLine(): this;
|
|
362
|
+
clear(): this;
|
|
363
|
+
squash(): this;
|
|
364
|
+
toString(): string;
|
|
365
|
+
appendExp(exp: Expr): this;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Use to describe selection clause terms in a SELECT statements @see [[SelectionClauseExpr]] @see [[SelectExpr]]
|
|
369
|
+
* @alpha
|
|
370
|
+
*/
|
|
371
|
+
export declare class DerivedPropertyExpr extends Expr {
|
|
372
|
+
readonly computedExpr: ComputedExpr;
|
|
373
|
+
readonly alias?: string | undefined;
|
|
374
|
+
static readonly type = ExprType.DerivedProperty;
|
|
375
|
+
constructor(computedExpr: ComputedExpr, alias?: string | undefined);
|
|
376
|
+
get children(): Expr[];
|
|
377
|
+
static deserialize(node: NativeECSqlParseNode): DerivedPropertyExpr;
|
|
378
|
+
writeTo(writer: ECSqlWriter): void;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Describes a ECSQL delete statement.
|
|
382
|
+
* @alpha
|
|
383
|
+
*/
|
|
384
|
+
export declare class DeleteStatementExpr extends StatementExpr {
|
|
385
|
+
readonly className: ClassNameExpr;
|
|
386
|
+
readonly where?: WhereClauseExp | undefined;
|
|
387
|
+
readonly options?: ECSqlOptionsClauseExpr | undefined;
|
|
388
|
+
static readonly type = ExprType.DeleteStatement;
|
|
389
|
+
constructor(className: ClassNameExpr, where?: WhereClauseExp | undefined, options?: ECSqlOptionsClauseExpr | undefined);
|
|
390
|
+
get children(): Expr[];
|
|
391
|
+
static deserialize(node: NativeECSqlParseNode): DeleteStatementExpr;
|
|
392
|
+
writeTo(writer: ECSqlWriter): void;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Describe a ECSQL Insert statement.
|
|
396
|
+
* @alpha
|
|
397
|
+
*/
|
|
398
|
+
export declare class InsertStatementExpr extends StatementExpr {
|
|
399
|
+
readonly className: ClassNameExpr;
|
|
400
|
+
readonly values: ValueExpr[];
|
|
401
|
+
readonly propertyNames?: PropertyNameExpr[] | undefined;
|
|
402
|
+
static readonly type = ExprType.InsertStatement;
|
|
403
|
+
constructor(className: ClassNameExpr, values: ValueExpr[], propertyNames?: PropertyNameExpr[] | undefined);
|
|
404
|
+
get children(): Expr[];
|
|
405
|
+
static deserialize(node: NativeECSqlParseNode): InsertStatementExpr;
|
|
406
|
+
writeTo(writer: ECSqlWriter): void;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Describes a JOIN clause e.g. <classNameExpr> JOIN <classNameExpr> ON <joinspec>
|
|
410
|
+
* @alpha
|
|
411
|
+
*/
|
|
412
|
+
export declare class QualifiedJoinExpr extends ClassRefExpr {
|
|
413
|
+
readonly joinType: JoinType;
|
|
414
|
+
readonly from: ClassRefExpr;
|
|
415
|
+
readonly to: ClassRefExpr;
|
|
416
|
+
readonly spec: JoinSpec;
|
|
417
|
+
static readonly type = ExprType.QualifiedJoin;
|
|
418
|
+
constructor(joinType: JoinType, from: ClassRefExpr, to: ClassRefExpr, spec: JoinSpec);
|
|
419
|
+
get children(): Expr[];
|
|
420
|
+
static deserialize(node: NativeECSqlParseNode): QualifiedJoinExpr;
|
|
421
|
+
writeTo(writer: ECSqlWriter): void;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Describe a JOIN USING clause.
|
|
425
|
+
* @alpha
|
|
426
|
+
*/
|
|
427
|
+
export declare class UsingRelationshipJoinExpr extends ClassRefExpr {
|
|
428
|
+
readonly fromClassName: ClassRefExpr;
|
|
429
|
+
readonly toClassName: ClassNameExpr;
|
|
430
|
+
readonly toRelClassName: ClassNameExpr;
|
|
431
|
+
readonly direction?: JoinDirection | undefined;
|
|
432
|
+
static readonly type = ExprType.UsingRelationshipJoin;
|
|
433
|
+
constructor(fromClassName: ClassRefExpr, toClassName: ClassNameExpr, toRelClassName: ClassNameExpr, direction?: JoinDirection | undefined);
|
|
434
|
+
get children(): Expr[];
|
|
435
|
+
static deserialize(node: NativeECSqlParseNode): UsingRelationshipJoinExpr;
|
|
436
|
+
writeTo(writer: ECSqlWriter): void;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Describe subquery result test e.g. EXISTS(<subquery>)
|
|
440
|
+
* @alpha
|
|
441
|
+
*/
|
|
442
|
+
export declare class SubqueryTestExpr extends BooleanExpr {
|
|
443
|
+
readonly op: SubqueryTestOp;
|
|
444
|
+
readonly query: SubqueryExpr;
|
|
445
|
+
static readonly type = ExprType.SubqueryTest;
|
|
446
|
+
constructor(op: SubqueryTestOp, query: SubqueryExpr);
|
|
447
|
+
get children(): Expr[];
|
|
448
|
+
static deserialize(node: NativeECSqlParseNode): SubqueryTestExpr;
|
|
449
|
+
writeTo(writer: ECSqlWriter): void;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Describe a subquery when used in FROM clause.
|
|
453
|
+
* @alpha
|
|
454
|
+
*/
|
|
455
|
+
export declare class SubqueryRefExpr extends ClassRefExpr {
|
|
456
|
+
readonly query: SubqueryExpr;
|
|
457
|
+
readonly polymorphicInfo?: PolymorphicInfo | undefined;
|
|
458
|
+
readonly alias?: string | undefined;
|
|
459
|
+
static readonly type = ExprType.SubqueryRef;
|
|
460
|
+
constructor(query: SubqueryExpr, polymorphicInfo?: PolymorphicInfo | undefined, alias?: string | undefined);
|
|
461
|
+
get children(): Expr[];
|
|
462
|
+
static deserialize(node: NativeECSqlParseNode): SubqueryRefExpr;
|
|
463
|
+
writeTo(writer: ECSqlWriter): void;
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Describe next select statement in a compound select statement. @see [[SelectStatementExp]]
|
|
467
|
+
* @alpha
|
|
468
|
+
*/
|
|
469
|
+
export interface NextSelect {
|
|
470
|
+
op: CompoundSelectOp;
|
|
471
|
+
select: SelectStatementExpr;
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Describe a optionally compound SELECT statement.
|
|
475
|
+
* @alpha
|
|
476
|
+
*/
|
|
477
|
+
export declare class SelectStatementExpr extends StatementExpr {
|
|
478
|
+
readonly singleSelect: SelectExpr;
|
|
479
|
+
readonly nextSelect?: NextSelect | undefined;
|
|
480
|
+
static readonly type = ExprType.SelectStatement;
|
|
481
|
+
constructor(singleSelect: SelectExpr, nextSelect?: NextSelect | undefined);
|
|
482
|
+
get children(): Expr[];
|
|
483
|
+
static deserialize(node: NativeECSqlParseNode): SelectStatementExpr;
|
|
484
|
+
writeTo(writer: ECSqlWriter): void;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Describe selection in a SELECT query
|
|
488
|
+
* @alpha
|
|
489
|
+
*/
|
|
490
|
+
export declare class SelectionClauseExpr extends Expr {
|
|
491
|
+
readonly derivedPropertyList: DerivedPropertyExpr[];
|
|
492
|
+
static readonly type = ExprType.SelectionClause;
|
|
493
|
+
constructor(derivedPropertyList: DerivedPropertyExpr[]);
|
|
494
|
+
get children(): Expr[];
|
|
495
|
+
static deserialize(node: NativeECSqlParseNode): SelectionClauseExpr;
|
|
496
|
+
writeTo(writer: ECSqlWriter): void;
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Describe a GROUP BY clause in a SELECT statement.
|
|
500
|
+
* @alpha
|
|
501
|
+
*/
|
|
502
|
+
export declare class GroupByClauseExpr extends Expr {
|
|
503
|
+
readonly exprList: ValueExpr[];
|
|
504
|
+
static readonly type = ExprType.GroupByClause;
|
|
505
|
+
constructor(exprList: ValueExpr[]);
|
|
506
|
+
get children(): Expr[];
|
|
507
|
+
static deserialize(node: NativeECSqlParseNode): GroupByClauseExpr;
|
|
508
|
+
writeTo(writer: ECSqlWriter): void;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Describe a HAVING clause in a SELECT statement.
|
|
512
|
+
* @alpha
|
|
513
|
+
*/
|
|
514
|
+
export declare class HavingClauseExpr extends Expr {
|
|
515
|
+
readonly filterExpr: ComputedExpr;
|
|
516
|
+
static readonly type = ExprType.HavingClause;
|
|
517
|
+
constructor(filterExpr: ComputedExpr);
|
|
518
|
+
get children(): Expr[];
|
|
519
|
+
static deserialize(node: NativeECSqlParseNode): HavingClauseExpr;
|
|
520
|
+
writeTo(writer: ECSqlWriter): void;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Describe a FROM clause in a SELECT statement.
|
|
524
|
+
* @alpha
|
|
525
|
+
*/
|
|
526
|
+
export declare class FromClauseExpr extends Expr {
|
|
527
|
+
readonly classRefs: ClassRefExpr[];
|
|
528
|
+
static readonly type = ExprType.FromClause;
|
|
529
|
+
constructor(classRefs: ClassRefExpr[]);
|
|
530
|
+
get children(): Expr[];
|
|
531
|
+
static deserialize(node: NativeECSqlParseNode): FromClauseExpr;
|
|
532
|
+
writeTo(writer: ECSqlWriter): void;
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Describe a WHERE clause in a SELECT, UPDATE and DELETE statement.
|
|
536
|
+
* @alpha
|
|
537
|
+
*/
|
|
538
|
+
export declare class WhereClauseExp extends Expr {
|
|
539
|
+
readonly filterExpr: ComputedExpr;
|
|
540
|
+
static readonly type = ExprType.WhereClause;
|
|
541
|
+
constructor(filterExpr: ComputedExpr);
|
|
542
|
+
get children(): Expr[];
|
|
543
|
+
static deserialize(node: NativeECSqlParseNode): WhereClauseExp;
|
|
544
|
+
writeTo(writer: ECSqlWriter): void;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Describe a single sorted term in a ORDER BY clause of a SELECT statement.
|
|
548
|
+
* @alpha
|
|
549
|
+
*/
|
|
550
|
+
export declare class OrderBySpecExpr extends Expr {
|
|
551
|
+
readonly term: ValueExpr;
|
|
552
|
+
readonly sortDirection?: SortDirection | undefined;
|
|
553
|
+
readonly nulls?: FirstOrLast | undefined;
|
|
554
|
+
static readonly type = ExprType.OrderBySpec;
|
|
555
|
+
constructor(term: ValueExpr, sortDirection?: SortDirection | undefined, nulls?: FirstOrLast | undefined);
|
|
556
|
+
get children(): Expr[];
|
|
557
|
+
static deserialize(node: NativeECSqlParseNode): OrderBySpecExpr;
|
|
558
|
+
writeTo(writer: ECSqlWriter): void;
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Describe a ORDER BY clause in a SELECT statement.
|
|
562
|
+
* @alpha
|
|
563
|
+
*/
|
|
564
|
+
export declare class OrderByClauseExpr extends Expr {
|
|
565
|
+
readonly terms: OrderBySpecExpr[];
|
|
566
|
+
static readonly type = ExprType.OrderByClause;
|
|
567
|
+
constructor(terms: OrderBySpecExpr[]);
|
|
568
|
+
get children(): Expr[];
|
|
569
|
+
static deserialize(node: NativeECSqlParseNode): OrderByClauseExpr;
|
|
570
|
+
writeTo(writer: ECSqlWriter): void;
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Describe a LIMIT clause in a SELECT statement.
|
|
574
|
+
* @alpha
|
|
575
|
+
*/
|
|
576
|
+
export declare class LimitClauseExpr extends Expr {
|
|
577
|
+
readonly limit: ValueExpr;
|
|
578
|
+
readonly offset?: ValueExpr | undefined;
|
|
579
|
+
static readonly type = ExprType.LimitClause;
|
|
580
|
+
constructor(limit: ValueExpr, offset?: ValueExpr | undefined);
|
|
581
|
+
get children(): Expr[];
|
|
582
|
+
static deserialize(node: NativeECSqlParseNode): LimitClauseExpr;
|
|
583
|
+
writeTo(writer: ECSqlWriter): void;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Describe a single select statement.
|
|
587
|
+
* @alpha
|
|
588
|
+
*/
|
|
589
|
+
export declare class SelectExpr extends Expr {
|
|
590
|
+
readonly selection: SelectionClauseExpr;
|
|
591
|
+
readonly rowQuantifier?: AllOrDistinctOp | undefined;
|
|
592
|
+
readonly from?: FromClauseExpr | undefined;
|
|
593
|
+
readonly where?: WhereClauseExp | undefined;
|
|
594
|
+
readonly groupBy?: GroupByClauseExpr | undefined;
|
|
595
|
+
readonly having?: HavingClauseExpr | undefined;
|
|
596
|
+
readonly orderBy?: OrderByClauseExpr | undefined;
|
|
597
|
+
readonly limit?: LimitClauseExpr | undefined;
|
|
598
|
+
readonly options?: ECSqlOptionsClauseExpr | undefined;
|
|
599
|
+
static readonly type = ExprType.Select;
|
|
600
|
+
constructor(selection: SelectionClauseExpr, rowQuantifier?: AllOrDistinctOp | undefined, from?: FromClauseExpr | undefined, where?: WhereClauseExp | undefined, groupBy?: GroupByClauseExpr | undefined, having?: HavingClauseExpr | undefined, orderBy?: OrderByClauseExpr | undefined, limit?: LimitClauseExpr | undefined, options?: ECSqlOptionsClauseExpr | undefined);
|
|
601
|
+
get children(): Expr[];
|
|
602
|
+
static deserialize(node: NativeECSqlParseNode): SelectExpr;
|
|
603
|
+
writeTo(writer: ECSqlWriter): void;
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Describe a subquery when used as value. This kind of query expect to return one column and one one value.
|
|
607
|
+
* @alpha
|
|
608
|
+
*/
|
|
609
|
+
export declare class SubqueryExpr extends ValueExpr {
|
|
610
|
+
readonly query: SelectStatementExpr;
|
|
611
|
+
static readonly type = ExprType.Subquery;
|
|
612
|
+
constructor(query: SelectStatementExpr);
|
|
613
|
+
get children(): Expr[];
|
|
614
|
+
static deserialize(node: NativeECSqlParseNode): SubqueryExpr;
|
|
615
|
+
writeTo(writer: ECSqlWriter): void;
|
|
616
|
+
}
|
|
617
|
+
/**
|
|
618
|
+
* Describe a binary boolean expression in ECSQL.
|
|
619
|
+
* @alpha
|
|
620
|
+
*/
|
|
621
|
+
export declare class BinaryBooleanExpr extends BooleanExpr {
|
|
622
|
+
readonly op: BinaryBooleanOp;
|
|
623
|
+
readonly lhsExpr: ComputedExpr;
|
|
624
|
+
readonly rhsExpr: ComputedExpr;
|
|
625
|
+
readonly not?: "NOT" | undefined;
|
|
626
|
+
static readonly type = ExprType.BinaryBoolean;
|
|
627
|
+
constructor(op: BinaryBooleanOp, lhsExpr: ComputedExpr, rhsExpr: ComputedExpr, not?: "NOT" | undefined);
|
|
628
|
+
get children(): Expr[];
|
|
629
|
+
static deserialize(node: NativeECSqlParseNode): BinaryBooleanExpr;
|
|
630
|
+
writeTo(writer: ECSqlWriter): void;
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Describe a <expr> IS NULL boolean expression
|
|
634
|
+
* @alpha
|
|
635
|
+
*/
|
|
636
|
+
export declare class IsNullExpr extends BooleanExpr {
|
|
637
|
+
readonly operandExpr: ValueExpr;
|
|
638
|
+
readonly not?: "NOT" | undefined;
|
|
639
|
+
static readonly type = ExprType.IsNull;
|
|
640
|
+
constructor(operandExpr: ValueExpr, not?: "NOT" | undefined);
|
|
641
|
+
get children(): Expr[];
|
|
642
|
+
static parseOp(node: NativeECSqlParseNode): boolean[];
|
|
643
|
+
static deserialize(node: NativeECSqlParseNode): IsNullExpr;
|
|
644
|
+
writeTo(writer: ECSqlWriter): void;
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Describe a <expr> IS (type1[, type2]) in ECSQL.
|
|
648
|
+
* @alpha
|
|
649
|
+
*/
|
|
650
|
+
export declare class IsOfTypeExpr extends BooleanExpr {
|
|
651
|
+
readonly lhsExpr: ValueExpr;
|
|
652
|
+
readonly typeNames: ClassNameExpr[];
|
|
653
|
+
readonly not?: "NOT" | undefined;
|
|
654
|
+
static readonly type = ExprType.IsOfType;
|
|
655
|
+
constructor(lhsExpr: ValueExpr, typeNames: ClassNameExpr[], not?: "NOT" | undefined);
|
|
656
|
+
get children(): Expr[];
|
|
657
|
+
static parseOp(node: NativeECSqlParseNode): boolean[];
|
|
658
|
+
static deserialize(node: NativeECSqlParseNode): IsOfTypeExpr;
|
|
659
|
+
writeTo(writer: ECSqlWriter): void;
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* Describe a NOT <expr> boolean expression
|
|
663
|
+
* @alpha
|
|
664
|
+
*/
|
|
665
|
+
export declare class NotExpr extends BooleanExpr {
|
|
666
|
+
readonly operandExpr: ComputedExpr;
|
|
667
|
+
static readonly type = ExprType.Not;
|
|
668
|
+
constructor(operandExpr: ComputedExpr);
|
|
669
|
+
get children(): Expr[];
|
|
670
|
+
static deserialize(node: NativeECSqlParseNode): NotExpr;
|
|
671
|
+
writeTo(writer: ECSqlWriter): void;
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* Describe a <expr> IN subquery|(val1[,val2...]) boolean expression
|
|
675
|
+
* @alpha
|
|
676
|
+
*/
|
|
677
|
+
export declare class InExpr extends BooleanExpr {
|
|
678
|
+
readonly lhsExpr: ValueExpr;
|
|
679
|
+
readonly rhsExpr: ValueExpr[] | SubqueryExpr;
|
|
680
|
+
readonly not?: "NOT" | undefined;
|
|
681
|
+
static readonly type = ExprType.In;
|
|
682
|
+
constructor(lhsExpr: ValueExpr, rhsExpr: ValueExpr[] | SubqueryExpr, not?: "NOT" | undefined);
|
|
683
|
+
get children(): Expr[];
|
|
684
|
+
static parseOp(op: string): boolean[];
|
|
685
|
+
static deserialize(node: NativeECSqlParseNode): InExpr;
|
|
686
|
+
writeTo(writer: ECSqlWriter): void;
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Describe a <expr> LIKE <expr> [ESCAPE <expr>] boolean expression
|
|
690
|
+
* @alpha
|
|
691
|
+
*/
|
|
692
|
+
export declare class LikeExpr extends BooleanExpr {
|
|
693
|
+
readonly lhsExpr: ValueExpr;
|
|
694
|
+
readonly patternExpr: ValueExpr;
|
|
695
|
+
readonly escapeExpr?: ValueExpr | undefined;
|
|
696
|
+
readonly not?: "NOT" | undefined;
|
|
697
|
+
static readonly type = ExprType.Like;
|
|
698
|
+
constructor(lhsExpr: ValueExpr, patternExpr: ValueExpr, escapeExpr?: ValueExpr | undefined, not?: "NOT" | undefined);
|
|
699
|
+
get children(): Expr[];
|
|
700
|
+
static parseOp(op: string): boolean[];
|
|
701
|
+
static deserialize(node: NativeECSqlParseNode): LikeExpr;
|
|
702
|
+
writeTo(writer: ECSqlWriter): void;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Describe a <expr> BETWEEN <expr> AND <expr> boolean expression
|
|
706
|
+
* @alpha
|
|
707
|
+
*/
|
|
708
|
+
export declare class BetweenExpr extends BooleanExpr {
|
|
709
|
+
readonly lhsExpr: ValueExpr;
|
|
710
|
+
readonly lowerBoundExpr: ValueExpr;
|
|
711
|
+
readonly upperBoundExpr: ValueExpr;
|
|
712
|
+
readonly not?: "NOT" | undefined;
|
|
713
|
+
static readonly type = ExprType.Between;
|
|
714
|
+
constructor(lhsExpr: ValueExpr, lowerBoundExpr: ValueExpr, upperBoundExpr: ValueExpr, not?: "NOT" | undefined);
|
|
715
|
+
get children(): Expr[];
|
|
716
|
+
static parseOp(op: string): boolean[];
|
|
717
|
+
static deserialize(node: NativeECSqlParseNode): BetweenExpr;
|
|
718
|
+
writeTo(writer: ECSqlWriter): void;
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Describe a common table expression base query statement
|
|
722
|
+
* @alpha
|
|
723
|
+
*/
|
|
724
|
+
export declare class CteExpr extends StatementExpr {
|
|
725
|
+
readonly cteBlocks: CteBlockExpr[];
|
|
726
|
+
readonly query: SelectStatementExpr;
|
|
727
|
+
readonly recursive?: "RECURSIVE" | undefined;
|
|
728
|
+
static readonly type = ExprType.Cte;
|
|
729
|
+
constructor(cteBlocks: CteBlockExpr[], query: SelectStatementExpr, recursive?: "RECURSIVE" | undefined);
|
|
730
|
+
get children(): Expr[];
|
|
731
|
+
static deserialize(node: NativeECSqlParseNode): CteExpr;
|
|
732
|
+
writeTo(writer: ECSqlWriter): void;
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Describe a single block of CTE that can be reference in FROM clause of a SELECT
|
|
736
|
+
* @alpha
|
|
737
|
+
*/
|
|
738
|
+
export declare class CteBlockExpr extends Expr {
|
|
739
|
+
readonly name: string;
|
|
740
|
+
readonly query: SelectStatementExpr;
|
|
741
|
+
readonly props: string[];
|
|
742
|
+
static readonly type = ExprType.CteBlock;
|
|
743
|
+
constructor(name: string, query: SelectStatementExpr, props: string[]);
|
|
744
|
+
get children(): Expr[];
|
|
745
|
+
static deserialize(node: NativeECSqlParseNode): CteBlockExpr;
|
|
746
|
+
writeTo(writer: ECSqlWriter): void;
|
|
747
|
+
}
|
|
748
|
+
/**
|
|
749
|
+
* Describe a name reference to a CTE block.
|
|
750
|
+
* @alpha
|
|
751
|
+
*/
|
|
752
|
+
export declare class CteBlockRefExpr extends ClassRefExpr {
|
|
753
|
+
readonly name: string;
|
|
754
|
+
readonly alias?: string | undefined;
|
|
755
|
+
static readonly type = ExprType.CteBlockRef;
|
|
756
|
+
constructor(name: string, alias?: string | undefined);
|
|
757
|
+
get children(): Expr[];
|
|
758
|
+
static deserialize(node: NativeECSqlParseNode): CteBlockRefExpr;
|
|
759
|
+
writeTo(writer: ECSqlWriter): void;
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* Describe a table value function expression in ECSQL that appear in FROM clause of query.
|
|
763
|
+
* @alpha
|
|
764
|
+
*/
|
|
765
|
+
export declare class TableValuedFuncExpr extends ClassRefExpr {
|
|
766
|
+
readonly schemaName: string;
|
|
767
|
+
readonly memberFunc: MemberFuncCallExpr;
|
|
768
|
+
readonly alias?: string | undefined;
|
|
769
|
+
static readonly type = ExprType.TableValuedFunc;
|
|
770
|
+
constructor(schemaName: string, memberFunc: MemberFuncCallExpr, alias?: string | undefined);
|
|
771
|
+
get children(): Expr[];
|
|
772
|
+
static deserialize(node: NativeECSqlParseNode): TableValuedFuncExpr;
|
|
773
|
+
writeTo(writer: ECSqlWriter): void;
|
|
774
|
+
}
|
|
775
|
+
/**
|
|
776
|
+
* Describe a class name reference in ECSQL that appear in FROM clause of a SELECT.
|
|
777
|
+
* @alpha
|
|
778
|
+
*/
|
|
779
|
+
export declare class ClassNameExpr extends ClassRefExpr {
|
|
780
|
+
readonly schemaNameOrAlias: string;
|
|
781
|
+
readonly className: string;
|
|
782
|
+
readonly tablespace?: string | undefined;
|
|
783
|
+
readonly alias?: string | undefined;
|
|
784
|
+
polymorphicInfo?: PolymorphicInfo | undefined;
|
|
785
|
+
readonly memberFunc?: MemberFuncCallExpr | undefined;
|
|
786
|
+
static readonly type = ExprType.ClassName;
|
|
787
|
+
constructor(schemaNameOrAlias: string, className: string, tablespace?: string | undefined, alias?: string | undefined, polymorphicInfo?: PolymorphicInfo | undefined, memberFunc?: MemberFuncCallExpr | undefined);
|
|
788
|
+
get children(): Expr[];
|
|
789
|
+
static deserialize(node: NativeECSqlParseNode): ClassNameExpr;
|
|
790
|
+
writeTo(writer: ECSqlWriter): void;
|
|
791
|
+
static fromECSql(ecsql: string): ClassNameExpr;
|
|
792
|
+
}
|
|
793
|
+
/**
|
|
794
|
+
* Describe a UPDATE statement in ECSQL.
|
|
795
|
+
* @alpha
|
|
796
|
+
*/
|
|
797
|
+
export declare class UpdateStatementExpr extends StatementExpr {
|
|
798
|
+
readonly className: ClassNameExpr;
|
|
799
|
+
readonly assignement: SetClauseExpr;
|
|
800
|
+
readonly where?: WhereClauseExp | undefined;
|
|
801
|
+
readonly options?: ECSqlOptionsClauseExpr | undefined;
|
|
802
|
+
static readonly type = ExprType.UpdateStatement;
|
|
803
|
+
constructor(className: ClassNameExpr, assignement: SetClauseExpr, where?: WhereClauseExp | undefined, options?: ECSqlOptionsClauseExpr | undefined);
|
|
804
|
+
get children(): Expr[];
|
|
805
|
+
static deserialize(node: NativeECSqlParseNode): UpdateStatementExpr;
|
|
806
|
+
writeTo(writer: ECSqlWriter): void;
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Supported options in ECSQL option clause
|
|
810
|
+
* @alpha
|
|
811
|
+
*/
|
|
812
|
+
export type ECSqlSupportedOptions = "NoECClassIdFilter" | "ReadonlyPropertiesAreUpdatable";
|
|
813
|
+
/**
|
|
814
|
+
* ECSql option name and optionally value pair.
|
|
815
|
+
* @alpha
|
|
816
|
+
*/
|
|
817
|
+
export interface ECSqlOption {
|
|
818
|
+
name: ECSqlSupportedOptions;
|
|
819
|
+
value?: string;
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Describe ECSQL option clause.
|
|
823
|
+
* @alpha
|
|
824
|
+
*/
|
|
825
|
+
export declare class ECSqlOptionsClauseExpr extends Expr {
|
|
826
|
+
readonly options: ECSqlOption[];
|
|
827
|
+
static readonly type = ExprType.ECSqlOptionsClause;
|
|
828
|
+
constructor(options: ECSqlOption[]);
|
|
829
|
+
get children(): Expr[];
|
|
830
|
+
static deserialize(node: NativeECSqlParseNode): ECSqlOptionsClauseExpr;
|
|
831
|
+
writeTo(writer: ECSqlWriter): void;
|
|
832
|
+
}
|
|
833
|
+
/**
|
|
834
|
+
* A single property value assignment for update clause
|
|
835
|
+
* @alpha
|
|
836
|
+
*/
|
|
837
|
+
export declare class AssignmentExpr extends Expr {
|
|
838
|
+
readonly propertyName: PropertyNameExpr;
|
|
839
|
+
readonly valueExpr: ValueExpr;
|
|
840
|
+
static readonly type = ExprType.Assignment;
|
|
841
|
+
constructor(propertyName: PropertyNameExpr, valueExpr: ValueExpr);
|
|
842
|
+
get children(): Expr[];
|
|
843
|
+
static deserialize(node: NativeECSqlParseNode): AssignmentExpr;
|
|
844
|
+
writeTo(writer: ECSqlWriter): void;
|
|
845
|
+
}
|
|
846
|
+
/**
|
|
847
|
+
* Describe a set clause in a UPDATE statement
|
|
848
|
+
* @alpha
|
|
849
|
+
*/
|
|
850
|
+
export declare class SetClauseExpr extends Expr {
|
|
851
|
+
readonly assignments: AssignmentExpr[];
|
|
852
|
+
static readonly type = ExprType.SetClause;
|
|
853
|
+
constructor(assignments: AssignmentExpr[]);
|
|
854
|
+
get children(): Expr[];
|
|
855
|
+
static deserialize(node: NativeECSqlParseNode): SetClauseExpr;
|
|
856
|
+
writeTo(writer: ECSqlWriter): void;
|
|
857
|
+
}
|
|
858
|
+
/**
|
|
859
|
+
* Describe a strong typed IIF function in ECSQL
|
|
860
|
+
* @alpha
|
|
861
|
+
*/
|
|
862
|
+
export declare class IIFExpr extends ValueExpr {
|
|
863
|
+
readonly whenExpr: BooleanExpr;
|
|
864
|
+
readonly thenExpr: ValueExpr;
|
|
865
|
+
readonly elseExpr: ValueExpr;
|
|
866
|
+
static readonly type = ExprType.IIF;
|
|
867
|
+
constructor(whenExpr: BooleanExpr, thenExpr: ValueExpr, elseExpr: ValueExpr);
|
|
868
|
+
get children(): Expr[];
|
|
869
|
+
static deserialize(node: NativeECSqlParseNode): IIFExpr;
|
|
870
|
+
writeTo(writer: ECSqlWriter): void;
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* When then block in CASE-WHEN-THEN expression
|
|
874
|
+
* @alpha
|
|
875
|
+
*/
|
|
876
|
+
export interface WhenThenBlock {
|
|
877
|
+
whenExpr: BooleanExpr;
|
|
878
|
+
thenExpr: ValueExpr;
|
|
879
|
+
}
|
|
880
|
+
/**
|
|
881
|
+
* Describe a CASE-WHEN-THEN expression in ECSQL
|
|
882
|
+
* @alpha
|
|
883
|
+
*/
|
|
884
|
+
export declare class SearchCaseExpr extends ValueExpr {
|
|
885
|
+
readonly whenThenList: WhenThenBlock[];
|
|
886
|
+
readonly elseExpr?: ValueExpr | undefined;
|
|
887
|
+
static readonly type = ExprType.SearchCase;
|
|
888
|
+
constructor(whenThenList: WhenThenBlock[], elseExpr?: ValueExpr | undefined);
|
|
889
|
+
get children(): Expr[];
|
|
890
|
+
static deserialize(node: NativeECSqlParseNode): SearchCaseExpr;
|
|
891
|
+
writeTo(writer: ECSqlWriter): void;
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* Describe a binary value expression
|
|
895
|
+
* @alpha
|
|
896
|
+
*/
|
|
897
|
+
export declare class BinaryValueExpr extends ValueExpr {
|
|
898
|
+
readonly op: BinaryValueOp;
|
|
899
|
+
readonly lhsExpr: ValueExpr;
|
|
900
|
+
readonly rhsExpr: ValueExpr;
|
|
901
|
+
static readonly type = ExprType.BinaryValue;
|
|
902
|
+
constructor(op: BinaryValueOp, lhsExpr: ValueExpr, rhsExpr: ValueExpr);
|
|
903
|
+
get children(): Expr[];
|
|
904
|
+
static deserialize(node: NativeECSqlParseNode): BinaryValueExpr;
|
|
905
|
+
writeTo(writer: ECSqlWriter): void;
|
|
906
|
+
}
|
|
907
|
+
/**
|
|
908
|
+
* Cast a expression into a target time e.g. CAST(<expr> AS STRING)
|
|
909
|
+
* @alpha
|
|
910
|
+
*/
|
|
911
|
+
export declare class CastExpr extends ValueExpr {
|
|
912
|
+
readonly valueExpr: ValueExpr;
|
|
913
|
+
readonly targetType: string;
|
|
914
|
+
static readonly type = ExprType.Cast;
|
|
915
|
+
constructor(valueExpr: ValueExpr, targetType: string);
|
|
916
|
+
get children(): Expr[];
|
|
917
|
+
static deserialize(node: NativeECSqlParseNode): CastExpr;
|
|
918
|
+
writeTo(writer: ECSqlWriter): void;
|
|
919
|
+
}
|
|
920
|
+
/**
|
|
921
|
+
* Represent a member function called w.r.t a ClassNameExpr
|
|
922
|
+
* @alpha
|
|
923
|
+
*/
|
|
924
|
+
export declare class MemberFuncCallExpr extends Expr {
|
|
925
|
+
readonly functionName: string;
|
|
926
|
+
readonly args: ValueExpr[];
|
|
927
|
+
static readonly type = ExprType.MemberFuncCall;
|
|
928
|
+
constructor(functionName: string, args: ValueExpr[]);
|
|
929
|
+
get children(): Expr[];
|
|
930
|
+
static deserialize(node: NativeECSqlParseNode): MemberFuncCallExpr;
|
|
931
|
+
writeTo(writer: ECSqlWriter): void;
|
|
932
|
+
}
|
|
933
|
+
/**
|
|
934
|
+
* Represent a function call in ecsql
|
|
935
|
+
* @alpha
|
|
936
|
+
*/
|
|
937
|
+
export declare class FuncCallExpr extends ValueExpr {
|
|
938
|
+
readonly functionName: string;
|
|
939
|
+
readonly args: ValueExpr[];
|
|
940
|
+
readonly allOrDistinct?: AllOrDistinctOp | undefined;
|
|
941
|
+
static readonly type = ExprType.FuncCall;
|
|
942
|
+
constructor(functionName: string, args: ValueExpr[], allOrDistinct?: AllOrDistinctOp | undefined);
|
|
943
|
+
get children(): Expr[];
|
|
944
|
+
static deserialize(node: NativeECSqlParseNode): FuncCallExpr;
|
|
945
|
+
writeTo(writer: ECSqlWriter): void;
|
|
946
|
+
static makeAbs(arg: ValueExpr): FuncCallExpr;
|
|
947
|
+
static makeLower(arg: ValueExpr): FuncCallExpr;
|
|
948
|
+
static makeUpper(arg: ValueExpr): FuncCallExpr;
|
|
949
|
+
static makeLTrim(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
|
|
950
|
+
static makeRTrim(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
|
|
951
|
+
static makeLHex(arg: ValueExpr): FuncCallExpr;
|
|
952
|
+
static makeLIfNull(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
|
|
953
|
+
static makeInstr(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
|
|
954
|
+
static makeLength(arg0: ValueExpr): FuncCallExpr;
|
|
955
|
+
static makeLike(arg0: ValueExpr, arg1: ValueExpr, arg2?: ValueExpr): FuncCallExpr;
|
|
956
|
+
static makeLikelihood(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
|
|
957
|
+
static makeMax(arg: ValueExpr, ...optionalArgs: ValueExpr[]): FuncCallExpr;
|
|
958
|
+
static makeMin(arg: ValueExpr, ...optionalArgs: ValueExpr[]): FuncCallExpr;
|
|
959
|
+
static makePrintf(arg: ValueExpr, ...optionalArgs: ValueExpr[]): FuncCallExpr;
|
|
960
|
+
static makeRandom(): FuncCallExpr;
|
|
961
|
+
static makeQuote(arg: ValueExpr): FuncCallExpr;
|
|
962
|
+
static makeRandomBlob(arg: ValueExpr): FuncCallExpr;
|
|
963
|
+
static makeReplace(arg0: ValueExpr, arg1: ValueExpr, arg2: ValueExpr): FuncCallExpr;
|
|
964
|
+
static makeRound(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
|
|
965
|
+
static makeSign(arg0: ValueExpr): FuncCallExpr;
|
|
966
|
+
static makeUnhex(arg0: ValueExpr): FuncCallExpr;
|
|
967
|
+
static makeSoundex(arg0: ValueExpr): FuncCallExpr;
|
|
968
|
+
static makeTrim(arg0: ValueExpr, arg1?: ValueExpr): FuncCallExpr;
|
|
969
|
+
static makeTypeOf(arg0: ValueExpr): FuncCallExpr;
|
|
970
|
+
static makeZeroBlob(arg0: ValueExpr): FuncCallExpr;
|
|
971
|
+
static makeUnlikely(arg0: ValueExpr): FuncCallExpr;
|
|
972
|
+
static makeSubstring(arg0: ValueExpr, arg1: ValueExpr, arg2: ValueExpr): FuncCallExpr;
|
|
973
|
+
static makeStrToGuid(arg0: ValueExpr): FuncCallExpr;
|
|
974
|
+
static makeGuidToStr(arg0: ValueExpr): FuncCallExpr;
|
|
975
|
+
static makeIdToHex(arg0: ValueExpr): FuncCallExpr;
|
|
976
|
+
static makeHexToId(arg0: ValueExpr): FuncCallExpr;
|
|
977
|
+
static makeEcClassName(arg0: ValueExpr, fmt?: "s:c" | "a:c" | "s" | "a" | "c" | "s.c" | "a.c"): FuncCallExpr;
|
|
978
|
+
static makeEcClassId(arg0: ValueExpr): FuncCallExpr;
|
|
979
|
+
static makeInstanceOf(arg0: ValueExpr, arg1: ValueExpr): FuncCallExpr;
|
|
980
|
+
}
|
|
981
|
+
/**
|
|
982
|
+
* Represent positional or named parameter
|
|
983
|
+
* @alpha
|
|
984
|
+
*/
|
|
985
|
+
export declare class ParameterExpr extends ValueExpr {
|
|
986
|
+
readonly name?: string | undefined;
|
|
987
|
+
static readonly type = ExprType.Parameter;
|
|
988
|
+
constructor(name?: string | undefined);
|
|
989
|
+
get children(): Expr[];
|
|
990
|
+
static deserialize(node: NativeECSqlParseNode): ParameterExpr;
|
|
991
|
+
writeTo(writer: ECSqlWriter): void;
|
|
992
|
+
}
|
|
993
|
+
/**
|
|
994
|
+
* Unary value with operator e.g. [+|-|~]<number>
|
|
995
|
+
* @alpha
|
|
996
|
+
*/
|
|
997
|
+
export declare class UnaryValueExpr extends ValueExpr {
|
|
998
|
+
readonly op: UnaryValueOp;
|
|
999
|
+
readonly valueExpr: ValueExpr;
|
|
1000
|
+
static readonly type = ExprType.Unary;
|
|
1001
|
+
constructor(op: UnaryValueOp, valueExpr: ValueExpr);
|
|
1002
|
+
get children(): Expr[];
|
|
1003
|
+
static deserialize(node: NativeECSqlParseNode): UnaryValueExpr;
|
|
1004
|
+
writeTo(writer: ECSqlWriter): void;
|
|
1005
|
+
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Represent constant literal like string, data, time, timestamp, number or null
|
|
1008
|
+
* @alpha
|
|
1009
|
+
*/
|
|
1010
|
+
export declare class LiteralExpr extends ValueExpr {
|
|
1011
|
+
readonly valueType: LiteralValueType;
|
|
1012
|
+
readonly rawValue: string;
|
|
1013
|
+
static readonly type = ExprType.Literal;
|
|
1014
|
+
constructor(valueType: LiteralValueType, rawValue: string);
|
|
1015
|
+
get children(): Expr[];
|
|
1016
|
+
static deserialize(node: NativeECSqlParseNode): LiteralExpr;
|
|
1017
|
+
writeTo(writer: ECSqlWriter): void;
|
|
1018
|
+
static makeRaw(val: string): LiteralExpr;
|
|
1019
|
+
static makeString(val: string): LiteralExpr;
|
|
1020
|
+
static makeNumber(val: number): LiteralExpr;
|
|
1021
|
+
static makeDate(val: Date): LiteralExpr;
|
|
1022
|
+
static makeTime(val: Date): LiteralExpr;
|
|
1023
|
+
static makeTimestamp(val: Date): LiteralExpr;
|
|
1024
|
+
static makeNull(): LiteralExpr;
|
|
1025
|
+
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Represent property name identifier
|
|
1028
|
+
* @alpha
|
|
1029
|
+
*/
|
|
1030
|
+
export declare class PropertyNameExpr extends ValueExpr {
|
|
1031
|
+
readonly propertyPath: string;
|
|
1032
|
+
static readonly type = ExprType.PropertyName;
|
|
1033
|
+
constructor(propertyPath: string);
|
|
1034
|
+
get children(): Expr[];
|
|
1035
|
+
static deserialize(node: NativeECSqlParseNode): PropertyNameExpr;
|
|
1036
|
+
writeTo(writer: ECSqlWriter): void;
|
|
1037
|
+
}
|
|
1038
|
+
export {};
|
|
1039
|
+
//# sourceMappingURL=ECSqlAst.d.ts.map
|