rawsql-ts 0.11.36-beta → 0.11.38-beta

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 (140) hide show
  1. package/dist/esm/index.js.map +1 -1
  2. package/dist/esm/index.min.js +54 -50
  3. package/dist/esm/index.min.js.map +3 -3
  4. package/dist/esm/src/index.d.ts +1 -0
  5. package/dist/esm/src/index.js.map +1 -1
  6. package/dist/esm/src/models/Lexeme.d.ts +8 -0
  7. package/dist/esm/src/models/SqlComponent.d.ts +20 -0
  8. package/dist/esm/src/models/SqlComponent.js +46 -0
  9. package/dist/esm/src/models/SqlComponent.js.map +1 -1
  10. package/dist/esm/src/parsers/CommandExpressionParser.d.ts +9 -0
  11. package/dist/esm/src/parsers/CommandExpressionParser.js +118 -14
  12. package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -1
  13. package/dist/esm/src/parsers/CommonTableParser.d.ts +8 -0
  14. package/dist/esm/src/parsers/CommonTableParser.js +127 -35
  15. package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
  16. package/dist/esm/src/parsers/FromClauseParser.js +2 -2
  17. package/dist/esm/src/parsers/FromClauseParser.js.map +1 -1
  18. package/dist/esm/src/parsers/FullNameParser.js +13 -1
  19. package/dist/esm/src/parsers/FullNameParser.js.map +1 -1
  20. package/dist/esm/src/parsers/FunctionExpressionParser.js +37 -3
  21. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  22. package/dist/esm/src/parsers/JoinClauseParser.d.ts +4 -0
  23. package/dist/esm/src/parsers/JoinClauseParser.js +54 -20
  24. package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -1
  25. package/dist/esm/src/parsers/OrderByClauseParser.js +39 -8
  26. package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -1
  27. package/dist/esm/src/parsers/ParenExpressionParser.js +1 -1
  28. package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
  29. package/dist/esm/src/parsers/SelectClauseParser.d.ts +10 -0
  30. package/dist/esm/src/parsers/SelectClauseParser.js +124 -12
  31. package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
  32. package/dist/esm/src/parsers/SelectQueryParser.d.ts +12 -0
  33. package/dist/esm/src/parsers/SelectQueryParser.js +277 -115
  34. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  35. package/dist/esm/src/parsers/SourceAliasExpressionParser.js +15 -4
  36. package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -1
  37. package/dist/esm/src/parsers/SourceParser.js +33 -2
  38. package/dist/esm/src/parsers/SourceParser.js.map +1 -1
  39. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +62 -0
  40. package/dist/esm/src/parsers/SqlPrintTokenParser.js +700 -32
  41. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  42. package/dist/esm/src/parsers/SqlTokenizer.d.ts +1 -4
  43. package/dist/esm/src/parsers/SqlTokenizer.js +108 -52
  44. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  45. package/dist/esm/src/parsers/ValueParser.d.ts +4 -0
  46. package/dist/esm/src/parsers/ValueParser.js +119 -20
  47. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  48. package/dist/esm/src/parsers/WithClauseParser.d.ts +4 -0
  49. package/dist/esm/src/parsers/WithClauseParser.js +64 -35
  50. package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
  51. package/dist/esm/src/tokenReaders/CommandTokenReader.js +9 -1
  52. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  53. package/dist/esm/src/transformers/CTEQueryDecomposer.d.ts +69 -0
  54. package/dist/esm/src/transformers/CTEQueryDecomposer.js +123 -0
  55. package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
  56. package/dist/esm/src/transformers/LinePrinter.d.ts +17 -2
  57. package/dist/esm/src/transformers/LinePrinter.js +39 -10
  58. package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
  59. package/dist/esm/src/transformers/SqlFormatter.d.ts +44 -16
  60. package/dist/esm/src/transformers/SqlFormatter.js +2 -2
  61. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  62. package/dist/esm/src/transformers/SqlPrinter.d.ts +30 -20
  63. package/dist/esm/src/transformers/SqlPrinter.js +119 -25
  64. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  65. package/dist/esm/src/utils/CommentEditor.d.ts +12 -5
  66. package/dist/esm/src/utils/CommentEditor.js +67 -28
  67. package/dist/esm/src/utils/CommentEditor.js.map +1 -1
  68. package/dist/esm/src/utils/stringUtils.js +21 -9
  69. package/dist/esm/src/utils/stringUtils.js.map +1 -1
  70. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  71. package/dist/index.min.js +54 -50
  72. package/dist/index.min.js.map +3 -3
  73. package/dist/src/index.d.ts +1 -0
  74. package/dist/src/index.js.map +1 -1
  75. package/dist/src/models/Lexeme.d.ts +8 -0
  76. package/dist/src/models/SqlComponent.d.ts +20 -0
  77. package/dist/src/models/SqlComponent.js +46 -0
  78. package/dist/src/models/SqlComponent.js.map +1 -1
  79. package/dist/src/parsers/CommandExpressionParser.d.ts +9 -0
  80. package/dist/src/parsers/CommandExpressionParser.js +118 -14
  81. package/dist/src/parsers/CommandExpressionParser.js.map +1 -1
  82. package/dist/src/parsers/CommonTableParser.d.ts +8 -0
  83. package/dist/src/parsers/CommonTableParser.js +127 -35
  84. package/dist/src/parsers/CommonTableParser.js.map +1 -1
  85. package/dist/src/parsers/FromClauseParser.js +2 -2
  86. package/dist/src/parsers/FromClauseParser.js.map +1 -1
  87. package/dist/src/parsers/FullNameParser.js +13 -1
  88. package/dist/src/parsers/FullNameParser.js.map +1 -1
  89. package/dist/src/parsers/FunctionExpressionParser.js +37 -3
  90. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  91. package/dist/src/parsers/JoinClauseParser.d.ts +4 -0
  92. package/dist/src/parsers/JoinClauseParser.js +54 -20
  93. package/dist/src/parsers/JoinClauseParser.js.map +1 -1
  94. package/dist/src/parsers/OrderByClauseParser.js +39 -8
  95. package/dist/src/parsers/OrderByClauseParser.js.map +1 -1
  96. package/dist/src/parsers/ParenExpressionParser.js +1 -1
  97. package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
  98. package/dist/src/parsers/SelectClauseParser.d.ts +10 -0
  99. package/dist/src/parsers/SelectClauseParser.js +124 -12
  100. package/dist/src/parsers/SelectClauseParser.js.map +1 -1
  101. package/dist/src/parsers/SelectQueryParser.d.ts +12 -0
  102. package/dist/src/parsers/SelectQueryParser.js +280 -115
  103. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  104. package/dist/src/parsers/SourceAliasExpressionParser.js +15 -4
  105. package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -1
  106. package/dist/src/parsers/SourceParser.js +33 -2
  107. package/dist/src/parsers/SourceParser.js.map +1 -1
  108. package/dist/src/parsers/SqlPrintTokenParser.d.ts +62 -0
  109. package/dist/src/parsers/SqlPrintTokenParser.js +700 -32
  110. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  111. package/dist/src/parsers/SqlTokenizer.d.ts +1 -4
  112. package/dist/src/parsers/SqlTokenizer.js +108 -52
  113. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  114. package/dist/src/parsers/ValueParser.d.ts +4 -0
  115. package/dist/src/parsers/ValueParser.js +119 -20
  116. package/dist/src/parsers/ValueParser.js.map +1 -1
  117. package/dist/src/parsers/WithClauseParser.d.ts +4 -0
  118. package/dist/src/parsers/WithClauseParser.js +64 -35
  119. package/dist/src/parsers/WithClauseParser.js.map +1 -1
  120. package/dist/src/tokenReaders/CommandTokenReader.js +9 -1
  121. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  122. package/dist/src/transformers/CTEQueryDecomposer.d.ts +69 -0
  123. package/dist/src/transformers/CTEQueryDecomposer.js +123 -0
  124. package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
  125. package/dist/src/transformers/LinePrinter.d.ts +17 -2
  126. package/dist/src/transformers/LinePrinter.js +39 -10
  127. package/dist/src/transformers/LinePrinter.js.map +1 -1
  128. package/dist/src/transformers/SqlFormatter.d.ts +44 -16
  129. package/dist/src/transformers/SqlFormatter.js +13 -2
  130. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  131. package/dist/src/transformers/SqlPrinter.d.ts +30 -20
  132. package/dist/src/transformers/SqlPrinter.js +119 -25
  133. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  134. package/dist/src/utils/CommentEditor.d.ts +12 -5
  135. package/dist/src/utils/CommentEditor.js +67 -28
  136. package/dist/src/utils/CommentEditor.js.map +1 -1
  137. package/dist/src/utils/stringUtils.js +21 -9
  138. package/dist/src/utils/stringUtils.js.map +1 -1
  139. package/dist/tsconfig.tsbuildinfo +1 -1
  140. package/package.json +3 -3
