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.
Files changed (78) hide show
  1. package/dist/esm/index.d.ts +8 -0
  2. package/dist/esm/index.js +8 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +5 -5
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/parsers/FunctionExpressionParser.d.ts +3 -0
  7. package/dist/esm/parsers/FunctionExpressionParser.js +50 -2
  8. package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
  9. package/dist/esm/parsers/SqlPrintTokenParser.d.ts +1 -0
  10. package/dist/esm/parsers/SqlPrintTokenParser.js +11 -1
  11. package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
  12. package/dist/esm/transformers/AstCommentAttachmentExtractor.d.ts +61 -0
  13. package/dist/esm/transformers/AstCommentAttachmentExtractor.js +221 -0
  14. package/dist/esm/transformers/AstCommentAttachmentExtractor.js.map +1 -0
  15. package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.d.ts +47 -0
  16. package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.js +235 -0
  17. package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.js.map +1 -0
  18. package/dist/esm/transformers/ConditionOptimization.d.ts +66 -0
  19. package/dist/esm/transformers/ConditionOptimization.js +294 -0
  20. package/dist/esm/transformers/ConditionOptimization.js.map +1 -0
  21. package/dist/esm/transformers/NamedQueryDefinitionExtractor.d.ts +53 -0
  22. package/dist/esm/transformers/NamedQueryDefinitionExtractor.js +370 -0
  23. package/dist/esm/transformers/NamedQueryDefinitionExtractor.js.map +1 -0
  24. package/dist/esm/transformers/ParameterConditionPlacementOptimizer.d.ts +85 -0
  25. package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js +942 -0
  26. package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js.map +1 -0
  27. package/dist/esm/transformers/SelectBodyExtractor.d.ts +21 -0
  28. package/dist/esm/transformers/SelectBodyExtractor.js +137 -0
  29. package/dist/esm/transformers/SelectBodyExtractor.js.map +1 -0
  30. package/dist/esm/transformers/SelectOutputCollector.d.ts +47 -0
  31. package/dist/esm/transformers/SelectOutputCollector.js +281 -0
  32. package/dist/esm/transformers/SelectOutputCollector.js.map +1 -0
  33. package/dist/esm/transformers/SelectValueCollector.d.ts +9 -1
  34. package/dist/esm/transformers/SelectValueCollector.js +83 -58
  35. package/dist/esm/transformers/SelectValueCollector.js.map +1 -1
  36. package/dist/esm/transformers/WildcardColumnInferenceCollector.d.ts +129 -0
  37. package/dist/esm/transformers/WildcardColumnInferenceCollector.js +373 -0
  38. package/dist/esm/transformers/WildcardColumnInferenceCollector.js.map +1 -0
  39. package/dist/index.js +8 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.min.js +5 -5
  42. package/dist/index.min.js.map +4 -4
  43. package/dist/parsers/FunctionExpressionParser.js +49 -1
  44. package/dist/parsers/FunctionExpressionParser.js.map +1 -1
  45. package/dist/parsers/SqlPrintTokenParser.js +11 -1
  46. package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
  47. package/dist/src/index.d.ts +8 -0
  48. package/dist/src/parsers/FunctionExpressionParser.d.ts +3 -0
  49. package/dist/src/parsers/SqlPrintTokenParser.d.ts +1 -0
  50. package/dist/src/transformers/AstCommentAttachmentExtractor.d.ts +61 -0
  51. package/dist/src/transformers/ClauseScopedColumnReferenceCollector.d.ts +47 -0
  52. package/dist/src/transformers/ConditionOptimization.d.ts +66 -0
  53. package/dist/src/transformers/NamedQueryDefinitionExtractor.d.ts +53 -0
  54. package/dist/src/transformers/ParameterConditionPlacementOptimizer.d.ts +85 -0
  55. package/dist/src/transformers/SelectBodyExtractor.d.ts +21 -0
  56. package/dist/src/transformers/SelectOutputCollector.d.ts +47 -0
  57. package/dist/src/transformers/SelectValueCollector.d.ts +9 -1
  58. package/dist/src/transformers/WildcardColumnInferenceCollector.d.ts +129 -0
  59. package/dist/transformers/AstCommentAttachmentExtractor.js +231 -0
  60. package/dist/transformers/AstCommentAttachmentExtractor.js.map +1 -0
  61. package/dist/transformers/ClauseScopedColumnReferenceCollector.js +239 -0
  62. package/dist/transformers/ClauseScopedColumnReferenceCollector.js.map +1 -0
  63. package/dist/transformers/ConditionOptimization.js +311 -0
  64. package/dist/transformers/ConditionOptimization.js.map +1 -0
  65. package/dist/transformers/NamedQueryDefinitionExtractor.js +374 -0
  66. package/dist/transformers/NamedQueryDefinitionExtractor.js.map +1 -0
  67. package/dist/transformers/ParameterConditionPlacementOptimizer.js +952 -0
  68. package/dist/transformers/ParameterConditionPlacementOptimizer.js.map +1 -0
  69. package/dist/transformers/SelectBodyExtractor.js +141 -0
  70. package/dist/transformers/SelectBodyExtractor.js.map +1 -0
  71. package/dist/transformers/SelectOutputCollector.js +291 -0
  72. package/dist/transformers/SelectOutputCollector.js.map +1 -0
  73. package/dist/transformers/SelectValueCollector.js +83 -58
  74. package/dist/transformers/SelectValueCollector.js.map +1 -1
  75. package/dist/transformers/WildcardColumnInferenceCollector.js +377 -0
  76. package/dist/transformers/WildcardColumnInferenceCollector.js.map +1 -0
  77. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  78. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterConditionPlacementOptimizer.js","sourceRoot":"","sources":["../../src/transformers/ParameterConditionPlacementOptimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectBodyExtractor = void 0;
