sof-mssql 2.1.0 → 2.3.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/fhirpath/visitor.d.ts +78 -0
- package/dist/fhirpath/visitor.d.ts.map +1 -1
- package/dist/fhirpath/visitor.js +208 -11
- package/dist/fhirpath/visitor.js.map +1 -1
- package/dist/parser.d.ts +1 -1
- package/dist/parser.js +1 -1
- package/dist/queryGenerator/index.d.ts +0 -4
- package/dist/queryGenerator/index.d.ts.map +1 -1
- package/dist/queryGenerator/index.js +1 -9
- package/dist/queryGenerator/index.js.map +1 -1
- package/dist/queryGenerator/treeWalker/aliasGenerator.d.ts +26 -0
- package/dist/queryGenerator/treeWalker/aliasGenerator.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/aliasGenerator.js +31 -0
- package/dist/queryGenerator/treeWalker/aliasGenerator.js.map +1 -0
- package/dist/queryGenerator/treeWalker/classify.d.ts +19 -0
- package/dist/queryGenerator/treeWalker/classify.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/classify.js +36 -0
- package/dist/queryGenerator/treeWalker/classify.js.map +1 -0
- package/dist/queryGenerator/treeWalker/compile.d.ts +29 -0
- package/dist/queryGenerator/treeWalker/compile.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/compile.js +97 -0
- package/dist/queryGenerator/treeWalker/compile.js.map +1 -0
- package/dist/queryGenerator/treeWalker/cteTemplates.d.ts +58 -0
- package/dist/queryGenerator/treeWalker/cteTemplates.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/cteTemplates.js +131 -0
- package/dist/queryGenerator/treeWalker/cteTemplates.js.map +1 -0
- package/dist/queryGenerator/treeWalker/index.d.ts +6 -0
- package/dist/queryGenerator/treeWalker/index.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/index.js +9 -0
- package/dist/queryGenerator/treeWalker/index.js.map +1 -0
- package/dist/queryGenerator/treeWalker/mergeSiblings.d.ts +28 -0
- package/dist/queryGenerator/treeWalker/mergeSiblings.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/mergeSiblings.js +54 -0
- package/dist/queryGenerator/treeWalker/mergeSiblings.js.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/columnsOnly.d.ts +40 -0
- package/dist/queryGenerator/treeWalker/operators/columnsOnly.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/columnsOnly.js +56 -0
- package/dist/queryGenerator/treeWalker/operators/columnsOnly.js.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/forEach.d.ts +47 -0
- package/dist/queryGenerator/treeWalker/operators/forEach.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/forEach.js +150 -0
- package/dist/queryGenerator/treeWalker/operators/forEach.js.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/group.d.ts +35 -0
- package/dist/queryGenerator/treeWalker/operators/group.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/group.js +56 -0
- package/dist/queryGenerator/treeWalker/operators/group.js.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/repeat.d.ts +47 -0
- package/dist/queryGenerator/treeWalker/operators/repeat.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/repeat.js +122 -0
- package/dist/queryGenerator/treeWalker/operators/repeat.js.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/unionAll.d.ts +54 -0
- package/dist/queryGenerator/treeWalker/operators/unionAll.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/operators/unionAll.js +121 -0
- package/dist/queryGenerator/treeWalker/operators/unionAll.js.map +1 -0
- package/dist/queryGenerator/treeWalker/render.d.ts +34 -0
- package/dist/queryGenerator/treeWalker/render.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/render.js +41 -0
- package/dist/queryGenerator/treeWalker/render.js.map +1 -0
- package/dist/queryGenerator/treeWalker/types.d.ts +64 -0
- package/dist/queryGenerator/treeWalker/types.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/types.js +14 -0
- package/dist/queryGenerator/treeWalker/types.js.map +1 -0
- package/dist/queryGenerator/treeWalker/walker.d.ts +36 -0
- package/dist/queryGenerator/treeWalker/walker.d.ts.map +1 -0
- package/dist/queryGenerator/treeWalker/walker.js +58 -0
- package/dist/queryGenerator/treeWalker/walker.js.map +1 -0
- package/dist/queryGenerator.d.ts +8 -94
- package/dist/queryGenerator.d.ts.map +1 -1
- package/dist/queryGenerator.js +16 -268
- package/dist/queryGenerator.js.map +1 -1
- package/dist/tests/utils/database.d.ts +2 -0
- package/dist/tests/utils/database.d.ts.map +1 -1
- package/dist/tests/utils/database.js +10 -1
- package/dist/tests/utils/database.js.map +1 -1
- package/dist/tests/utils/generator.d.ts +2 -0
- package/dist/tests/utils/generator.d.ts.map +1 -1
- package/dist/tests/utils/generator.js +24 -0
- package/dist/tests/utils/generator.js.map +1 -1
- package/dist/tests/utils/reporter.d.ts +1 -1
- package/dist/tests/utils/reporter.d.ts.map +1 -1
- package/dist/tests/utils/reporter.js +5 -4
- package/dist/tests/utils/reporter.js.map +1 -1
- package/dist/tests/utils/types.d.ts +1 -1
- package/dist/tests/utils/types.js +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +2 -1
- package/dist/queryGenerator/ForEachProcessor.d.ts +0 -127
- package/dist/queryGenerator/ForEachProcessor.d.ts.map +0 -1
- package/dist/queryGenerator/ForEachProcessor.js +0 -351
- package/dist/queryGenerator/ForEachProcessor.js.map +0 -1
- package/dist/queryGenerator/RepeatProcessor.d.ts +0 -177
- package/dist/queryGenerator/RepeatProcessor.d.ts.map +0 -1
- package/dist/queryGenerator/RepeatProcessor.js +0 -336
- package/dist/queryGenerator/RepeatProcessor.js.map +0 -1
- package/dist/queryGenerator/SelectClauseBuilder.d.ts +0 -108
- package/dist/queryGenerator/SelectClauseBuilder.d.ts.map +0 -1
- package/dist/queryGenerator/SelectClauseBuilder.js +0 -346
- package/dist/queryGenerator/SelectClauseBuilder.js.map +0 -1
- package/dist/queryGenerator/SelectCombinationExpander.d.ts +0 -42
- package/dist/queryGenerator/SelectCombinationExpander.d.ts.map +0 -1
- package/dist/queryGenerator/SelectCombinationExpander.js +0 -95
- package/dist/queryGenerator/SelectCombinationExpander.js.map +0 -1
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Builds SELECT clauses for SQL queries.
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SelectClauseBuilder = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Handles generation of SELECT clauses.
|
|
9
|
-
*/
|
|
10
|
-
class SelectClauseBuilder {
|
|
11
|
-
columnGenerator;
|
|
12
|
-
constructor(columnGenerator) {
|
|
13
|
-
this.columnGenerator = columnGenerator;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Generate SELECT clause for a simple (non-forEach) statement.
|
|
17
|
-
*/
|
|
18
|
-
generateSimpleSelectClause(combination, context) {
|
|
19
|
-
const columnParts = [];
|
|
20
|
-
for (let i = 0; i < combination.selects.length; i++) {
|
|
21
|
-
const select = combination.selects[i];
|
|
22
|
-
const unionChoice = combination.unionChoices[i];
|
|
23
|
-
this.addSelectElementColumns(select, columnParts, context);
|
|
24
|
-
this.addUnionAllColumns(select, unionChoice, columnParts, context);
|
|
25
|
-
}
|
|
26
|
-
return `SELECT\n ${columnParts.join(",\n ")}`;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Generate SELECT clause specifically for forEach statements.
|
|
30
|
-
*/
|
|
31
|
-
generateForEachSelectClause(combination, context, forEachContextMap) {
|
|
32
|
-
const columnParts = [];
|
|
33
|
-
for (let i = 0; i < combination.selects.length; i++) {
|
|
34
|
-
const select = combination.selects[i];
|
|
35
|
-
const unionChoice = combination.unionChoices[i];
|
|
36
|
-
if (this.isForEachSelect(select)) {
|
|
37
|
-
this.addForEachSelectColumns(select, unionChoice, columnParts, forEachContextMap);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.addNonForEachSelectColumns(select, unionChoice, columnParts, context, forEachContextMap);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return `SELECT\n ${columnParts.join(",\n ")}`;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Generate SELECT clause for repeat statements.
|
|
47
|
-
*
|
|
48
|
-
* For repeat selects, columns are extracted from the CTE's item_json column.
|
|
49
|
-
* Non-repeat columns use the base context (resource JSON).
|
|
50
|
-
* If forEach is also present, those columns use the forEach context.
|
|
51
|
-
*
|
|
52
|
-
* @param combination - The select combination being processed.
|
|
53
|
-
* @param context - The base transpiler context.
|
|
54
|
-
* @param repeatContextMap - Map of repeat selects to their contexts.
|
|
55
|
-
* @param forEachContextMap - Optional map of forEach selects to their contexts.
|
|
56
|
-
* @returns The generated SELECT clause.
|
|
57
|
-
*/
|
|
58
|
-
generateRepeatSelectClause(combination, context, repeatContextMap, forEachContextMap) {
|
|
59
|
-
const columnParts = [];
|
|
60
|
-
for (let i = 0; i < combination.selects.length; i++) {
|
|
61
|
-
const select = combination.selects[i];
|
|
62
|
-
const unionChoice = combination.unionChoices[i];
|
|
63
|
-
if (this.isRepeatSelect(select)) {
|
|
64
|
-
this.addRepeatSelectColumns(select, unionChoice, columnParts, repeatContextMap, forEachContextMap);
|
|
65
|
-
}
|
|
66
|
-
else if (this.isForEachSelect(select) && forEachContextMap) {
|
|
67
|
-
this.addForEachSelectColumns(select, unionChoice, columnParts, forEachContextMap);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.addNonRepeatSelectColumns(select, unionChoice, columnParts, context, repeatContextMap, forEachContextMap);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return `SELECT\n ${columnParts.join(",\n ")}`;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Add columns for a repeat select.
|
|
77
|
-
*
|
|
78
|
-
* Columns within the repeat use the repeat context (CTE item_json).
|
|
79
|
-
* Nested forEach within the repeat use their forEach context.
|
|
80
|
-
*/
|
|
81
|
-
addRepeatSelectColumns(select, unionChoice, columnParts, repeatContextMap, forEachContextMap) {
|
|
82
|
-
const repeatContext = repeatContextMap.get(select);
|
|
83
|
-
if (!repeatContext) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
// Add columns from the repeat select using its transpiler context.
|
|
87
|
-
if (select.column) {
|
|
88
|
-
this.addColumnsToList(select.column, columnParts, repeatContext.transpilerContext);
|
|
89
|
-
}
|
|
90
|
-
this.addNestedSelectColumnsForRepeat(select, columnParts, repeatContext.transpilerContext, forEachContextMap);
|
|
91
|
-
this.addRepeatUnionAllColumns(select, unionChoice, columnParts, repeatContext.transpilerContext, repeatContextMap);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Add nested select columns for a repeat select.
|
|
95
|
-
*
|
|
96
|
-
* Nested forEach selects use their own context, while other nested selects
|
|
97
|
-
* use the repeat context.
|
|
98
|
-
*/
|
|
99
|
-
addNestedSelectColumnsForRepeat(select, columnParts, repeatTranspilerContext, forEachContextMap) {
|
|
100
|
-
if (!select.select) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
for (const nestedSelect of select.select) {
|
|
104
|
-
if (this.isForEachSelect(nestedSelect) && forEachContextMap) {
|
|
105
|
-
// Nested forEach uses its own context (source updated to use repeat CTE).
|
|
106
|
-
const nestedContext = forEachContextMap.get(nestedSelect);
|
|
107
|
-
if (nestedContext && nestedSelect.column) {
|
|
108
|
-
this.addColumnsToList(nestedSelect.column, columnParts, nestedContext);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else if (nestedSelect.column) {
|
|
112
|
-
// Non-forEach nested selects use the repeat context.
|
|
113
|
-
this.addColumnsToList(nestedSelect.column, columnParts, repeatTranspilerContext);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Add columns for unionAll branches within a repeat select.
|
|
119
|
-
*/
|
|
120
|
-
addRepeatUnionAllColumns(select, unionChoice, columnParts, defaultContext, repeatContextMap) {
|
|
121
|
-
if (unionChoice < 0 || !select.unionAll?.[unionChoice]) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
const chosenBranch = select.unionAll[unionChoice];
|
|
125
|
-
if (!chosenBranch.column) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
// Check if the chosen branch is also a repeat.
|
|
129
|
-
const branchRepeatContext = repeatContextMap.get(chosenBranch);
|
|
130
|
-
const branchContext = branchRepeatContext
|
|
131
|
-
? branchRepeatContext.transpilerContext
|
|
132
|
-
: defaultContext;
|
|
133
|
-
this.addColumnsToList(chosenBranch.column, columnParts, branchContext);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Add columns for a non-repeat select (when repeat is present elsewhere).
|
|
137
|
-
*/
|
|
138
|
-
addNonRepeatSelectColumns(select, unionChoice, columnParts, context, repeatContextMap, forEachContextMap) {
|
|
139
|
-
if (select.column) {
|
|
140
|
-
this.addColumnsToList(select.column, columnParts, context);
|
|
141
|
-
}
|
|
142
|
-
// Handle nested selects.
|
|
143
|
-
if (select.select) {
|
|
144
|
-
for (const nestedSelect of select.select) {
|
|
145
|
-
if (this.isRepeatSelect(nestedSelect)) {
|
|
146
|
-
this.addRepeatSelectColumns(nestedSelect, -1, columnParts, repeatContextMap, forEachContextMap);
|
|
147
|
-
}
|
|
148
|
-
else if (this.isForEachSelect(nestedSelect) && forEachContextMap) {
|
|
149
|
-
const nestedContext = forEachContextMap.get(nestedSelect);
|
|
150
|
-
if (nestedContext && nestedSelect.column) {
|
|
151
|
-
this.addColumnsToList(nestedSelect.column, columnParts, nestedContext);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
else if (nestedSelect.column) {
|
|
155
|
-
this.addColumnsToList(nestedSelect.column, columnParts, context);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
// Handle unionAll within non-repeat select.
|
|
160
|
-
this.addUnionAllColumnsForRepeatContext(select, unionChoice, columnParts, context, repeatContextMap, forEachContextMap);
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Add unionAll columns when repeat context is available.
|
|
164
|
-
*/
|
|
165
|
-
addUnionAllColumnsForRepeatContext(select, unionChoice, columnParts, defaultContext, repeatContextMap, forEachContextMap) {
|
|
166
|
-
if (unionChoice < 0 || !select.unionAll?.[unionChoice]) {
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
const chosenBranch = select.unionAll[unionChoice];
|
|
170
|
-
if (!chosenBranch.column) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
// Determine context based on directive type.
|
|
174
|
-
let branchContext = defaultContext;
|
|
175
|
-
if (this.isRepeatSelect(chosenBranch)) {
|
|
176
|
-
const repeatContext = repeatContextMap.get(chosenBranch);
|
|
177
|
-
if (repeatContext) {
|
|
178
|
-
branchContext = repeatContext.transpilerContext;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
else if (this.isForEachSelect(chosenBranch) && forEachContextMap) {
|
|
182
|
-
const forEachContext = forEachContextMap.get(chosenBranch);
|
|
183
|
-
if (forEachContext) {
|
|
184
|
-
branchContext = forEachContext;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
this.addColumnsToList(chosenBranch.column, columnParts, branchContext);
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Check if a select is a repeat select.
|
|
191
|
-
*/
|
|
192
|
-
isRepeatSelect(select) {
|
|
193
|
-
return !!(select.repeat && select.repeat.length > 0);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Add columns from a select element to the column parts array.
|
|
197
|
-
*/
|
|
198
|
-
addSelectElementColumns(select, columnParts, context) {
|
|
199
|
-
// Skip forEach selects - handled separately.
|
|
200
|
-
if (this.isForEachSelect(select)) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
if (select.column) {
|
|
204
|
-
this.addColumnsToList(select.column, columnParts, context);
|
|
205
|
-
}
|
|
206
|
-
if (select.select) {
|
|
207
|
-
for (const nestedSelect of select.select) {
|
|
208
|
-
const nestedColumns = this.generateSelectElementColumns(nestedSelect, context);
|
|
209
|
-
columnParts.push(...nestedColumns);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Generate column expressions for a select element (used for nested selects).
|
|
215
|
-
*/
|
|
216
|
-
generateSelectElementColumns(select, context) {
|
|
217
|
-
const columnParts = [];
|
|
218
|
-
if (select.column) {
|
|
219
|
-
this.addColumnsToList(select.column, columnParts, context);
|
|
220
|
-
}
|
|
221
|
-
if (select.select) {
|
|
222
|
-
for (const nestedSelect of select.select) {
|
|
223
|
-
const nestedColumns = this.generateSelectElementColumns(nestedSelect, context);
|
|
224
|
-
columnParts.push(...nestedColumns);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
return columnParts;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Add unionAll columns for the chosen combination.
|
|
231
|
-
*/
|
|
232
|
-
addUnionAllColumns(select, unionChoice, columnParts, context, forEachContextMap) {
|
|
233
|
-
if (!select.unionAll ||
|
|
234
|
-
unionChoice < 0 ||
|
|
235
|
-
unionChoice >= select.unionAll.length) {
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
const chosenUnion = select.unionAll[unionChoice];
|
|
239
|
-
if (this.isForEachSelect(chosenUnion) && forEachContextMap) {
|
|
240
|
-
const unionForEachContext = forEachContextMap.get(chosenUnion);
|
|
241
|
-
if (unionForEachContext && chosenUnion.column) {
|
|
242
|
-
this.addColumnsToList(chosenUnion.column, columnParts, unionForEachContext);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
else if (chosenUnion.column) {
|
|
246
|
-
this.addColumnsToList(chosenUnion.column, columnParts, context);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Add columns for a forEach select.
|
|
251
|
-
*/
|
|
252
|
-
addForEachSelectColumns(select, unionChoice, columnParts, forEachContextMap) {
|
|
253
|
-
const forEachContext = forEachContextMap.get(select);
|
|
254
|
-
if (!forEachContext) {
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
if (select.column) {
|
|
258
|
-
this.addColumnsToList(select.column, columnParts, forEachContext);
|
|
259
|
-
}
|
|
260
|
-
this.addNestedSelectColumnsForForEach(select, columnParts, forEachContext, forEachContextMap);
|
|
261
|
-
this.addUnionAllColumnsForSelect(select, unionChoice, columnParts, forEachContext, forEachContextMap);
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Add columns for a non-forEach select.
|
|
265
|
-
*/
|
|
266
|
-
addNonForEachSelectColumns(select, unionChoice, columnParts, context, forEachContextMap) {
|
|
267
|
-
if (select.column) {
|
|
268
|
-
this.addColumnsToList(select.column, columnParts, context);
|
|
269
|
-
}
|
|
270
|
-
this.addNestedSelectColumnsForNonForEach(select, columnParts, context, forEachContextMap);
|
|
271
|
-
this.addUnionAllColumnsForSelect(select, unionChoice, columnParts, context, forEachContextMap);
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Add nested select columns for forEach select.
|
|
275
|
-
*/
|
|
276
|
-
addNestedSelectColumnsForForEach(select, columnParts, parentContext, forEachContextMap) {
|
|
277
|
-
if (!select.select) {
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
for (const nestedSelect of select.select) {
|
|
281
|
-
if (this.isForEachSelect(nestedSelect)) {
|
|
282
|
-
const nestedContext = forEachContextMap.get(nestedSelect);
|
|
283
|
-
if (nestedContext && nestedSelect.column) {
|
|
284
|
-
this.addColumnsToList(nestedSelect.column, columnParts, nestedContext);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
else if (nestedSelect.column) {
|
|
288
|
-
this.addColumnsToList(nestedSelect.column, columnParts, parentContext);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Add nested select columns for non-forEach select.
|
|
294
|
-
*/
|
|
295
|
-
addNestedSelectColumnsForNonForEach(select, columnParts, context, forEachContextMap) {
|
|
296
|
-
if (!select.select) {
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
for (const nestedSelect of select.select) {
|
|
300
|
-
if (this.isForEachSelect(nestedSelect)) {
|
|
301
|
-
const forEachContext = forEachContextMap.get(nestedSelect);
|
|
302
|
-
if (forEachContext && nestedSelect.column) {
|
|
303
|
-
this.addColumnsToList(nestedSelect.column, columnParts, forEachContext);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
else if (nestedSelect.column) {
|
|
307
|
-
this.addColumnsToList(nestedSelect.column, columnParts, context);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Add unionAll columns for a select.
|
|
313
|
-
*/
|
|
314
|
-
addUnionAllColumnsForSelect(select, unionChoice, columnParts, defaultContext, forEachContextMap) {
|
|
315
|
-
if (unionChoice < 0 || !select.unionAll?.[unionChoice]) {
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
const chosenBranch = select.unionAll[unionChoice];
|
|
319
|
-
if (!chosenBranch.column) {
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
const branchContext = this.isForEachSelect(chosenBranch)
|
|
323
|
-
? forEachContextMap.get(chosenBranch)
|
|
324
|
-
: defaultContext;
|
|
325
|
-
if (branchContext) {
|
|
326
|
-
this.addColumnsToList(chosenBranch.column, columnParts, branchContext);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Add columns to the column parts list.
|
|
331
|
-
*/
|
|
332
|
-
addColumnsToList(columns, columnParts, context) {
|
|
333
|
-
for (const column of columns) {
|
|
334
|
-
const columnSql = this.columnGenerator.generateExpression(column, context);
|
|
335
|
-
columnParts.push(`${columnSql} AS [${column.name}]`);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Check if a select is a forEach or forEachOrNull.
|
|
340
|
-
*/
|
|
341
|
-
isForEachSelect(select) {
|
|
342
|
-
return !!(select.forEach ?? select.forEachOrNull);
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
exports.SelectClauseBuilder = SelectClauseBuilder;
|
|
346
|
-
//# sourceMappingURL=SelectClauseBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectClauseBuilder.js","sourceRoot":"","sources":["../../src/queryGenerator/SelectClauseBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Expands unionAll combinations from ViewDefinition select elements.
|
|
3
|
-
*/
|
|
4
|
-
import { ViewDefinitionSelect } from "../types.js";
|
|
5
|
-
/**
|
|
6
|
-
* Represents a specific combination of selects with their unionAll choices.
|
|
7
|
-
*/
|
|
8
|
-
export interface SelectCombination {
|
|
9
|
-
selects: ViewDefinitionSelect[];
|
|
10
|
-
unionChoices: number[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Handles expansion of all possible unionAll combinations.
|
|
14
|
-
*/
|
|
15
|
-
export declare class SelectCombinationExpander {
|
|
16
|
-
/**
|
|
17
|
-
* Expand all possible unionAll combinations from select elements.
|
|
18
|
-
*/
|
|
19
|
-
expandCombinations(selects: ViewDefinitionSelect[]): SelectCombination[];
|
|
20
|
-
/**
|
|
21
|
-
* Expand combinations for a single select element.
|
|
22
|
-
* Handles nested unionAll by recursively expanding them.
|
|
23
|
-
*/
|
|
24
|
-
private expandSelectCombinations;
|
|
25
|
-
/**
|
|
26
|
-
* Expand unionAll options for a select.
|
|
27
|
-
*/
|
|
28
|
-
private expandUnionAllOptions;
|
|
29
|
-
/**
|
|
30
|
-
* Expand nested unionAll within a unionAll option.
|
|
31
|
-
*/
|
|
32
|
-
private expandNestedUnion;
|
|
33
|
-
/**
|
|
34
|
-
* Add a simple unionAll combination (no nested unionAll).
|
|
35
|
-
*/
|
|
36
|
-
private addSimpleUnionCombination;
|
|
37
|
-
/**
|
|
38
|
-
* Add a combination for a select without unionAll.
|
|
39
|
-
*/
|
|
40
|
-
private addNonUnionCombination;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=SelectCombinationExpander.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCombinationExpander.d.ts","sourceRoot":"","sources":["../../src/queryGenerator/SelectCombinationExpander.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,iBAAiB,EAAE;IAUxE;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAW/B"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Expands unionAll combinations from ViewDefinition select elements.
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SelectCombinationExpander = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Handles expansion of all possible unionAll combinations.
|
|
9
|
-
*/
|
|
10
|
-
class SelectCombinationExpander {
|
|
11
|
-
/**
|
|
12
|
-
* Expand all possible unionAll combinations from select elements.
|
|
13
|
-
*/
|
|
14
|
-
expandCombinations(selects) {
|
|
15
|
-
let combinations = [{ selects: [], unionChoices: [] }];
|
|
16
|
-
for (const select of selects) {
|
|
17
|
-
combinations = this.expandSelectCombinations(select, combinations);
|
|
18
|
-
}
|
|
19
|
-
return combinations;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Expand combinations for a single select element.
|
|
23
|
-
* Handles nested unionAll by recursively expanding them.
|
|
24
|
-
*/
|
|
25
|
-
expandSelectCombinations(select, currentCombinations) {
|
|
26
|
-
const newCombinations = [];
|
|
27
|
-
for (const combination of currentCombinations) {
|
|
28
|
-
if (select.unionAll && select.unionAll.length > 0) {
|
|
29
|
-
this.expandUnionAllOptions(select, combination, newCombinations);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.addNonUnionCombination(select, combination, newCombinations);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return newCombinations;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Expand unionAll options for a select.
|
|
39
|
-
*/
|
|
40
|
-
expandUnionAllOptions(select, combination, newCombinations) {
|
|
41
|
-
const unionAll = select.unionAll;
|
|
42
|
-
if (!unionAll)
|
|
43
|
-
return;
|
|
44
|
-
for (let i = 0; i < unionAll.length; i++) {
|
|
45
|
-
const unionOption = unionAll[i];
|
|
46
|
-
if (unionOption.unionAll && unionOption.unionAll.length > 0) {
|
|
47
|
-
this.expandNestedUnion(select, i, unionOption, combination, newCombinations);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.addSimpleUnionCombination(select, i, combination, newCombinations);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Expand nested unionAll within a unionAll option.
|
|
56
|
-
*/
|
|
57
|
-
expandNestedUnion(select, unionIndex, unionOption, combination, newCombinations) {
|
|
58
|
-
const nestedCombinations = this.expandSelectCombinations(unionOption, [
|
|
59
|
-
{ selects: [], unionChoices: [] },
|
|
60
|
-
]);
|
|
61
|
-
for (const nestedComb of nestedCombinations) {
|
|
62
|
-
const newCombination = {
|
|
63
|
-
selects: [...combination.selects, select, ...nestedComb.selects],
|
|
64
|
-
unionChoices: [
|
|
65
|
-
...combination.unionChoices,
|
|
66
|
-
unionIndex,
|
|
67
|
-
...nestedComb.unionChoices,
|
|
68
|
-
],
|
|
69
|
-
};
|
|
70
|
-
newCombinations.push(newCombination);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Add a simple unionAll combination (no nested unionAll).
|
|
75
|
-
*/
|
|
76
|
-
addSimpleUnionCombination(select, unionIndex, combination, newCombinations) {
|
|
77
|
-
const newCombination = {
|
|
78
|
-
selects: [...combination.selects, select],
|
|
79
|
-
unionChoices: [...combination.unionChoices, unionIndex],
|
|
80
|
-
};
|
|
81
|
-
newCombinations.push(newCombination);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Add a combination for a select without unionAll.
|
|
85
|
-
*/
|
|
86
|
-
addNonUnionCombination(select, combination, newCombinations) {
|
|
87
|
-
const newCombination = {
|
|
88
|
-
selects: [...combination.selects, select],
|
|
89
|
-
unionChoices: [...combination.unionChoices, -1],
|
|
90
|
-
};
|
|
91
|
-
newCombinations.push(newCombination);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
exports.SelectCombinationExpander = SelectCombinationExpander;
|
|
95
|
-
//# sourceMappingURL=SelectCombinationExpander.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCombinationExpander.js","sourceRoot":"","sources":["../../src/queryGenerator/SelectCombinationExpander.ts"],"names":[],"mappings":"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"}
|