@@ -137,6 +137,22 @@ export class SelectQueryParser {
137
137
  source.headerComments = null;
138
138
  }
139
139
  }
140
+ static extractUnionTokenComments(unionLexeme) {
141
+ const comments = [];
142
+ if (unionLexeme.positionedComments && unionLexeme.positionedComments.length > 0) {
143
+ for (const posComment of unionLexeme.positionedComments) {
144
+ if (posComment.comments && posComment.comments.length > 0) {
145
+ comments.push(...posComment.comments);
146
+ }
147
+ }
148
+ unionLexeme.positionedComments = undefined;
149
+ }
150
+ if (unionLexeme.comments && unionLexeme.comments.length > 0) {
151
+ comments.push(...unionLexeme.comments);
152
+ unionLexeme.comments = null;
153
+ }
154
+ return comments.length > 0 ? comments : null;
155
+ }
140
156
  // Parse from lexeme array (was: parse)
141
157
  static parseFromLexeme(lexemes, index) {
142
158
  let idx = index;
@@ -157,7 +173,7 @@ export class SelectQueryParser {
157
173
  while (idx < lexemes.length && this.unionCommandSet.has(lexemes[idx].value.toLowerCase())) {
158
174
  const operatorLexeme = lexemes[idx];
159
175
  const operator = operatorLexeme.value.toLowerCase();
160
- const unionComments = operatorLexeme.comments; // Comments from UNION keyword
176
+ const unionComments = this.extractUnionTokenComments(operatorLexeme);
161
177
  idx++;
162
178
  if (idx >= lexemes.length) {
163
179
  throw new Error(`Syntax error at position ${idx}: Expected a query after '${operator.toUpperCase()}' but found end of input.`);
@@ -168,14 +184,14 @@ export class SelectQueryParser {
168
184
  const binaryQuery = new BinarySelectQuery(query, operator, result.value);
169
185
  // Transfer headerComments from the first query to the BinarySelectQuery
170
186
  this.transferHeaderComments(query, binaryQuery);
171
- // Assign UNION comments to right query (common usage pattern)
187
+ // Assign UNION comments to right query as headerComments (semantic positioning)
172
188
  if (unionComments && unionComments.length > 0) {
173
- if (result.value.comments) {
174
- // Prepend UNION comments to existing comments
175
- result.value.comments = [...unionComments, ...result.value.comments];
189
+ if (result.value.headerComments) {
190
+ // Prepend UNION comments to existing headerComments
191
+ result.value.headerComments = [...unionComments, ...result.value.headerComments];
176
192
  }
177
193
  else {
178
- result.value.comments = unionComments;
194
+ result.value.headerComments = unionComments;
179
195
  }
180
196
  }
181
197
  query = binaryQuery;
@@ -186,13 +202,13 @@ export class SelectQueryParser {
186
202
  const binaryQuery = new BinarySelectQuery(query, operator, result.value);
187
203
  // Transfer headerComments from the first query to the BinarySelectQuery
188
204
  this.transferHeaderComments(query, binaryQuery);
189
- // Assign UNION comments to the right side query
205
+ // Assign UNION comments to the right side query as headerComments (semantic positioning)
190
206
  if (unionComments && unionComments.length > 0) {
191
- if (result.value.comments) {
192
- result.value.comments = [...unionComments, ...result.value.comments];
207
+ if (result.value.headerComments) {
208
+ result.value.headerComments = [...unionComments, ...result.value.headerComments];
193
209
  }
194
210
  else {
195
- result.value.comments = unionComments;
211
+ result.value.headerComments = unionComments;
196
212
  }
197
213
  }
198
214
  query = binaryQuery;
@@ -205,129 +221,275 @@ export class SelectQueryParser {
205
221
  return { value: query, newIndex: idx };
206
222
  }
207
223
  static parseSimpleSelectQuery(lexemes, index) {
224
+ var _a, _b;
208
225
  let idx = index;
209
- let withClauseResult = null;
210
- // Collect headerComments before WITH clause or SELECT clause
211
- const headerComments = [];
212
- // headerComments will be collected from SELECT token itself or WITH clause
213
- // Parse optional WITH clause
214
- if (idx < lexemes.length && lexemes[idx].value === 'with') {
215
- withClauseResult = WithClauseParser.parseFromLexeme(lexemes, idx);
216
- idx = withClauseResult.newIndex;
217
- // Collect headerComments from WithClauseParser
218
- if (withClauseResult.headerComments) {
219
- headerComments.push(...withClauseResult.headerComments);
226
+ // 1. Parse optional WITH clause and collect header comments
227
+ const { withClauseResult, newIndex: withEndIndex, selectQuery: queryTemplate } = this.parseWithClauseAndComments(lexemes, idx);
228
+ idx = withEndIndex;
229
+ // 2. Parse all SQL clauses sequentially
230
+ const { clauses, newIndex: clausesEndIndex, selectTokenComments } = this.parseAllClauses(lexemes, idx, withClauseResult);
231
+ idx = clausesEndIndex;
232
+ // Merge SELECT token comments based on presence of WITH clause
233
+ if (selectTokenComments && selectTokenComments.length > 0) {
234
+ if (withClauseResult) {
235
+ const existingBetween = (_a = queryTemplate.betweenClauseComments) !== null && _a !== void 0 ? _a : [];
236
+ const merged = [...existingBetween];
237
+ for (const comment of selectTokenComments) {
238
+ if (!merged.includes(comment)) {
239
+ merged.push(comment);
240
+ }
241
+ }
242
+ queryTemplate.betweenClauseComments = merged;
243
+ queryTemplate.mainSelectPrefixComments = undefined;
220
244
  }
221
- }
222
- // Collect comments from WITH clause
223
- const withTrailingComments = [];
224
- // Get trailing comments from WITH clause (these are comments after WITH clause, meant for main query)
225
- if (withClauseResult === null || withClauseResult === void 0 ? void 0 : withClauseResult.value.trailingComments) {
226
- withTrailingComments.push(...withClauseResult.value.trailingComments);
227
- }
228
- // Collect comments that appear between WITH clause end and SELECT keyword
229
- // These should be applied to query level (appearing between WITH and SELECT)
230
- const queryLevelComments = [...withTrailingComments];
231
- let tempIdx = idx;
232
- while (tempIdx < lexemes.length && lexemes[tempIdx].value.toLowerCase() !== 'select') {
233
- const tokenComments = lexemes[tempIdx].comments;
234
- if (tokenComments && tokenComments.length > 0) {
235
- queryLevelComments.push(...tokenComments);
245
+ else {
246
+ const existingHeader = (_b = queryTemplate.headerComments) !== null && _b !== void 0 ? _b : [];
247
+ queryTemplate.headerComments = [
248
+ ...existingHeader,
249
+ ...selectTokenComments
250
+ ];
236
251
  }
237
- tempIdx++;
238
252
  }
239
- // Parse SELECT clause (required)
240
- if (idx >= lexemes.length || lexemes[idx].value !== 'select') {
241
- throw new Error(`Syntax error at position ${idx}: Expected 'SELECT' keyword but found "${idx < lexemes.length ? lexemes[idx].value : 'end of input'}". SELECT queries must start with the SELECT keyword.`);
253
+ // 3. Create final query with parsed clauses
254
+ const selectQuery = new SimpleSelectQuery(Object.assign({ withClause: withClauseResult ? withClauseResult.value : null }, clauses));
255
+ // 4. Apply collected comments directly to the query
256
+ this.applyCommentsToQuery(selectQuery, queryTemplate, withClauseResult);
257
+ return { value: selectQuery, newIndex: idx };
258
+ }
259
+ // Parse WITH clause and collect header comments
260
+ static parseWithClauseAndComments(lexemes, index) {
261
+ let idx = index;
262
+ let withClauseResult = null;
263
+ const queryTemplate = {};
264
+ // Collect header comments before WITH or SELECT
265
+ queryTemplate.headerComments = this.collectHeaderComments(lexemes, idx);
266
+ // Skip to WITH or SELECT token
267
+ while (idx < lexemes.length &&
268
+ lexemes[idx].value.toLowerCase() !== 'with' &&
269
+ lexemes[idx].value.toLowerCase() !== 'select') {
270
+ idx++;
271
+ }
272
+ // Collect 'before' comments from WITH token
273
+ if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'with') {
274
+ this.collectWithTokenHeaderComments(lexemes[idx], queryTemplate);
242
275
  }
243
- // Also collect comments attached to the SELECT token itself as headerComments
244
- const selectTokenComments = lexemes[idx].comments;
245
- if (selectTokenComments && selectTokenComments.length > 0) {
246
- headerComments.push(...selectTokenComments);
247
- // Clear the comments from the SELECT token to avoid duplication
248
- lexemes[idx].comments = null;
276
+ // Parse WITH clause if present
277
+ if (idx < lexemes.length && lexemes[idx].value === 'with') {
278
+ withClauseResult = WithClauseParser.parseFromLexeme(lexemes, idx);
279
+ idx = withClauseResult.newIndex;
280
+ // Collect comments between WITH clause and SELECT
281
+ queryTemplate.mainSelectPrefixComments = this.collectMainSelectPrefixComments(lexemes, withClauseResult, idx);
282
+ queryTemplate.betweenClauseComments = this.collectBetweenClauseComments(lexemes, withClauseResult, idx);
249
283
  }
284
+ return { withClauseResult, newIndex: idx, selectQuery: queryTemplate };
285
+ }
286
+ // Parse all SQL clauses (SELECT, FROM, WHERE, etc.)
287
+ static parseAllClauses(lexemes, index, withClauseResult) {
288
+ let idx = index;
289
+ // Find and parse SELECT clause
290
+ idx = this.findMainSelectToken(lexemes, idx, withClauseResult);
291
+ const selectTokenComments = this.collectSelectTokenComments(lexemes, idx);
250
292
  const selectClauseResult = SelectClauseParser.parseFromLexeme(lexemes, idx);
251
293
  idx = selectClauseResult.newIndex;
252
- // Parse FROM clause (optional)
253
- let fromClauseResult = null;
254
- if (idx < lexemes.length && lexemes[idx].value === 'from') {
255
- fromClauseResult = FromClauseParser.parseFromLexeme(lexemes, idx);
256
- idx = fromClauseResult.newIndex;
294
+ // Parse optional clauses
295
+ const fromClauseResult = this.parseOptionalClause(lexemes, idx, 'from', FromClauseParser);
296
+ idx = fromClauseResult.newIndex;
297
+ const whereClauseResult = this.parseOptionalClause(lexemes, fromClauseResult.newIndex, 'where', WhereClauseParser);
298
+ idx = whereClauseResult.newIndex;
299
+ const groupByClauseResult = this.parseOptionalClause(lexemes, whereClauseResult.newIndex, 'group by', GroupByClauseParser);
300
+ idx = groupByClauseResult.newIndex;
301
+ const havingClauseResult = this.parseOptionalClause(lexemes, groupByClauseResult.newIndex, 'having', HavingClauseParser);
302
+ idx = havingClauseResult.newIndex;
303
+ const windowClauseResult = this.parseOptionalClause(lexemes, havingClauseResult.newIndex, 'window', WindowClauseParser);
304
+ idx = windowClauseResult.newIndex;
305
+ const orderByClauseResult = this.parseOptionalClause(lexemes, windowClauseResult.newIndex, 'order by', OrderByClauseParser);
306
+ idx = orderByClauseResult.newIndex;
307
+ const limitClauseResult = this.parseOptionalClause(lexemes, orderByClauseResult.newIndex, 'limit', LimitClauseParser);
308
+ idx = limitClauseResult.newIndex;
309
+ const offsetClauseResult = this.parseOptionalClause(lexemes, limitClauseResult.newIndex, 'offset', OffsetClauseParser);
310
+ idx = offsetClauseResult.newIndex;
311
+ const fetchClauseResult = this.parseOptionalClause(lexemes, offsetClauseResult.newIndex, 'fetch', FetchClauseParser);
312
+ idx = fetchClauseResult.newIndex;
313
+ const forClauseResult = this.parseOptionalClause(lexemes, fetchClauseResult.newIndex, 'for', ForClauseParser);
314
+ idx = forClauseResult.newIndex;
315
+ const clauses = {
316
+ selectClause: selectClauseResult.value,
317
+ fromClause: fromClauseResult.value,
318
+ whereClause: whereClauseResult.value,
319
+ groupByClause: groupByClauseResult.value,
320
+ havingClause: havingClauseResult.value,
321
+ orderByClause: orderByClauseResult.value,
322
+ windowClause: windowClauseResult.value,
323
+ limitClause: limitClauseResult.value,
324
+ offsetClause: offsetClauseResult.value,
325
+ fetchClause: fetchClauseResult.value,
326
+ forClause: forClauseResult.value
327
+ };
328
+ return { clauses, newIndex: idx, selectTokenComments };
329
+ }
330
+ // Helper to parse optional clauses
331
+ static parseOptionalClause(lexemes, index, keyword, parser) {
332
+ if (index < lexemes.length && lexemes[index].value.toLowerCase() === keyword) {
333
+ return parser.parseFromLexeme(lexemes, index);
257
334
  }
258
- // Parse WHERE clause (optional)
259
- let whereClauseResult = null;
260
- if (idx < lexemes.length && lexemes[idx].value === 'where') {
261
- whereClauseResult = WhereClauseParser.parseFromLexeme(lexemes, idx);
262
- idx = whereClauseResult.newIndex;
335
+ return { value: null, newIndex: index };
336
+ }
337
+ // Collect header comments before meaningful tokens
338
+ static collectHeaderComments(lexemes, startIndex) {
339
+ const headerComments = [];
340
+ let idx = startIndex;
341
+ while (idx < lexemes.length &&
342
+ lexemes[idx].value.toLowerCase() !== 'with' &&
343
+ lexemes[idx].value.toLowerCase() !== 'select') {
344
+ const token = lexemes[idx];
345
+ if (token.positionedComments) {
346
+ for (const posComment of token.positionedComments) {
347
+ if (posComment.comments) {
348
+ headerComments.push(...posComment.comments);
349
+ }
350
+ }
351
+ }
352
+ if (token.comments && token.comments.length > 0) {
353
+ headerComments.push(...token.comments);
354
+ }
355
+ idx++;
263
356
  }
264
- // Parse GROUP BY clause (optional)
265
- let groupByClauseResult = null;
266
- if (idx < lexemes.length && lexemes[idx].value === 'group by') {
267
- groupByClauseResult = GroupByClauseParser.parseFromLexeme(lexemes, idx);
268
- idx = groupByClauseResult.newIndex;
357
+ return headerComments;
358
+ }
359
+ // Collect 'before' positioned comments from WITH token
360
+ static collectWithTokenHeaderComments(withToken, queryTemplate) {
361
+ if (!withToken.positionedComments)
362
+ return;
363
+ if (!queryTemplate.headerComments)
364
+ queryTemplate.headerComments = [];
365
+ const remainingPositioned = [];
366
+ for (const posComment of withToken.positionedComments) {
367
+ if (posComment.position === 'before' && posComment.comments) {
368
+ queryTemplate.headerComments.push(...posComment.comments);
369
+ }
370
+ else {
371
+ remainingPositioned.push(posComment);
372
+ }
269
373
  }
270
- // Parse HAVING clause (optional)
271
- let havingClauseResult = null;
272
- if (idx < lexemes.length && lexemes[idx].value === 'having') {
273
- havingClauseResult = HavingClauseParser.parseFromLexeme(lexemes, idx);
274
- idx = havingClauseResult.newIndex;
374
+ withToken.positionedComments = remainingPositioned.length > 0 ? remainingPositioned : undefined;
375
+ }
376
+ // Collect comments between WITH clause and main SELECT
377
+ static collectMainSelectPrefixComments(lexemes, withClauseResult, currentIndex) {
378
+ const mainSelectPrefixComments = [];
379
+ // Get trailing comments from WITH clause
380
+ if (withClauseResult === null || withClauseResult === void 0 ? void 0 : withClauseResult.value.trailingComments) {
381
+ mainSelectPrefixComments.push(...withClauseResult.value.trailingComments);
275
382
  }
276
- // Parse WINDOW clause (optional)
277
- let windowClauseResult = null;
278
- if (idx < lexemes.length && lexemes[idx].value === 'window') {
279
- windowClauseResult = WindowClauseParser.parseFromLexeme(lexemes, idx);
280
- idx = windowClauseResult.newIndex;
383
+ // Find main SELECT token
384
+ const mainSelectIdx = this.findMainSelectIndex(lexemes, withClauseResult, currentIndex);
385
+ // Scan tokens between WITH end and main SELECT
386
+ if (withClauseResult && mainSelectIdx > withClauseResult.newIndex) {
387
+ for (let tempIdx = withClauseResult.newIndex; tempIdx < mainSelectIdx; tempIdx++) {
388
+ const token = lexemes[tempIdx];
389
+ if (token.positionedComments) {
390
+ for (const posComment of token.positionedComments) {
391
+ if (posComment.comments) {
392
+ mainSelectPrefixComments.push(...posComment.comments);
393
+ }
394
+ }
395
+ }
396
+ if (token.comments && token.comments.length > 0) {
397
+ mainSelectPrefixComments.push(...token.comments);
398
+ }
399
+ }
281
400
  }
282
- // Parse ORDER BY clause (optional)
283
- let orderByClauseResult = null;
284
- if (idx < lexemes.length && lexemes[idx].value === 'order by') {
285
- orderByClauseResult = OrderByClauseParser.parseFromLexeme(lexemes, idx);
286
- idx = orderByClauseResult.newIndex;
401
+ return mainSelectPrefixComments;
402
+ }
403
+ // Collect comments between clauses
404
+ static collectBetweenClauseComments(lexemes, withClauseResult, currentIndex) {
405
+ if (!withClauseResult)
406
+ return [];
407
+ const betweenClauseComments = [];
408
+ const withEndIndex = withClauseResult.newIndex;
409
+ const scanStartIndex = Math.max(0, withEndIndex - 1);
410
+ for (let i = scanStartIndex; i < currentIndex; i++) {
411
+ const token = lexemes[i];
412
+ if (token.positionedComments && token.positionedComments.length > 0) {
413
+ for (const posComment of token.positionedComments) {
414
+ if (posComment.comments) {
415
+ betweenClauseComments.push(...posComment.comments);
416
+ }
417
+ }
418
+ token.positionedComments = undefined;
419
+ }
420
+ if (token.comments && token.comments.length > 0) {
421
+ betweenClauseComments.push(...token.comments);
422
+ token.comments = null;
423
+ }
287
424
  }
288
- // Parse LIMIT clause (optional)
289
- let limitClauseResult = null;
290
- if (idx < lexemes.length && lexemes[idx].value === 'limit') {
291
- limitClauseResult = LimitClauseParser.parseFromLexeme(lexemes, idx);
292
- idx = limitClauseResult.newIndex;
425
+ return betweenClauseComments;
426
+ }
427
+ // Find main SELECT token index
428
+ static findMainSelectIndex(lexemes, withClauseResult, fallbackIndex) {
429
+ if (withClauseResult) {
430
+ for (let i = withClauseResult.newIndex; i < lexemes.length; i++) {
431
+ if (lexemes[i].value.toLowerCase() === 'select') {
432
+ return i;
433
+ }
434
+ }
293
435
  }
294
- // Parse OFFSET clause (optional)
295
- let offsetClauseResult = null;
296
- if (idx < lexemes.length && lexemes[idx].value === 'offset') {
297
- offsetClauseResult = OffsetClauseParser.parseFromLexeme(lexemes, idx);
298
- idx = offsetClauseResult.newIndex;
436
+ return fallbackIndex;
437
+ }
438
+ // Find and validate main SELECT token
439
+ static findMainSelectToken(lexemes, index, withClauseResult) {
440
+ const mainSelectIdx = this.findMainSelectIndex(lexemes, withClauseResult, index);
441
+ if (mainSelectIdx >= lexemes.length || lexemes[mainSelectIdx].value !== 'select') {
442
+ throw new Error(`Syntax error at position ${mainSelectIdx}: Expected 'SELECT' keyword but found "${mainSelectIdx < lexemes.length ? lexemes[mainSelectIdx].value : 'end of input'}". SELECT queries must start with the SELECT keyword.`);
299
443
  }
300
- // Parse FETCH clause (optional)
301
- let fetchClauseResult = null;
302
- if (idx < lexemes.length && lexemes[idx].value === 'fetch') {
303
- fetchClauseResult = FetchClauseParser.parseFromLexeme(lexemes, idx);
304
- idx = fetchClauseResult.newIndex;
444
+ return mainSelectIdx;
445
+ }
446
+ // Collect and clear comments from SELECT token
447
+ static collectSelectTokenComments(lexemes, selectIndex) {
448
+ const selectToken = lexemes[selectIndex];
449
+ const selectComments = [];
450
+ if (selectToken.comments && selectToken.comments.length > 0) {
451
+ selectComments.push(...selectToken.comments);
452
+ selectToken.comments = null;
305
453
  }
306
- // Parse FOR clause (optional)
307
- let forClauseResult = null;
308
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'for') {
309
- forClauseResult = ForClauseParser.parseFromLexeme(lexemes, idx);
310
- idx = forClauseResult.newIndex;
454
+ if (selectToken.positionedComments && selectToken.positionedComments.length > 0) {
455
+ for (const posComment of selectToken.positionedComments) {
456
+ if (posComment.position === 'before' && posComment.comments) {
457
+ selectComments.push(...posComment.comments);
458
+ }
459
+ }
460
+ selectToken.positionedComments = undefined;
311
461
  }
312
- // Create and return the SelectQuery object
313
- const selectQuery = new SimpleSelectQuery({
314
- withClause: withClauseResult ? withClauseResult.value : null,
315
- selectClause: selectClauseResult.value,
316
- fromClause: fromClauseResult ? fromClauseResult.value : null,
317
- whereClause: whereClauseResult ? whereClauseResult.value : null,
318
- groupByClause: groupByClauseResult ? groupByClauseResult.value : null,
319
- havingClause: havingClauseResult ? havingClauseResult.value : null,
320
- orderByClause: orderByClauseResult ? orderByClauseResult.value : null,
321
- windowClause: windowClauseResult ? windowClauseResult.value : null,
322
- limitClause: limitClauseResult ? limitClauseResult.value : null,
323
- offsetClause: offsetClauseResult ? offsetClauseResult.value : null,
324
- fetchClause: fetchClauseResult ? fetchClauseResult.value : null,
325
- forClause: forClauseResult ? forClauseResult.value : null
326
- });
327
- // Set headerComments and query-level comments from collected sources to the query object
328
- selectQuery.comments = queryLevelComments.length > 0 ? queryLevelComments : null;
329
- selectQuery.headerComments = headerComments.length > 0 ? headerComments : null;
330
- return { value: selectQuery, newIndex: idx };
462
+ return selectComments;
463
+ }
464
+ // Apply all collected comments directly to the query
465
+ static applyCommentsToQuery(selectQuery, queryTemplate, withClauseResult) {
466
+ var _a;
467
+ // Apply header comments directly
468
+ if (((_a = queryTemplate.headerComments) === null || _a === void 0 ? void 0 : _a.length) > 0) {
469
+ selectQuery.headerComments = queryTemplate.headerComments;
470
+ }
471
+ // Merge helper to avoid duplicate between-clause comments
472
+ const mergeBetweenComments = (source) => {
473
+ var _a;
474
+ if (!source || source.length === 0) {
475
+ return;
476
+ }
477
+ const existing = (_a = selectQuery.comments) !== null && _a !== void 0 ? _a : [];
478
+ const merged = [];
479
+ for (const comment of source) {
480
+ if (!merged.includes(comment)) {
481
+ merged.push(comment);
482
+ }
483
+ }
484
+ for (const comment of existing) {
485
+ if (!merged.includes(comment)) {
486
+ merged.push(comment);
487
+ }
488
+ }
489
+ selectQuery.comments = merged;
490
+ };
491
+ mergeBetweenComments(queryTemplate.mainSelectPrefixComments);
492
+ mergeBetweenComments(queryTemplate.betweenClauseComments);
331
493
  }
332
494
  static parseValuesQuery(lexemes, index) {
333
495
  // Use ValuesQueryParser to parse VALUES clause
@@ -1 +1 @@
1
- {"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,9 @@ export class SourceAliasExpressionParser {
7
7
  let idx = index;
8
8
  // If there is a column alias, it may be detected as a function, so functions are also processed.
9
9
  if (idx < lexemes.length && ((lexemes[idx].type & TokenType.Identifier) || (lexemes[idx].type & TokenType.Function))) {
10
- // Check for alias
11
- const table = lexemes[idx].value;
10
+ // Check for alias and capture comments from the alias token
11
+ const aliasToken = lexemes[idx];
12
+ const table = aliasToken.value;
12
13
  idx++;
13
14
  if (idx < lexemes.length && (lexemes[idx].type & TokenType.OpenParen)) {
14
15
  // Check for column alias
@@ -35,9 +36,19 @@ export class SourceAliasExpressionParser {
35
36
  if (columns.length === 0) {
36
37
  throw new Error(`Syntax error at position ${index}: No column aliases found. Column alias declarations must contain at least one column name.`);
37
38
  }
38
- return { value: new SourceAliasExpression(table, columns), newIndex: idx };
39
+ const sourceAlias = new SourceAliasExpression(table, columns);
40
+ // Transfer positioned comments from the alias token
41
+ if (aliasToken.positionedComments && aliasToken.positionedComments.length > 0) {
42
+ sourceAlias.positionedComments = aliasToken.positionedComments;
43
+ }
44
+ return { value: sourceAlias, newIndex: idx };
45
+ }
46
+ const sourceAlias = new SourceAliasExpression(table, null);
47
+ // Transfer positioned comments from the alias token
48
+ if (aliasToken.positionedComments && aliasToken.positionedComments.length > 0) {
49
+ sourceAlias.positionedComments = aliasToken.positionedComments;
39
50
  }
40
- return { value: new SourceAliasExpression(table, null), newIndex: idx };
51
+ return { value: sourceAlias, newIndex: idx };
41
52
  }
42
53
  throw new Error(`Syntax error at position ${index}: Expected an identifier for table alias but found "${((_a = lexemes[index]) === null || _a === void 0 ? void 0 : _a.value) || 'end of input'}".`);
43
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceAliasExpressionParser.js","sourceRoot":"","sources":["../../../../src/parsers/SourceAliasExpressionParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,OAAO,2BAA2B;IACpC,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,iGAAiG;QACjG,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACnH,kBAAkB;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,GAAG,EAAE,CAAC;YAEN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpE,yBAAyB;gBACzB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,4BAA4B;gBAC5B,GAAG,EAAE,CAAC;gBAEN,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChE,GAAG,EAAE,CAAC;oBACV,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,2BAA2B;oBACtC,CAAC;gBACL,CAAC;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC3C,+BAA+B;oBAC/B,GAAG,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,6HAA6H,CAAC,CAAC;gBAClL,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,6FAA6F,CAAC,CAAC;gBACpJ,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC/E,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,uDAAuD,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,KAAK,KAAI,cAAc,IAAI,CAAC,CAAC;IACzJ,CAAC;CACJ"}
1
+ {"version":3,"file":"SourceAliasExpressionParser.js","sourceRoot":"","sources":["../../../../src/parsers/SourceAliasExpressionParser.ts"],"names":[],"mappings":"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"}