rawsql-ts 0.24.4 → 0.26.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.
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +5 -5
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/parsers/FunctionExpressionParser.d.ts +3 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +50 -2
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/esm/parsers/SqlPrintTokenParser.js +11 -1
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/transformers/AstCommentAttachmentExtractor.d.ts +61 -0
- package/dist/esm/transformers/AstCommentAttachmentExtractor.js +221 -0
- package/dist/esm/transformers/AstCommentAttachmentExtractor.js.map +1 -0
- package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.d.ts +47 -0
- package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.js +235 -0
- package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.js.map +1 -0
- package/dist/esm/transformers/ConditionOptimization.d.ts +66 -0
- package/dist/esm/transformers/ConditionOptimization.js +294 -0
- package/dist/esm/transformers/ConditionOptimization.js.map +1 -0
- package/dist/esm/transformers/NamedQueryDefinitionExtractor.d.ts +53 -0
- package/dist/esm/transformers/NamedQueryDefinitionExtractor.js +370 -0
- package/dist/esm/transformers/NamedQueryDefinitionExtractor.js.map +1 -0
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.d.ts +85 -0
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js +942 -0
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js.map +1 -0
- package/dist/esm/transformers/SelectBodyExtractor.d.ts +21 -0
- package/dist/esm/transformers/SelectBodyExtractor.js +137 -0
- package/dist/esm/transformers/SelectBodyExtractor.js.map +1 -0
- package/dist/esm/transformers/SelectOutputCollector.d.ts +47 -0
- package/dist/esm/transformers/SelectOutputCollector.js +281 -0
- package/dist/esm/transformers/SelectOutputCollector.js.map +1 -0
- package/dist/esm/transformers/SelectValueCollector.d.ts +9 -1
- package/dist/esm/transformers/SelectValueCollector.js +83 -58
- package/dist/esm/transformers/SelectValueCollector.js.map +1 -1
- package/dist/esm/transformers/WildcardColumnInferenceCollector.d.ts +129 -0
- package/dist/esm/transformers/WildcardColumnInferenceCollector.js +373 -0
- package/dist/esm/transformers/WildcardColumnInferenceCollector.js.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +5 -5
- package/dist/index.min.js.map +4 -4
- package/dist/parsers/FunctionExpressionParser.js +49 -1
- package/dist/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +11 -1
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/index.d.ts +8 -0
- package/dist/src/parsers/FunctionExpressionParser.d.ts +3 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/src/transformers/AstCommentAttachmentExtractor.d.ts +61 -0
- package/dist/src/transformers/ClauseScopedColumnReferenceCollector.d.ts +47 -0
- package/dist/src/transformers/ConditionOptimization.d.ts +66 -0
- package/dist/src/transformers/NamedQueryDefinitionExtractor.d.ts +53 -0
- package/dist/src/transformers/ParameterConditionPlacementOptimizer.d.ts +85 -0
- package/dist/src/transformers/SelectBodyExtractor.d.ts +21 -0
- package/dist/src/transformers/SelectOutputCollector.d.ts +47 -0
- package/dist/src/transformers/SelectValueCollector.d.ts +9 -1
- package/dist/src/transformers/WildcardColumnInferenceCollector.d.ts +129 -0
- package/dist/transformers/AstCommentAttachmentExtractor.js +231 -0
- package/dist/transformers/AstCommentAttachmentExtractor.js.map +1 -0
- package/dist/transformers/ClauseScopedColumnReferenceCollector.js +239 -0
- package/dist/transformers/ClauseScopedColumnReferenceCollector.js.map +1 -0
- package/dist/transformers/ConditionOptimization.js +311 -0
- package/dist/transformers/ConditionOptimization.js.map +1 -0
- package/dist/transformers/NamedQueryDefinitionExtractor.js +374 -0
- package/dist/transformers/NamedQueryDefinitionExtractor.js.map +1 -0
- package/dist/transformers/ParameterConditionPlacementOptimizer.js +952 -0
- package/dist/transformers/ParameterConditionPlacementOptimizer.js.map +1 -0
- package/dist/transformers/SelectBodyExtractor.js +141 -0
- package/dist/transformers/SelectBodyExtractor.js.map +1 -0
- package/dist/transformers/SelectOutputCollector.js +291 -0
- package/dist/transformers/SelectOutputCollector.js.map +1 -0
- package/dist/transformers/SelectValueCollector.js +83 -58
- package/dist/transformers/SelectValueCollector.js.map +1 -1
- package/dist/transformers/WildcardColumnInferenceCollector.js +377 -0
- package/dist/transformers/WildcardColumnInferenceCollector.js.map +1 -0
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { CommonTable, DeleteClause, FromClause, FunctionSource, GroupByClause, HavingClause, InsertClause, JoinClause, JoinOnClause, JoinUsingClause, LimitClause, OnConflictClause, OrderByClause, OrderByItem, ParenSource, ReturningClause, SelectClause, SelectItem, SetClause, SourceExpression, SubQuerySource, UpdateClause, UsingClause, WhereClause, WindowFrameClause, WindowsClause, WithClause } from "../models/Clause";
|
|
2
|
+
import { DeleteQuery } from "../models/DeleteQuery";
|
|
3
|
+
import { InsertQuery } from "../models/InsertQuery";
|
|
4
|
+
import { MergeDeleteAction, MergeInsertAction, MergeQuery, MergeUpdateAction, MergeWhenClause } from "../models/MergeQuery";
|
|
5
|
+
import { BinarySelectQuery, SimpleSelectQuery, ValuesQuery } from "../models/SelectQuery";
|
|
6
|
+
import { UpdateQuery } from "../models/UpdateQuery";
|
|
7
|
+
import { ArrayExpression, ArrayIndexExpression, ArrayQueryExpression, ArraySliceExpression, BetweenExpression, BinaryExpression, CaseExpression, CaseKeyValuePair, CastExpression, FunctionCall, InlineQuery, JsonPredicateExpression, ParenExpression, SwitchCaseArgument, TupleExpression, TypeValue, UnaryExpression, ValueList, WindowFrameBoundaryValue, WindowFrameExpression, WindowFrameSpec } from "../models/ValueComponent";
|
|
8
|
+
import { SelectQueryWithClauseHelper } from "../utils/SelectQueryWithClauseHelper";
|
|
9
|
+
/**
|
|
10
|
+
* Extracts named query definitions, starting with CTE definitions from `WITH` clauses.
|
|
11
|
+
*
|
|
12
|
+
* @remarks Definitions are emitted in SQL source order. For nested CTEs, the outer
|
|
13
|
+
* CTE definition is emitted when its name is encountered, then definitions inside
|
|
14
|
+
* that CTE body are emitted before later sibling CTE definitions.
|
|
15
|
+
*/
|
|
16
|
+
export class NamedQueryDefinitionExtractor {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.definitions = [];
|
|
19
|
+
this.visited = new Set();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Extract named query definitions from an AST component.
|
|
23
|
+
*/
|
|
24
|
+
static extract(input) {
|
|
25
|
+
if (!input) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
const extractor = new NamedQueryDefinitionExtractor();
|
|
29
|
+
extractor.visit(input);
|
|
30
|
+
return extractor.definitions;
|
|
31
|
+
}
|
|
32
|
+
visit(value) {
|
|
33
|
+
if (!value || typeof value !== "object") {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (this.visited.has(value)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.visited.add(value);
|
|
40
|
+
if (value instanceof WithClause) {
|
|
41
|
+
this.visitWithClause(value);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (value instanceof CommonTable) {
|
|
45
|
+
this.visitCommonTable(value);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (value instanceof SimpleSelectQuery || value instanceof BinarySelectQuery || value instanceof ValuesQuery) {
|
|
49
|
+
this.visitSelectQuery(value);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (value instanceof InsertQuery) {
|
|
53
|
+
this.visitInsertQuery(value);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (value instanceof UpdateQuery) {
|
|
57
|
+
this.visitUpdateQuery(value);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (value instanceof DeleteQuery) {
|
|
61
|
+
this.visitDeleteQuery(value);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (value instanceof MergeQuery) {
|
|
65
|
+
this.visitMergeQuery(value);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (this.visitKnownValueComponent(value)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (this.visitKnownSqlComponent(value)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
for (const item of value) {
|
|
76
|
+
this.visit(item);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
for (const key of Object.keys(value)) {
|
|
81
|
+
this.visit(value[key]);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
visitSelectQuery(query, includeWith = true) {
|
|
85
|
+
if (query instanceof SimpleSelectQuery) {
|
|
86
|
+
this.visitSimpleSelectQuery(query, includeWith);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (query instanceof BinarySelectQuery) {
|
|
90
|
+
this.visitSelectQuery(query.left, includeWith);
|
|
91
|
+
this.visitSelectQuery(query.right);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (query instanceof ValuesQuery) {
|
|
95
|
+
if (includeWith) {
|
|
96
|
+
this.visit(query.withClause);
|
|
97
|
+
}
|
|
98
|
+
this.visit(query.tuples);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
visitSimpleSelectQuery(query, includeWith) {
|
|
102
|
+
if (includeWith) {
|
|
103
|
+
this.visit(query.withClause);
|
|
104
|
+
}
|
|
105
|
+
this.visit(query.selectClause);
|
|
106
|
+
this.visit(query.fromClause);
|
|
107
|
+
this.visit(query.whereClause);
|
|
108
|
+
this.visit(query.groupByClause);
|
|
109
|
+
this.visit(query.havingClause);
|
|
110
|
+
this.visit(query.windowClause);
|
|
111
|
+
this.visit(query.orderByClause);
|
|
112
|
+
this.visit(query.limitClause);
|
|
113
|
+
this.visit(query.offsetClause);
|
|
114
|
+
this.visit(query.fetchClause);
|
|
115
|
+
this.visit(query.forClause);
|
|
116
|
+
}
|
|
117
|
+
visitInsertQuery(query) {
|
|
118
|
+
const withClause = SelectQueryWithClauseHelper.getWithClause(query.selectQuery);
|
|
119
|
+
this.visit(withClause);
|
|
120
|
+
this.visit(query.insertClause);
|
|
121
|
+
if (query.selectQuery) {
|
|
122
|
+
this.visitSelectQuery(query.selectQuery, false);
|
|
123
|
+
}
|
|
124
|
+
this.visit(query.onConflictClause);
|
|
125
|
+
this.visit(query.returningClause);
|
|
126
|
+
}
|
|
127
|
+
visitUpdateQuery(query) {
|
|
128
|
+
this.visit(query.withClause);
|
|
129
|
+
this.visit(query.updateClause);
|
|
130
|
+
this.visit(query.setClause);
|
|
131
|
+
this.visit(query.fromClause);
|
|
132
|
+
this.visit(query.whereClause);
|
|
133
|
+
this.visit(query.returningClause);
|
|
134
|
+
}
|
|
135
|
+
visitDeleteQuery(query) {
|
|
136
|
+
this.visit(query.withClause);
|
|
137
|
+
this.visit(query.deleteClause);
|
|
138
|
+
this.visit(query.usingClause);
|
|
139
|
+
this.visit(query.whereClause);
|
|
140
|
+
this.visit(query.returningClause);
|
|
141
|
+
}
|
|
142
|
+
visitMergeQuery(query) {
|
|
143
|
+
this.visit(query.withClause);
|
|
144
|
+
this.visit(query.target);
|
|
145
|
+
this.visit(query.source);
|
|
146
|
+
this.visit(query.onCondition);
|
|
147
|
+
this.visit(query.whenClauses);
|
|
148
|
+
this.visit(query.returningClause);
|
|
149
|
+
}
|
|
150
|
+
visitWithClause(withClause) {
|
|
151
|
+
for (const commonTable of withClause.tables) {
|
|
152
|
+
this.visitCommonTable(commonTable, withClause.recursive);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
visitCommonTable(commonTable, recursive) {
|
|
156
|
+
const definition = {
|
|
157
|
+
name: commonTable.getSourceAliasName(),
|
|
158
|
+
query: commonTable.query,
|
|
159
|
+
range: null,
|
|
160
|
+
nameRange: null
|
|
161
|
+
};
|
|
162
|
+
if (recursive !== undefined) {
|
|
163
|
+
definition.recursive = recursive;
|
|
164
|
+
}
|
|
165
|
+
this.definitions.push(definition);
|
|
166
|
+
this.visit(commonTable.query);
|
|
167
|
+
}
|
|
168
|
+
visitKnownSqlComponent(value) {
|
|
169
|
+
if (value instanceof SelectClause) {
|
|
170
|
+
this.visit(value.distinct);
|
|
171
|
+
this.visit(value.hints);
|
|
172
|
+
this.visit(value.items);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
if (value instanceof SelectItem) {
|
|
176
|
+
this.visit(value.value);
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
if (value instanceof FromClause) {
|
|
180
|
+
this.visit(value.source);
|
|
181
|
+
this.visit(value.joins);
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
if (value instanceof JoinClause) {
|
|
185
|
+
this.visit(value.source);
|
|
186
|
+
this.visit(value.condition);
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
if (value instanceof JoinOnClause || value instanceof JoinUsingClause) {
|
|
190
|
+
this.visit(value.condition);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
if (value instanceof SourceExpression) {
|
|
194
|
+
this.visit(value.datasource);
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
if (value instanceof SubQuerySource) {
|
|
198
|
+
this.visitSelectQuery(value.query);
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
if (value instanceof FunctionSource) {
|
|
202
|
+
this.visit(value.argument);
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
if (value instanceof ParenSource) {
|
|
206
|
+
this.visit(value.source);
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
if (value instanceof WhereClause || value instanceof HavingClause) {
|
|
210
|
+
this.visit(value.condition);
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
if (value instanceof LimitClause) {
|
|
214
|
+
this.visit(value.value);
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
if (value instanceof GroupByClause) {
|
|
218
|
+
this.visit(value.grouping);
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
if (value instanceof WindowsClause) {
|
|
222
|
+
this.visit(value.windows);
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
if (value instanceof WindowFrameClause) {
|
|
226
|
+
this.visit(value.expression);
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
if (value instanceof OrderByClause) {
|
|
230
|
+
this.visit(value.order);
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
if (value instanceof OrderByItem) {
|
|
234
|
+
this.visit(value.value);
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
if (value instanceof ReturningClause) {
|
|
238
|
+
this.visit(value.items);
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
if (value instanceof OnConflictClause) {
|
|
242
|
+
this.visit(value.setClause);
|
|
243
|
+
this.visit(value.whereClause);
|
|
244
|
+
this.visit(value.forClause);
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
if (value instanceof SetClause) {
|
|
248
|
+
for (const item of value.items) {
|
|
249
|
+
this.visit(item.value);
|
|
250
|
+
}
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
if (value instanceof UpdateClause || value instanceof DeleteClause || value instanceof InsertClause) {
|
|
254
|
+
this.visit(value.source);
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
if (value instanceof UsingClause) {
|
|
258
|
+
this.visit(value.sources);
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
if (value instanceof MergeWhenClause) {
|
|
262
|
+
this.visit(value.condition);
|
|
263
|
+
this.visit(value.action);
|
|
264
|
+
return true;
|
|
265
|
+
}
|
|
266
|
+
if (value instanceof MergeUpdateAction) {
|
|
267
|
+
this.visit(value.setClause);
|
|
268
|
+
this.visit(value.whereClause);
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
if (value instanceof MergeDeleteAction) {
|
|
272
|
+
this.visit(value.whereClause);
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
if (value instanceof MergeInsertAction) {
|
|
276
|
+
this.visit(value.values);
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
visitKnownValueComponent(value) {
|
|
282
|
+
if (value instanceof ValueList || value instanceof TupleExpression) {
|
|
283
|
+
this.visit(value.values);
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
if (value instanceof FunctionCall) {
|
|
287
|
+
this.visit(value.argument);
|
|
288
|
+
this.visit(value.internalOrderBy);
|
|
289
|
+
this.visit(value.withinGroup);
|
|
290
|
+
this.visit(value.filterCondition);
|
|
291
|
+
this.visit(value.over);
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
if (value instanceof WindowFrameExpression) {
|
|
295
|
+
this.visit(value.partition);
|
|
296
|
+
this.visit(value.order);
|
|
297
|
+
this.visit(value.frameSpec);
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
if (value instanceof WindowFrameSpec) {
|
|
301
|
+
this.visit(value.startBound);
|
|
302
|
+
this.visit(value.endBound);
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
if (value instanceof WindowFrameBoundaryValue) {
|
|
306
|
+
this.visit(value.value);
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
if (value instanceof UnaryExpression || value instanceof ParenExpression || value instanceof ArrayExpression || value instanceof JsonPredicateExpression) {
|
|
310
|
+
this.visit(value.expression);
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
if (value instanceof BinaryExpression) {
|
|
314
|
+
this.visit(value.left);
|
|
315
|
+
this.visit(value.right);
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
if (value instanceof SwitchCaseArgument) {
|
|
319
|
+
this.visit(value.cases);
|
|
320
|
+
this.visit(value.elseValue);
|
|
321
|
+
return true;
|
|
322
|
+
}
|
|
323
|
+
if (value instanceof CaseKeyValuePair) {
|
|
324
|
+
this.visit(value.key);
|
|
325
|
+
this.visit(value.value);
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
if (value instanceof CastExpression) {
|
|
329
|
+
this.visit(value.input);
|
|
330
|
+
this.visit(value.castType);
|
|
331
|
+
return true;
|
|
332
|
+
}
|
|
333
|
+
if (value instanceof CaseExpression) {
|
|
334
|
+
this.visit(value.condition);
|
|
335
|
+
this.visit(value.switchCase);
|
|
336
|
+
return true;
|
|
337
|
+
}
|
|
338
|
+
if (value instanceof ArrayQueryExpression) {
|
|
339
|
+
this.visitSelectQuery(value.query);
|
|
340
|
+
return true;
|
|
341
|
+
}
|
|
342
|
+
if (value instanceof InlineQuery) {
|
|
343
|
+
this.visitSelectQuery(value.selectQuery);
|
|
344
|
+
return true;
|
|
345
|
+
}
|
|
346
|
+
if (value instanceof BetweenExpression) {
|
|
347
|
+
this.visit(value.expression);
|
|
348
|
+
this.visit(value.lower);
|
|
349
|
+
this.visit(value.upper);
|
|
350
|
+
return true;
|
|
351
|
+
}
|
|
352
|
+
if (value instanceof TypeValue) {
|
|
353
|
+
this.visit(value.argument);
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
356
|
+
if (value instanceof ArraySliceExpression) {
|
|
357
|
+
this.visit(value.array);
|
|
358
|
+
this.visit(value.startIndex);
|
|
359
|
+
this.visit(value.endIndex);
|
|
360
|
+
return true;
|
|
361
|
+
}
|
|
362
|
+
if (value instanceof ArrayIndexExpression) {
|
|
363
|
+
this.visit(value.array);
|
|
364
|
+
this.visit(value.index);
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=NamedQueryDefinitionExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NamedQueryDefinitionExtractor.js","sourceRoot":"","sources":["../../../src/transformers/NamedQueryDefinitionExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
|
2
|
+
export type ParameterConditionOptimizationInput = string | SelectQuery | SimpleSelectQuery;
|
|
3
|
+
/**
|
|
4
|
+
* First-phase safe-only placement for ordinary parameter predicates.
|
|
5
|
+
*
|
|
6
|
+
* The optimizer intentionally handles only root top-level AND predicates and one
|
|
7
|
+
* CTE/derived-table hop where the destination output is a direct column reference.
|
|
8
|
+
* Unsupported boundaries such as OR, UNION, DISTINCT, GROUP BY, WINDOW, OUTER
|
|
9
|
+
* JOIN, expression outputs, and function predicates are reported as skipped.
|
|
10
|
+
*/
|
|
11
|
+
export interface ParameterConditionOptimizationOptions {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ParameterConditionOptimizationWarning {
|
|
15
|
+
code: string;
|
|
16
|
+
message: string;
|
|
17
|
+
detail?: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface ParameterConditionOptimizationError {
|
|
20
|
+
code: string;
|
|
21
|
+
message: string;
|
|
22
|
+
detail?: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface ParameterConditionMove {
|
|
25
|
+
kind: "move_condition";
|
|
26
|
+
conditionSql: string;
|
|
27
|
+
fromScopeId: string;
|
|
28
|
+
toScopeId: string;
|
|
29
|
+
reason: string;
|
|
30
|
+
parameterNames: readonly string[];
|
|
31
|
+
columnReferences: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
export interface ParameterConditionSkipped {
|
|
34
|
+
conditionSql: string;
|
|
35
|
+
scopeId: string;
|
|
36
|
+
reason: string;
|
|
37
|
+
code: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ParameterConditionOptimizationSafety {
|
|
40
|
+
mode: "safe_only";
|
|
41
|
+
unsafeRewriteApplied: false;
|
|
42
|
+
dryRun: boolean;
|
|
43
|
+
formatterGeneratedSource: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface ParameterConditionOptimizationResult {
|
|
46
|
+
ok: boolean;
|
|
47
|
+
sql: string;
|
|
48
|
+
applied: readonly ParameterConditionMove[];
|
|
49
|
+
skipped: readonly ParameterConditionSkipped[];
|
|
50
|
+
warnings: readonly ParameterConditionOptimizationWarning[];
|
|
51
|
+
errors: readonly ParameterConditionOptimizationError[];
|
|
52
|
+
safety: ParameterConditionOptimizationSafety;
|
|
53
|
+
conditionMoves: readonly ParameterConditionMove[];
|
|
54
|
+
}
|
|
55
|
+
export declare class ParameterConditionPlacementOptimizer {
|
|
56
|
+
plan(input: ParameterConditionOptimizationInput, options?: ParameterConditionOptimizationOptions): ParameterConditionOptimizationResult;
|
|
57
|
+
optimize(input: ParameterConditionOptimizationInput, options?: ParameterConditionOptimizationOptions): ParameterConditionOptimizationResult;
|
|
58
|
+
private parseInput;
|
|
59
|
+
private analyzeCandidate;
|
|
60
|
+
private findUnsupportedExpression;
|
|
61
|
+
private isSupportedInPredicate;
|
|
62
|
+
private resolveTarget;
|
|
63
|
+
private findCurrentQueryBoundary;
|
|
64
|
+
private findTargetQueryBoundary;
|
|
65
|
+
private resolveSourceBinding;
|
|
66
|
+
private resolveUpstreamQuery;
|
|
67
|
+
private resolveTargetColumn;
|
|
68
|
+
private verifyColumnResolvableInQuery;
|
|
69
|
+
private rebaseCondition;
|
|
70
|
+
private getSourceBindings;
|
|
71
|
+
private findNullableSideBoundary;
|
|
72
|
+
private hasOuterJoin;
|
|
73
|
+
private getOutputColumnMatchCount;
|
|
74
|
+
private resolveSourceQueryForColumns;
|
|
75
|
+
private getSelectItemOutputName;
|
|
76
|
+
private findCte;
|
|
77
|
+
private countTableSourceReferences;
|
|
78
|
+
private hasWindowUsage;
|
|
79
|
+
private collectColumnReferences;
|
|
80
|
+
private collectParameterNames;
|
|
81
|
+
private makeSkipped;
|
|
82
|
+
private buildResult;
|
|
83
|
+
}
|
|
84
|
+
export declare const planParameterConditionOptimization: (input: ParameterConditionOptimizationInput, options?: ParameterConditionOptimizationOptions) => ParameterConditionOptimizationResult;
|
|
85
|
+
export declare const optimizeParameterConditionPlacement: (input: ParameterConditionOptimizationInput, options?: ParameterConditionOptimizationOptions) => ParameterConditionOptimizationResult;
|