4
+ const CreateTableQuery_1 = require("../models/CreateTableQuery");
5
+ const InsertQuery_1 = require("../models/InsertQuery");
6
+ const Lexeme_1 = require("../models/Lexeme");
7
+ const ValuesQuery_1 = require("../models/ValuesQuery");
8
+ const Clause_1 = require("../models/Clause");
9
+ const FullNameParser_1 = require("../parsers/FullNameParser");
10
+ const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
11
+ const SqlParser_1 = require("../parsers/SqlParser");
12
+ const SqlTokenizer_1 = require("../parsers/SqlTokenizer");
13
+ class SelectBodyExtractor {
14
+ static extract(input) {
15
+ if (typeof input === "string") {
16
+ return this.extractFromSql(input);
17
+ }
18
+ return this.extractFromStatement(input);
19
+ }
20
+ static extractFromSql(sql) {
21
+ const lexemes = new SqlTokenizer_1.SqlTokenizer(sql).readLexemes();
22
+ if (this.isCreateViewStatement(lexemes)) {
23
+ return this.extractCreateViewFromLexemes(lexemes);
24
+ }
25
+ return this.extractFromStatement(SqlParser_1.SqlParser.parse(sql));
26
+ }
27
+ static extractFromStatement(statement) {
28
+ if (statement instanceof CreateTableQuery_1.CreateTableQuery) {
29
+ const targetName = this.createTableTargetName(statement);
30
+ if (!statement.asSelectQuery) {
31
+ return this.unsupported(targetName);
32
+ }
33
+ return {
34
+ supported: true,
35
+ kind: "create-table-as",
36
+ targetName,
37
+ selectQuery: statement.asSelectQuery
38
+ };
39
+ }
40
+ if (statement instanceof InsertQuery_1.InsertQuery) {
41
+ const targetName = this.insertTargetName(statement);
42
+ if (!statement.selectQuery || statement.selectQuery instanceof ValuesQuery_1.ValuesQuery) {
43
+ return this.unsupported(targetName);
44
+ }
45
+ return {
46
+ supported: true,
47
+ kind: "insert-select",
48
+ targetName,
49
+ selectQuery: statement.selectQuery
50
+ };
51
+ }
52
+ return {
53
+ supported: false,
54
+ kind: null,
55
+ targetName: null,
56
+ selectQuery: null,
57
+ reason: "Statement type is not supported."
58
+ };
59
+ }
60
+ static extractCreateViewFromLexemes(lexemes) {
61
+ var _a, _b, _c, _d, _e, _f;
62
+ let idx = 0;
63
+ idx++; // CREATE
64
+ const materialized = ((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value.toLowerCase()) === "materialized";
65
+ if (materialized) {
66
+ idx++;
67
+ }
68
+ if (((_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.value.toLowerCase()) !== "view") {
69
+ return this.unsupported(null, "Statement type is not supported.");
70
+ }
71
+ idx++;
72
+ if (((_c = lexemes[idx]) === null || _c === void 0 ? void 0 : _c.value.toLowerCase()) === "if not exists") {
73
+ idx++;
74
+ }
75
+ const targetResult = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, idx);
76
+ idx = targetResult.newIndex;
77
+ const targetName = [...((_d = targetResult.namespaces) !== null && _d !== void 0 ? _d : []), targetResult.name.name].join(".");
78
+ if (((_e = lexemes[idx]) === null || _e === void 0 ? void 0 : _e.type) === Lexeme_1.TokenType.OpenParen) {
79
+ idx = this.consumeBalancedParentheses(lexemes, idx);
80
+ }
81
+ if (((_f = lexemes[idx]) === null || _f === void 0 ? void 0 : _f.value.toLowerCase()) !== "as") {
82
+ return this.unsupported(targetName);
83
+ }
84
+ idx++;
85
+ const selectResult = SelectQueryParser_1.SelectQueryParser.parseFromLexeme(lexemes, idx);
86
+ return {
87
+ supported: true,
88
+ kind: materialized ? "create-materialized-view" : "create-view",
89
+ targetName,
90
+ selectQuery: selectResult.value
91
+ };
92
+ }
93
+ static isCreateViewStatement(lexemes) {
94
+ var _a, _b, _c;
95
+ if (((_a = lexemes[0]) === null || _a === void 0 ? void 0 : _a.value.toLowerCase()) !== "create") {
96
+ return false;
97
+ }
98
+ const second = (_b = lexemes[1]) === null || _b === void 0 ? void 0 : _b.value.toLowerCase();
99
+ const third = (_c = lexemes[2]) === null || _c === void 0 ? void 0 : _c.value.toLowerCase();
100
+ return second === "view" || (second === "materialized" && third === "view");
101
+ }
102
+ static consumeBalancedParentheses(lexemes, index) {
103
+ let idx = index;
104
+ let depth = 0;
105
+ while (idx < lexemes.length) {
106
+ if (lexemes[idx].type === Lexeme_1.TokenType.OpenParen) {
107
+ depth++;
108
+ }
109
+ else if (lexemes[idx].type === Lexeme_1.TokenType.CloseParen) {
110
+ depth--;
111
+ if (depth === 0) {
112
+ return idx + 1;
113
+ }
114
+ }
115
+ idx++;
116
+ }
117
+ return idx;
118
+ }
119
+ static createTableTargetName(query) {
120
+ var _a;
121
+ return [...((_a = query.namespaces) !== null && _a !== void 0 ? _a : []), query.tableName.name].join(".");
122
+ }
123
+ static insertTargetName(query) {
124
+ const source = query.insertClause.source;
125
+ if (source.datasource instanceof Clause_1.TableSource) {
126
+ return source.datasource.getSourceName();
127
+ }
128
+ return source.getAliasName();
129
+ }
130
+ static unsupported(targetName, reason = "No embedded SELECT body found.") {
131
+ return {
132
+ supported: false,
133
+ kind: null,
134
+ targetName,
135
+ selectQuery: null,
136
+ reason
137
+ };
138
+ }
139
+ }
140
+ exports.SelectBodyExtractor = SelectBodyExtractor;
141
+ //# sourceMappingURL=SelectBodyExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectBodyExtractor.js","sourceRoot":"","sources":["../../src/transformers/SelectBodyExtractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectOutputCollector = void 0;
4
+ const Clause_1 = require("../models/Clause");
5
+ const InsertQuery_1 = require("../models/InsertQuery");
6
+ const DeleteQuery_1 = require("../models/DeleteQuery");
7
+ const MergeQuery_1 = require("../models/MergeQuery");
8
+ const SelectQuery_1 = require("../models/SelectQuery");
9
+ const UpdateQuery_1 = require("../models/UpdateQuery");
10
+ const ValueComponent_1 = require("../models/ValueComponent");
11
+ const CTECollector_1 = require("./CTECollector");
12
+ /**
13
+ * Collects SELECT output columns without collapsing duplicate output names.
14
+ *
15
+ * This collector is intended for callers that need stable SELECT-list positions.
16
+ * It keeps output order and assigns outputIndex after supported wildcard expansion.
17
+ */
18
+ class SelectOutputCollector {
19
+ constructor(tableColumnResolver = null, initialCommonTables = null) {
20
+ this.tableColumnResolver = tableColumnResolver;
21
+ this.commonTableCollector = new CTECollector_1.CTECollector();
22
+ this.commonTables = initialCommonTables !== null && initialCommonTables !== void 0 ? initialCommonTables : [];
23
+ }
24
+ collect(arg) {
25
+ const rawColumns = this.collectRaw(arg);
26
+ return rawColumns.map((item, outputIndex) => ({
27
+ ...item,
28
+ outputIndex
29
+ }));
30
+ }
31
+ collectRaw(arg) {
32
+ if (arg instanceof SelectQuery_1.SimpleSelectQuery) {
33
+ return this.collectSimpleSelectQuery(arg);
34
+ }
35
+ if (arg instanceof Clause_1.SourceExpression) {
36
+ return this.collectSourceExpression(arg.getAliasName(), arg);
37
+ }
38
+ if (arg instanceof Clause_1.FromClause) {
39
+ return this.collectFromClause(arg, true);
40
+ }
41
+ return [];
42
+ }
43
+ collectSimpleSelectQuery(query) {
44
+ const previousCommonTables = this.commonTables;
45
+ if (this.commonTables.length === 0) {
46
+ this.commonTables = this.commonTableCollector.collect(query);
47
+ }
48
+ try {
49
+ const outputs = [];
50
+ for (const item of query.selectClause.items) {
51
+ outputs.push(...this.collectSelectItem(item, query.fromClause));
52
+ }
53
+ return outputs;
54
+ }
55
+ finally {
56
+ this.commonTables = previousCommonTables;
57
+ }
58
+ }
59
+ collectSelectItem(item, fromClause) {
60
+ if (item.identifier) {
61
+ return [this.createExplicitOutput(item.identifier.name, item.value, fromClause)];
62
+ }
63
+ if (!(item.value instanceof ValueComponent_1.ColumnReference)) {
64
+ return [];
65
+ }
66
+ const columnName = item.value.column.name;
67
+ if (columnName === "*") {
68
+ return this.expandWildcard(item.value, fromClause);
69
+ }
70
+ return [this.createExplicitOutput(columnName, item.value, fromClause)];
71
+ }
72
+ expandWildcard(value, fromClause) {
73
+ var _a;
74
+ if (!fromClause) {
75
+ return [];
76
+ }
77
+ if (value.namespaces === null) {
78
+ return this.collectFromClause(fromClause, true);
79
+ }
80
+ const sourceName = value.getNamespace();
81
+ if (fromClause.getSourceAliasName() === sourceName) {
82
+ return this.collectFromClause(fromClause, false);
83
+ }
84
+ const join = (_a = fromClause.joins) === null || _a === void 0 ? void 0 : _a.find(item => this.getJoinSourceName(item) === sourceName);
85
+ return join ? this.collectJoinClause(join) : [];
86
+ }
87
+ collectFromClause(clause, joinCascade) {
88
+ const outputs = this.collectSourceExpression(clause.getSourceAliasName(), clause.source);
89
+ if (clause.joins && joinCascade) {
90
+ for (const join of clause.joins) {
91
+ outputs.push(...this.collectJoinClause(join));
92
+ }
93
+ }
94
+ return outputs;
95
+ }
96
+ collectJoinClause(clause) {
97
+ return this.collectSourceExpression(this.getJoinSourceName(clause), clause.source);
98
+ }
99
+ getJoinSourceName(clause) {
100
+ return clause.source.getAliasName();
101
+ }
102
+ collectSourceExpression(sourceName, source) {
103
+ var _a;
104
+ if ((_a = source.aliasExpression) === null || _a === void 0 ? void 0 : _a.columns) {
105
+ return source.aliasExpression.columns.map(column => ({
106
+ name: column.name,
107
+ value: new ValueComponent_1.ColumnReference(sourceName ? [sourceName] : null, column.name),
108
+ sourceAlias: sourceName,
109
+ sourceName: null,
110
+ sourceColumnName: column.name
111
+ }));
112
+ }
113
+ const cte = this.findCommonTable(source);
114
+ if (cte) {
115
+ const innerCommonTables = this.commonTables.filter(item => item.getSourceAliasName() !== cte.getSourceAliasName());
116
+ const innerOutputs = this.collectCteQuery(cte.query, innerCommonTables);
117
+ return this.qualifyOutputs(innerOutputs, sourceName, cte.getSourceAliasName());
118
+ }
119
+ if (source.datasource instanceof Clause_1.TableSource) {
120
+ return this.collectTableSource(sourceName, source.datasource);
121
+ }
122
+ if (source.datasource instanceof Clause_1.SubQuerySource) {
123
+ const innerOutputs = this.collectNestedSelectQuery(source.datasource.query);
124
+ return this.qualifyOutputs(innerOutputs, sourceName, null);
125
+ }
126
+ if (source.datasource instanceof Clause_1.ParenSource) {
127
+ return [];
128
+ }
129
+ return [];
130
+ }
131
+ findCommonTable(source) {
132
+ var _a;
133
+ if (!(source.datasource instanceof Clause_1.TableSource)) {
134
+ return null;
135
+ }
136
+ const tableName = source.datasource.getSourceName();
137
+ return (_a = this.commonTables.find(item => item.getSourceAliasName() === tableName)) !== null && _a !== void 0 ? _a : null;
138
+ }
139
+ collectTableSource(sourceName, source) {
140
+ if (!this.tableColumnResolver) {
141
+ return [];
142
+ }
143
+ const tableName = source.getSourceName();
144
+ const qualifier = sourceName !== null && sourceName !== void 0 ? sourceName : tableName;
145
+ return this.tableColumnResolver(tableName).map(column => ({
146
+ name: column,
147
+ value: new ValueComponent_1.ColumnReference([qualifier], column),
148
+ sourceAlias: sourceName,
149
+ sourceName: tableName,
150
+ sourceColumnName: column
151
+ }));
152
+ }
153
+ collectNestedSelectQuery(query) {
154
+ const collector = new SelectOutputCollector(this.tableColumnResolver, this.commonTables);
155
+ return collector.collect(query).map(({ name, value, sourceAlias, sourceName, sourceColumnName }) => ({
156
+ name,
157
+ value,
158
+ sourceAlias,
159
+ sourceName,
160
+ sourceColumnName
161
+ }));
162
+ }
163
+ collectCteQuery(query, commonTables) {
164
+ if (this.isSelectQuery(query)) {
165
+ const collector = new SelectOutputCollector(this.tableColumnResolver, commonTables);
166
+ return collector.collect(query).map(({ name, value, sourceAlias, sourceName, sourceColumnName }) => ({
167
+ name,
168
+ value,
169
+ sourceAlias,
170
+ sourceName,
171
+ sourceColumnName
172
+ }));
173
+ }
174
+ return this.collectReturningOutputs(query);
175
+ }
176
+ collectReturningOutputs(query) {
177
+ if (!(query instanceof InsertQuery_1.InsertQuery || query instanceof UpdateQuery_1.UpdateQuery || query instanceof DeleteQuery_1.DeleteQuery || query instanceof MergeQuery_1.MergeQuery)) {
178
+ return [];
179
+ }
180
+ if (!query.returningClause) {
181
+ return [];
182
+ }
183
+ return this.extractReturningOutputs(query.returningClause);
184
+ }
185
+ extractReturningOutputs(clause) {
186
+ var _a, _b;
187
+ const outputs = [];
188
+ for (const item of clause.items) {
189
+ const name = (_b = (_a = item.identifier) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this.extractSelectItemName(item);
190
+ if (name) {
191
+ outputs.push(this.createExplicitOutput(name, item.value));
192
+ }
193
+ }
194
+ return outputs;
195
+ }
196
+ extractSelectItemName(item) {
197
+ if (item.identifier) {
198
+ return item.identifier.name;
199
+ }
200
+ if (item.value instanceof ValueComponent_1.ColumnReference) {
201
+ return item.value.column.name;
202
+ }
203
+ return null;
204
+ }
205
+ qualifyOutputs(outputs, sourceAlias, sourceName) {
206
+ return outputs.map(item => ({
207
+ name: item.name,
208
+ value: new ValueComponent_1.ColumnReference(sourceAlias ? [sourceAlias] : null, item.name),
209
+ sourceAlias,
210
+ sourceName,
211
+ sourceColumnName: item.name
212
+ }));
213
+ }
214
+ createExplicitOutput(name, value, fromClause = null) {
215
+ if (value instanceof ValueComponent_1.ColumnReference && value.column.name !== "*") {
216
+ const sourceMetadata = this.resolveColumnSourceMetadata(value, fromClause);
217
+ if (sourceMetadata) {
218
+ return {
219
+ name,
220
+ value,
221
+ ...sourceMetadata
222
+ };
223
+ }
224
+ }
225
+ return {
226
+ name,
227
+ value,
228
+ sourceAlias: null,
229
+ sourceName: null,
230
+ sourceColumnName: null
231
+ };
232
+ }
233
+ resolveColumnSourceMetadata(value, fromClause) {
234
+ if (!fromClause || value.namespaces === null) {
235
+ return null;
236
+ }
237
+ const namespace = value.getNamespace();
238
+ const matches = fromClause.getSources().filter(source => this.getSourceMatchNames(source).includes(namespace));
239
+ if (matches.length !== 1) {
240
+ return null;
241
+ }
242
+ const source = matches[0];
243
+ const sourceAlias = this.getColumnReferenceSourceAlias(source, namespace);
244
+ return {
245
+ sourceAlias,
246
+ sourceName: this.getColumnReferenceSourceName(source),
247
+ sourceColumnName: value.column.name
248
+ };
249
+ }
250
+ getSourceMatchNames(source) {
251
+ const names = new Set();
252
+ if (source.aliasExpression) {
253
+ names.add(source.aliasExpression.table.name);
254
+ return [...names];
255
+ }
256
+ const aliasName = source.getAliasName();
257
+ if (aliasName) {
258
+ names.add(aliasName);
259
+ }
260
+ if (source.datasource instanceof Clause_1.TableSource) {
261
+ names.add(source.datasource.table.name);
262
+ names.add(source.datasource.getSourceName());
263
+ }
264
+ return [...names];
265
+ }
266
+ getColumnReferenceSourceAlias(source, namespace) {
267
+ if (source.aliasExpression) {
268
+ return source.aliasExpression.table.name;
269
+ }
270
+ return namespace;
271
+ }
272
+ getColumnReferenceSourceName(source) {
273
+ var _a;
274
+ const cte = this.findCommonTable(source);
275
+ if (cte) {
276
+ return cte.getSourceAliasName();
277
+ }
278
+ if ((_a = source.aliasExpression) === null || _a === void 0 ? void 0 : _a.columns) {
279
+ return null;
280
+ }
281
+ if (source.datasource instanceof Clause_1.TableSource) {
282
+ return source.datasource.getSourceName();
283
+ }
284
+ return null;
285
+ }
286
+ isSelectQuery(query) {
287
+ return "__selectQueryType" in query && query.__selectQueryType === "SelectQuery";
288
+ }
289
+ }
290
+ exports.SelectOutputCollector = SelectOutputCollector;
291
+ //# sourceMappingURL=SelectOutputCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectOutputCollector.js","sourceRoot":"","sources":["../../src/transformers/SelectOutputCollector.ts"],"names":[],"mappings":"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"}