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
@@ -12,7 +12,7 @@ import { CTECollector } from "./CTECollector";
12
12
  * It can also resolve wildcard selectors (table.* or *) using a provided table column resolver.
13
13
  */
14
14
  export class SelectValueCollector {
15
- constructor(tableColumnResolver = null, initialCommonTables = null) {
15
+ constructor(tableColumnResolver = null, initialCommonTables = null, preserveDuplicateSelectItems = false) {
16
16
  this.selectValues = [];
17
17
  this.visitedNodes = new Set();
18
18
  this.isRootVisit = true;
@@ -20,6 +20,7 @@ export class SelectValueCollector {
20
20
  this.commonTableCollector = new CTECollector();
21
21
  this.commonTables = [];
22
22
  this.initialCommonTables = initialCommonTables;
23
+ this.preserveDuplicateSelectItems = preserveDuplicateSelectItems;
23
24
  this.handlers = new Map();
24
25
  this.handlers.set(SimpleSelectQuery.kind, (expr) => this.visitSimpleSelectQuery(expr));
25
26
  this.handlers.set(SelectClause.kind, (expr) => this.visitSelectClause(expr));
@@ -106,71 +107,85 @@ export class SelectValueCollector {
106
107
  if (wildcards.length === 0) {
107
108
  return;
108
109
  }
109
- // full wildcard
110
- if (this.selectValues.some(item => item.value instanceof ColumnReference && item.value.namespaces === null)) {
111
- if (query.fromClause) {
112
- this.processFromClause(query.fromClause, true);
110
+ const expandedValues = [];
111
+ for (const item of this.selectValues) {
112
+ if (item.name !== '*' || !(item.value instanceof ColumnReference)) {
113
+ expandedValues.push(item);
114
+ continue;
113
115
  }
114
- // remove wildcard
115
- this.selectValues = this.selectValues.filter(item => item.name !== '*');
116
- return;
116
+ expandedValues.push(...this.expandWildcardValue(item.value, query.fromClause));
117
117
  }
118
- ;
119
- // table wildcard
120
- const wildSourceNames = wildcards.filter(item => item.value instanceof ColumnReference && item.value.namespaces)
121
- .map(item => item.value.getNamespace());
122
- if (query.fromClause) {
123
- const fromSourceName = query.fromClause.getSourceAliasName();
124
- if (fromSourceName && wildSourceNames.includes(fromSourceName)) {
125
- this.processFromClause(query.fromClause, false);
126
- }
127
- if (query.fromClause.joins) {
128
- for (const join of query.fromClause.joins) {
129
- const joinSourceName = join.getSourceAliasName();
130
- if (joinSourceName && wildSourceNames.includes(joinSourceName)) {
131
- this.processJoinClause(join);
132
- }
133
- }
134
- }
135
- }
136
- // remove wildcard
137
- this.selectValues = this.selectValues.filter(item => item.name !== '*');
138
- return;
118
+ this.selectValues = expandedValues;
139
119
  }
140
120
  processFromClause(clause, joinCascade) {
141
- if (clause) {
142
- const fromSourceName = clause.getSourceAliasName();
143
- this.processSourceExpression(fromSourceName, clause.source);
144
- if (clause.joins && joinCascade) {
145
- for (const join of clause.joins) {
146
- this.processJoinClause(join);
147
- }
148
- }
121
+ for (const item of this.collectFromClauseValues(clause, joinCascade)) {
122
+ this.addSelectValue(item.name, item.value);
149
123
  }
150
124
  return;
151
125
  }
152
126
  processJoinClause(clause) {
153
- const sourceName = clause.getSourceAliasName();
154
- this.processSourceExpression(sourceName, clause.source);
127
+ for (const item of this.collectJoinClauseValues(clause)) {
128
+ this.addSelectValue(item.name, item.value);
129
+ }
155
130
  }
156
131
  processSourceExpression(sourceName, source) {
132
+ for (const item of this.collectSourceExpressionValues(sourceName, source)) {
133
+ this.addSelectValue(item.name, item.value);
134
+ }
135
+ }
136
+ expandWildcardValue(value, fromClause) {
137
+ if (!fromClause) {
138
+ return [];
139
+ }
140
+ if (value.namespaces === null) {
141
+ return this.collectFromClauseValues(fromClause, true);
142
+ }
143
+ const sourceName = value.getNamespace();
144
+ if (fromClause.getSourceAliasName() === sourceName) {
145
+ return this.collectFromClauseValues(fromClause, false);
146
+ }
147
+ if (!fromClause.joins) {
148
+ return [];
149
+ }
150
+ const join = fromClause.joins.find(item => this.getJoinSourceName(item) === sourceName);
151
+ return join ? this.collectJoinClauseValues(join) : [];
152
+ }
153
+ collectFromClauseValues(clause, joinCascade) {
154
+ const values = this.collectSourceExpressionValues(clause.getSourceAliasName(), clause.source);
155
+ if (clause.joins && joinCascade) {
156
+ for (const join of clause.joins) {
157
+ values.push(...this.collectJoinClauseValues(join));
158
+ }
159
+ }
160
+ return values;
161
+ }
162
+ collectJoinClauseValues(clause) {
163
+ return this.collectSourceExpressionValues(this.getJoinSourceName(clause), clause.source);
164
+ }
165
+ getJoinSourceName(clause) {
166
+ return clause.source.getAliasName();
167
+ }
168
+ collectSourceExpressionValues(sourceName, source) {
157
169
  // check common table
158
- const commonTable = this.commonTables.find(item => item.aliasExpression.table.name === sourceName);
170
+ const tableSourceName = source.datasource instanceof TableSource ? source.datasource.getSourceName() : null;
171
+ const commonTable = tableSourceName
172
+ ? this.commonTables.find(item => item.aliasExpression.table.name === tableSourceName)
173
+ : null;
159
174
  if (commonTable) {
160
175
  // Exclude this CTE from consideration to prevent self-reference
161
- const innerCommonTables = this.commonTables.filter(item => item.aliasExpression.table.name !== sourceName);
176
+ const innerCommonTables = this.commonTables.filter(item => item.aliasExpression.table.name !== commonTable.aliasExpression.table.name);
162
177
  const innerSelected = this.collectValuesFromCteQuery(commonTable.query, innerCommonTables);
163
- innerSelected.forEach(item => {
164
- this.addSelectValueAsUnique(item.name, new ColumnReference(sourceName ? [sourceName] : null, item.name));
165
- });
166
- }
167
- else {
168
- const innerCollector = new SelectValueCollector(this.tableColumnResolver, this.commonTables);
169
- const innerSelected = innerCollector.collect(source);
170
- innerSelected.forEach(item => {
171
- this.addSelectValueAsUnique(item.name, new ColumnReference(sourceName ? [sourceName] : null, item.name));
172
- });
178
+ return innerSelected.map(item => ({
179
+ name: item.name,
180
+ value: new ColumnReference(sourceName ? [sourceName] : null, item.name)
181
+ }));
173
182
  }
183
+ const innerCollector = new SelectValueCollector(this.tableColumnResolver, this.commonTables, true);
184
+ const innerSelected = innerCollector.collect(source);
185
+ return innerSelected.map(item => ({
186
+ name: item.name,
187
+ value: new ColumnReference(sourceName ? [sourceName] : null, item.name)
188
+ }));
174
189
  }
175
190
  visitSelectClause(clause) {
176
191
  for (const item of clause.items) {
@@ -179,7 +194,7 @@ export class SelectValueCollector {
179
194
  }
180
195
  processSelectItem(item) {
181
196
  if (item.identifier) {
182
- this.addSelectValueAsUnique(item.identifier.name, item.value);
197
+ this.addSelectValueFromSelectItem(item.identifier.name, item.value);
183
198
  }
184
199
  else if (item.value instanceof ColumnReference) { // Handle column reference
185
200
  // columnName can be '*'
@@ -190,7 +205,7 @@ export class SelectValueCollector {
190
205
  }
191
206
  else {
192
207
  // Add with duplicate checking
193
- this.addSelectValueAsUnique(columnName, item.value);
208
+ this.addSelectValueFromSelectItem(columnName, item.value);
194
209
  }
195
210
  }
196
211
  }
@@ -202,7 +217,7 @@ export class SelectValueCollector {
202
217
  if (source.aliasExpression && source.aliasExpression.columns) {
203
218
  const sourceName = source.getAliasName();
204
219
  source.aliasExpression.columns.forEach(column => {
205
- this.addSelectValueAsUnique(column.name, new ColumnReference(sourceName ? [sourceName] : null, column.name));
220
+ this.addSelectValueFromSelectItem(column.name, new ColumnReference(sourceName ? [sourceName] : null, column.name));
206
221
  });
207
222
  return;
208
223
  }
@@ -210,17 +225,17 @@ export class SelectValueCollector {
210
225
  if (this.tableColumnResolver) {
211
226
  const sourceName = source.datasource.getSourceName();
212
227
  this.tableColumnResolver(sourceName).forEach(column => {
213
- this.addSelectValueAsUnique(column, new ColumnReference([sourceName], column));
228
+ this.addSelectValueFromSelectItem(column, new ColumnReference([sourceName], column));
214
229
  });
215
230
  }
216
231
  return;
217
232
  }
218
233
  else if (source.datasource instanceof SubQuerySource) {
219
234
  const sourceName = source.getAliasName();
220
- const innerCollector = new SelectValueCollector(this.tableColumnResolver, this.commonTables);
235
+ const innerCollector = new SelectValueCollector(this.tableColumnResolver, this.commonTables, true);
221
236
  const innerSelected = innerCollector.collect(source.datasource.query);
222
237
  innerSelected.forEach(item => {
223
- this.addSelectValueAsUnique(item.name, new ColumnReference(sourceName ? [sourceName] : null, item.name));
238
+ this.addSelectValueFromSelectItem(item.name, new ColumnReference(sourceName ? [sourceName] : null, item.name));
224
239
  });
225
240
  return;
226
241
  }
@@ -239,9 +254,19 @@ export class SelectValueCollector {
239
254
  this.selectValues.push({ name, value });
240
255
  }
241
256
  }
257
+ addSelectValue(name, value) {
258
+ this.selectValues.push({ name, value });
259
+ }
260
+ addSelectValueFromSelectItem(name, value) {
261
+ if (this.preserveDuplicateSelectItems) {
262
+ this.addSelectValue(name, value);
263
+ return;
264
+ }
265
+ this.addSelectValueAsUnique(name, value);
266
+ }
242
267
  collectValuesFromCteQuery(query, commonTables) {
243
268
  if (this.isSelectQuery(query)) {
244
- const innerCollector = new SelectValueCollector(this.tableColumnResolver, commonTables);
269
+ const innerCollector = new SelectValueCollector(this.tableColumnResolver, commonTables, true);
245
270
  return innerCollector.collect(query);
246
271
  }
247
272
  // Writable CTEs expose their output via RETURNING.
@@ -1 +1 @@
1
- {"version":3,"file":"SelectValueCollector.js","sourceRoot":"","sources":["../../../src/transformers/SelectValueCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectValueCollector.js","sourceRoot":"","sources":["../../../src/transformers/SelectValueCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { SelectQuery } from "../models/SelectQuery";
2
+ import { ClauseScopedColumnReferenceClause } from "./ClauseScopedColumnReferenceCollector";
3
+ /** Kind of named query boundary whose wildcard output is being inferred. */
4
+ export type WildcardColumnInferenceTargetKind = "cte" | "derivedTable";
5
+ /** Syntax form of the wildcard SELECT item that may supply required columns. */
6
+ export type WildcardColumnInferenceWildcardKind = "qualified" | "unqualified";
7
+ /** Conservative reason why a downstream requirement could not be assigned to one wildcard supplier. */
8
+ export type WildcardColumnInferenceUnresolvedReason = "duplicateOutputOwnership" | "multipleWildcardSuppliers" | "unqualifiedWildcardMultipleSources" | "noWildcardSupplier" | "unsupportedQueryShape";
9
+ /** Clause-scoped downstream reference that requires an output column from the target. */
10
+ export interface WildcardColumnInferenceRequiredBy {
11
+ /** Clause that owns the downstream reference. */
12
+ clause: ClauseScopedColumnReferenceClause;
13
+ /** SQL text form of the downstream column reference. */
14
+ qualifiedName: string;
15
+ /** Namespace or alias used by the downstream reference, if present. */
16
+ namespace: string | null;
17
+ /** Output column name required by the downstream reference. */
18
+ column: string;
19
+ }
20
+ /** Metadata for a wildcard SELECT item inside the target query. */
21
+ export interface WildcardColumnInferenceWildcard {
22
+ /** Whether the wildcard was written as `*` or as a qualified form such as `a.*`. */
23
+ kind: WildcardColumnInferenceWildcardKind;
24
+ /** SELECT-list position of the wildcard item. */
25
+ outputIndex: number;
26
+ /** Source alias that the wildcard can safely be associated with, when known. */
27
+ sourceAlias: string | null;
28
+ /** Physical source name for the wildcard source, when it is statically visible. */
29
+ sourceName: string | null;
30
+ }
31
+ /** Explicit non-wildcard output preserved alongside inferred wildcard requirements. */
32
+ export interface WildcardColumnInferenceExplicitColumn {
33
+ /** Output name exposed by the explicit SELECT item. */
34
+ outputName: string;
35
+ /** Source alias for a simple qualified column expression, when uniquely known. */
36
+ sourceAlias: string | null;
37
+ /** Physical source name for a simple qualified column expression, when uniquely known. */
38
+ sourceName: string | null;
39
+ /** Source column name for a simple qualified column expression, when uniquely known. */
40
+ sourceColumnName: string | null;
41
+ }
42
+ /** Resolved required column supplied by a single unambiguous wildcard. */
43
+ export interface WildcardColumnInferenceResolvedColumn {
44
+ /** Output column name required from the target. */
45
+ outputName: string;
46
+ /** Source alias selected as the wildcard supplier. */
47
+ sourceAlias: string | null;
48
+ /** Physical source name selected as the wildcard supplier, when known. */
49
+ sourceName: string | null;
50
+ /** Source column name inferred from the downstream output requirement. */
51
+ sourceColumnName: string;
52
+ /** Wildcard SELECT item that supplies this required column. */
53
+ wildcard: WildcardColumnInferenceWildcard;
54
+ /** Distinct downstream clauses that required this column. */
55
+ requiredByClause: ClauseScopedColumnReferenceClause[];
56
+ /** Clause-scoped downstream references that required this column. */
57
+ requiredBy: WildcardColumnInferenceRequiredBy[];
58
+ }
59
+ /** Required output column that could not be assigned to a single wildcard supplier. */
60
+ export interface WildcardColumnInferenceUnresolvedColumn {
61
+ /** Output column name required from the target. */
62
+ outputName: string;
63
+ /** Conservative reason why inference did not choose a supplier. */
64
+ reason: WildcardColumnInferenceUnresolvedReason;
65
+ /** Candidate wildcard suppliers visible for this requirement. */
66
+ candidateWildcards: WildcardColumnInferenceWildcard[];
67
+ /** Distinct downstream clauses that required this column. */
68
+ requiredByClause: ClauseScopedColumnReferenceClause[];
69
+ /** Clause-scoped downstream references that required this column. */
70
+ requiredBy: WildcardColumnInferenceRequiredBy[];
71
+ }
72
+ /** Metadata-only wildcard inference result for one CTE or derived table target. */
73
+ export interface WildcardColumnInferenceResult {
74
+ /** Kind of target whose wildcard output was inspected. */
75
+ targetKind: WildcardColumnInferenceTargetKind;
76
+ /** CTE name for CTE targets, otherwise null. */
77
+ targetName: string | null;
78
+ /** Alias used by the downstream consumer when available. */
79
+ targetAlias: string | null;
80
+ /** Wildcard SELECT items found inside the target query. */
81
+ wildcards: WildcardColumnInferenceWildcard[];
82
+ /** Explicit non-wildcard outputs found inside the target query. */
83
+ explicitColumns: WildcardColumnInferenceExplicitColumn[];
84
+ /** Downstream requirements assigned to exactly one wildcard supplier. */
85
+ requiredColumns: WildcardColumnInferenceResolvedColumn[];
86
+ /** Downstream requirements that were intentionally left unresolved. */
87
+ unresolvedColumns: WildcardColumnInferenceUnresolvedColumn[];
88
+ }
89
+ /**
90
+ * Infers the subset of wildcard columns required by downstream references.
91
+ *
92
+ * This collector only returns metadata. It does not rewrite SQL and does not attempt full
93
+ * table-column discovery. When ownership is ambiguous, the requirement is reported as unresolved.
94
+ */
95
+ export declare class WildcardColumnInferenceCollector {
96
+ private readonly clauseCollector;
97
+ private readonly requirements;
98
+ private readonly visitedQueries;
99
+ private nextObjectId;
100
+ private objectIds;
101
+ /**
102
+ * Collect wildcard column inference metadata for CTEs and derived tables visible in a SELECT query.
103
+ */
104
+ collect(query: SelectQuery): WildcardColumnInferenceResult[];
105
+ private collectFromSelectQuery;
106
+ private collectCteQuery;
107
+ private collectConsumerRequirements;
108
+ private collectConsumerTargets;
109
+ private createCteTarget;
110
+ private createDerivedTableTarget;
111
+ private collectNestedSources;
112
+ private addRequirement;
113
+ private inferTarget;
114
+ private collectTargetOutputMetadata;
115
+ private collectWildcardMetadata;
116
+ private createUnresolved;
117
+ private flattenReferences;
118
+ private createRequiredBy;
119
+ private collectRequiredByClauses;
120
+ private getTargetMatchNames;
121
+ private getUniqueTarget;
122
+ private getUniqueSource;
123
+ private getSourceMatchNames;
124
+ private getSourceName;
125
+ private collectLeadingCommonTables;
126
+ private mergeCommonTables;
127
+ private getObjectId;
128
+ private isSelectQuery;
129
+ }