@quereus/quereus 1.0.6 → 1.1.1

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 (180) hide show
  1. package/dist/src/core/database.d.ts.map +1 -1
  2. package/dist/src/core/database.js +0 -7
  3. package/dist/src/core/database.js.map +1 -1
  4. package/dist/src/core/statement.js.map +1 -1
  5. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  6. package/dist/src/emit/ast-stringify.js +57 -60
  7. package/dist/src/emit/ast-stringify.js.map +1 -1
  8. package/dist/src/func/builtins/explain.js +1 -1
  9. package/dist/src/func/builtins/explain.js.map +1 -1
  10. package/dist/src/func/builtins/scalar.js +0 -1
  11. package/dist/src/func/builtins/scalar.js.map +1 -1
  12. package/dist/src/parser/index.d.ts.map +1 -1
  13. package/dist/src/parser/index.js +5 -2
  14. package/dist/src/parser/index.js.map +1 -1
  15. package/dist/src/parser/lexer.js.map +1 -1
  16. package/dist/src/planner/building/block.js.map +1 -1
  17. package/dist/src/planner/building/constraint-builder.d.ts +1 -1
  18. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  19. package/dist/src/planner/building/constraint-builder.js +3 -2
  20. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  21. package/dist/src/planner/building/delete.js.map +1 -1
  22. package/dist/src/planner/building/insert.js.map +1 -1
  23. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  24. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  25. package/dist/src/planner/building/select-projections.js.map +1 -1
  26. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  27. package/dist/src/planner/building/select-window.js.map +1 -1
  28. package/dist/src/planner/building/select.d.ts +4 -9
  29. package/dist/src/planner/building/select.d.ts.map +1 -1
  30. package/dist/src/planner/building/select.js +4 -9
  31. package/dist/src/planner/building/select.js.map +1 -1
  32. package/dist/src/planner/building/update.d.ts.map +1 -1
  33. package/dist/src/planner/building/update.js +1 -5
  34. package/dist/src/planner/building/update.js.map +1 -1
  35. package/dist/src/planner/framework/characteristics.js +1 -1
  36. package/dist/src/planner/framework/characteristics.js.map +1 -1
  37. package/dist/src/planner/framework/context.d.ts.map +1 -1
  38. package/dist/src/planner/framework/context.js.map +1 -1
  39. package/dist/src/planner/nodes/aggregate-function.d.ts.map +1 -1
  40. package/dist/src/planner/nodes/aggregate-function.js +4 -2
  41. package/dist/src/planner/nodes/aggregate-function.js.map +1 -1
  42. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  43. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  44. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  45. package/dist/src/planner/nodes/analyze-node.d.ts +4 -2
  46. package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -1
  47. package/dist/src/planner/nodes/analyze-node.js +7 -1
  48. package/dist/src/planner/nodes/analyze-node.js.map +1 -1
  49. package/dist/src/planner/nodes/block.d.ts.map +1 -1
  50. package/dist/src/planner/nodes/block.js +3 -9
  51. package/dist/src/planner/nodes/block.js.map +1 -1
  52. package/dist/src/planner/nodes/declarative-schema.d.ts +8 -4
  53. package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
  54. package/dist/src/planner/nodes/declarative-schema.js +33 -10
  55. package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
  56. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  57. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  58. package/dist/src/planner/nodes/filter.js.map +1 -1
  59. package/dist/src/planner/nodes/plan-node.d.ts +2 -2
  60. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  61. package/dist/src/planner/nodes/plan-node.js +0 -6
  62. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  63. package/dist/src/planner/nodes/pragma.d.ts +4 -2
  64. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  65. package/dist/src/planner/nodes/pragma.js +8 -2
  66. package/dist/src/planner/nodes/pragma.js.map +1 -1
  67. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  68. package/dist/src/planner/nodes/project-node.js +1 -2
  69. package/dist/src/planner/nodes/project-node.js.map +1 -1
  70. package/dist/src/planner/nodes/recursive-cte-node.js +1 -1
  71. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  72. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  73. package/dist/src/planner/nodes/reference.js.map +1 -1
  74. package/dist/src/planner/nodes/remote-query-node.d.ts +1 -1
  75. package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
  76. package/dist/src/planner/nodes/remote-query-node.js +1 -1
  77. package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
  78. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  79. package/dist/src/planner/nodes/scalar.js +15 -6
  80. package/dist/src/planner/nodes/scalar.js.map +1 -1
  81. package/dist/src/planner/nodes/sequencing-node.js +1 -1
  82. package/dist/src/planner/nodes/sequencing-node.js.map +1 -1
  83. package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
  84. package/dist/src/planner/nodes/sink-node.js +3 -0
  85. package/dist/src/planner/nodes/sink-node.js.map +1 -1
  86. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  87. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  88. package/dist/src/planner/nodes/subquery.d.ts +0 -2
  89. package/dist/src/planner/nodes/subquery.d.ts.map +1 -1
  90. package/dist/src/planner/nodes/subquery.js +1 -4
  91. package/dist/src/planner/nodes/subquery.js.map +1 -1
  92. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  93. package/dist/src/planner/nodes/window-function.js +3 -1
  94. package/dist/src/planner/nodes/window-function.js.map +1 -1
  95. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  96. package/dist/src/planner/nodes/window-node.js +3 -1
  97. package/dist/src/planner/nodes/window-node.js.map +1 -1
  98. package/dist/src/planner/optimizer.d.ts +0 -4
  99. package/dist/src/planner/optimizer.d.ts.map +1 -1
  100. package/dist/src/planner/optimizer.js +2 -17
  101. package/dist/src/planner/optimizer.js.map +1 -1
  102. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
  103. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  104. package/dist/src/planner/scopes/param.d.ts.map +1 -1
  105. package/dist/src/planner/scopes/param.js.map +1 -1
  106. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  107. package/dist/src/planner/stats/catalog-stats.js +35 -20
  108. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  109. package/dist/src/planner/stats/index.js +3 -3
  110. package/dist/src/planner/stats/index.js.map +1 -1
  111. package/dist/src/runtime/async-util.d.ts.map +1 -1
  112. package/dist/src/runtime/async-util.js +20 -12
  113. package/dist/src/runtime/async-util.js.map +1 -1
  114. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  115. package/dist/src/runtime/emit/alter-table.js +2 -0
  116. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  117. package/dist/src/runtime/emit/case.js +2 -2
  118. package/dist/src/runtime/emit/case.js.map +1 -1
  119. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  120. package/dist/src/runtime/emit/constraint-check.js +13 -20
  121. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  122. package/dist/src/runtime/emit/create-index.js +1 -1
  123. package/dist/src/runtime/emit/create-index.js.map +1 -1
  124. package/dist/src/runtime/emit/create-table.js +1 -1
  125. package/dist/src/runtime/emit/create-table.js.map +1 -1
  126. package/dist/src/runtime/emit/delete.js +1 -1
  127. package/dist/src/runtime/emit/delete.js.map +1 -1
  128. package/dist/src/runtime/emit/drop-table.js +1 -1
  129. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  130. package/dist/src/runtime/emit/pragma.d.ts.map +1 -1
  131. package/dist/src/runtime/emit/pragma.js.map +1 -1
  132. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  133. package/dist/src/runtime/emit/recursive-cte.js +3 -2
  134. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  135. package/dist/src/runtime/emit/scalar-function.js +1 -1
  136. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  137. package/dist/src/schema/catalog.d.ts.map +1 -1
  138. package/dist/src/schema/catalog.js +2 -1
  139. package/dist/src/schema/catalog.js.map +1 -1
  140. package/dist/src/schema/manager.d.ts.map +1 -1
  141. package/dist/src/schema/manager.js +2 -0
  142. package/dist/src/schema/manager.js.map +1 -1
  143. package/dist/src/schema/schema.d.ts +5 -1
  144. package/dist/src/schema/schema.d.ts.map +1 -1
  145. package/dist/src/schema/schema.js +7 -1
  146. package/dist/src/schema/schema.js.map +1 -1
  147. package/dist/src/schema/table.d.ts.map +1 -1
  148. package/dist/src/schema/table.js +0 -1
  149. package/dist/src/schema/table.js.map +1 -1
  150. package/dist/src/types/builtin-types.d.ts.map +1 -1
  151. package/dist/src/types/builtin-types.js +2 -3
  152. package/dist/src/types/builtin-types.js.map +1 -1
  153. package/dist/src/types/temporal-types.js +2 -2
  154. package/dist/src/types/temporal-types.js.map +1 -1
  155. package/dist/src/util/affinity.js +1 -1
  156. package/dist/src/util/affinity.js.map +1 -1
  157. package/dist/src/util/async-iterator.d.ts.map +1 -1
  158. package/dist/src/util/async-iterator.js +7 -1
  159. package/dist/src/util/async-iterator.js.map +1 -1
  160. package/dist/src/util/patterns.js +2 -2
  161. package/dist/src/util/patterns.js.map +1 -1
  162. package/dist/src/vtab/best-access-plan.d.ts +3 -3
  163. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  164. package/dist/src/vtab/best-access-plan.js +0 -1
  165. package/dist/src/vtab/best-access-plan.js.map +1 -1
  166. package/dist/src/vtab/memory/layer/base.d.ts +0 -6
  167. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  168. package/dist/src/vtab/memory/layer/base.js +0 -28
  169. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  170. package/dist/src/vtab/memory/layer/manager.js +1 -1
  171. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  172. package/dist/src/vtab/memory/layer/transaction.d.ts +0 -1
  173. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  174. package/dist/src/vtab/memory/layer/transaction.js +0 -2
  175. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  176. package/dist/src/vtab/memory/module.d.ts +1 -1
  177. package/dist/src/vtab/memory/module.js +1 -1
  178. package/dist/src/vtab/module.d.ts +0 -1
  179. package/dist/src/vtab/module.d.ts.map +1 -1
  180. package/package.json +3 -3
@@ -18,8 +18,6 @@ export function quoteIdentifier(name) {
18
18
  }
19
19
  return name;
20
20
  }
21
- // Internal alias for backward compatibility
22
- const quoteIdentifierIfNeeded = quoteIdentifier;
23
21
  // Main function to convert any AST node to SQL string
24
22
  export function astToString(node) {
25
23
  switch (node.type) {
@@ -35,6 +33,9 @@ export function astToString(node) {
35
33
  case 'subquery':
36
34
  case 'collate':
37
35
  case 'case':
36
+ case 'exists':
37
+ case 'in':
38
+ case 'between':
38
39
  case 'windowFunction':
39
40
  return expressionToString(node);
40
41
  // Statement types
@@ -127,18 +128,18 @@ export function expressionToString(expr) {
127
128
  return String(expr.value);
128
129
  }
129
130
  case 'identifier': {
130
- let identStr = quoteIdentifierIfNeeded(expr.name);
131
+ let identStr = quoteIdentifier(expr.name);
131
132
  if (expr.schema) {
132
- identStr = `${quoteIdentifierIfNeeded(expr.schema)}.${identStr}`;
133
+ identStr = `${quoteIdentifier(expr.schema)}.${identStr}`;
133
134
  }
134
135
  return identStr;
135
136
  }
136
137
  case 'column': {
137
- let colStr = quoteIdentifierIfNeeded(expr.name);
138
+ let colStr = quoteIdentifier(expr.name);
138
139
  if (expr.table) {
139
- colStr = `${quoteIdentifierIfNeeded(expr.table)}.${colStr}`;
140
+ colStr = `${quoteIdentifier(expr.table)}.${colStr}`;
140
141
  if (expr.schema) {
141
- colStr = `${quoteIdentifierIfNeeded(expr.schema)}.${colStr}`;
142
+ colStr = `${quoteIdentifier(expr.schema)}.${colStr}`;
142
143
  }
143
144
  }
144
145
  return colStr;
@@ -242,8 +243,13 @@ function needsParens(expr, parentOp, side) {
242
243
  if (expr.type !== 'binary')
243
244
  return false;
244
245
  const precedence = {
245
- 'OR': 1, 'AND': 2, 'NOT': 3, '=': 4, '!=': 4, '<': 4, '<=': 4, '>': 4, '>=': 4,
246
- 'LIKE': 4, 'IN': 4, 'IS': 4, '+': 5, '-': 5, '*': 6, '/': 6, '%': 6
246
+ 'OR': 1, 'XOR': 1,
247
+ 'AND': 2,
248
+ '=': 3, '==': 3, '!=': 3,
249
+ '<': 4, '<=': 4, '>': 4, '>=': 4, 'LIKE': 4, 'GLOB': 4, 'MATCH': 4, 'REGEXP': 4,
250
+ '+': 5, '-': 5,
251
+ '*': 6, '/': 6, '%': 6,
252
+ '||': 7,
247
253
  };
248
254
  const parentPrec = precedence[parentOp.toUpperCase()] || 0;
249
255
  const childPrec = precedence[expr.operator.toUpperCase()] || 0;
@@ -254,7 +260,7 @@ function needsParens(expr, parentOp, side) {
254
260
  return false;
255
261
  }
256
262
  function isAssociative(op) {
257
- const associativeOps = ['AND', 'OR', '+', '*'];
263
+ const associativeOps = ['AND', 'OR', 'XOR', '+', '*', '||'];
258
264
  return associativeOps.includes(op.toUpperCase());
259
265
  }
260
266
  // Helper for window definitions
@@ -315,12 +321,12 @@ export function selectToString(stmt) {
315
321
  parts.push('all');
316
322
  const columns = stmt.columns.map(col => {
317
323
  if (col.type === 'all') {
318
- return col.table ? `${quoteIdentifierIfNeeded(col.table)}.*` : '*';
324
+ return col.table ? `${quoteIdentifier(col.table)}.*` : '*';
319
325
  }
320
326
  else {
321
327
  let colStr = expressionToString(col.expr);
322
328
  if (col.alias)
323
- colStr += ` as ${quoteIdentifierIfNeeded(col.alias)}`;
329
+ colStr += ` as ${quoteIdentifier(col.alias)}`;
324
330
  return colStr;
325
331
  }
326
332
  });
@@ -366,9 +372,9 @@ function withClauseToString(withClause) {
366
372
  if (withClause.recursive)
367
373
  result += ' recursive';
368
374
  const ctes = withClause.ctes.map(cte => {
369
- let cteStr = quoteIdentifierIfNeeded(cte.name);
375
+ let cteStr = quoteIdentifier(cte.name);
370
376
  if (cte.columns && cte.columns.length > 0) {
371
- cteStr += ` (${cte.columns.map(quoteIdentifierIfNeeded).join(', ')})`;
377
+ cteStr += ` (${cte.columns.map(quoteIdentifier).join(', ')})`;
372
378
  }
373
379
  cteStr += ` as (${astToString(cte.query)})`;
374
380
  return cteStr;
@@ -383,12 +389,12 @@ function withClauseToString(withClause) {
383
389
  function fromClauseToString(from) {
384
390
  switch (from.type) {
385
391
  case 'table': {
386
- let tableStr = quoteIdentifierIfNeeded(from.table.name);
392
+ let tableStr = quoteIdentifier(from.table.name);
387
393
  if (from.table.schema) {
388
- tableStr = `${quoteIdentifierIfNeeded(from.table.schema)}.${tableStr}`;
394
+ tableStr = `${quoteIdentifier(from.table.schema)}.${tableStr}`;
389
395
  }
390
396
  if (from.alias)
391
- tableStr += ` as ${quoteIdentifierIfNeeded(from.alias)}`;
397
+ tableStr += ` as ${quoteIdentifier(from.alias)}`;
392
398
  return tableStr;
393
399
  }
394
400
  case 'subquerySource': {
@@ -404,9 +410,9 @@ function fromClauseToString(from) {
404
410
  const exhaustiveCheck = from.subquery;
405
411
  subqueryStr = astToString(exhaustiveCheck);
406
412
  }
407
- let aliasStr = `as ${quoteIdentifierIfNeeded(from.alias)}`;
413
+ let aliasStr = `as ${quoteIdentifier(from.alias)}`;
408
414
  if (from.columns && from.columns.length > 0) {
409
- aliasStr += ` (${from.columns.map(quoteIdentifierIfNeeded).join(', ')})`;
415
+ aliasStr += ` (${from.columns.map(quoteIdentifier).join(', ')})`;
410
416
  }
411
417
  return `(${subqueryStr}) ${aliasStr}`;
412
418
  }
@@ -425,7 +431,7 @@ function fromClauseToString(from) {
425
431
  }
426
432
  let funcStr = `${funcName}(${args})`;
427
433
  if (from.alias)
428
- funcStr += ` as ${quoteIdentifierIfNeeded(from.alias)}`;
434
+ funcStr += ` as ${quoteIdentifier(from.alias)}`;
429
435
  return funcStr;
430
436
  }
431
437
  case 'join': {
@@ -436,7 +442,7 @@ function fromClauseToString(from) {
436
442
  joinStr += ` on ${expressionToString(from.condition)}`;
437
443
  }
438
444
  else if (from.columns) {
439
- joinStr += ` using (${from.columns.map(quoteIdentifierIfNeeded).join(', ')})`;
445
+ joinStr += ` using (${from.columns.map(quoteIdentifier).join(', ')})`;
440
446
  }
441
447
  return joinStr;
442
448
  }
@@ -451,10 +457,10 @@ export function insertToString(stmt) {
451
457
  }
452
458
  parts.push('insert into', expressionToString(stmt.table));
453
459
  if (stmt.columns && stmt.columns.length > 0) {
454
- parts.push(`(${stmt.columns.map(quoteIdentifierIfNeeded).join(', ')})`);
460
+ parts.push(`(${stmt.columns.map(quoteIdentifier).join(', ')})`);
455
461
  }
456
462
  if (stmt.contextValues && stmt.contextValues.length > 0) {
457
- const contextAssignments = stmt.contextValues.map(assign => `${quoteIdentifierIfNeeded(assign.name)} = ${expressionToString(assign.value)}`);
463
+ const contextAssignments = stmt.contextValues.map(assign => `${quoteIdentifier(assign.name)} = ${expressionToString(assign.value)}`);
458
464
  parts.push('with context', contextAssignments.join(', '));
459
465
  }
460
466
  if (stmt.values) {
@@ -476,12 +482,12 @@ export function insertToString(stmt) {
476
482
  if (stmt.returning && stmt.returning.length > 0) {
477
483
  const returning = stmt.returning.map(col => {
478
484
  if (col.type === 'all') {
479
- return col.table ? `${quoteIdentifierIfNeeded(col.table)}.*` : '*';
485
+ return col.table ? `${quoteIdentifier(col.table)}.*` : '*';
480
486
  }
481
487
  else {
482
488
  let colStr = expressionToString(col.expr);
483
489
  if (col.alias)
484
- colStr += ` as ${quoteIdentifierIfNeeded(col.alias)}`;
490
+ colStr += ` as ${quoteIdentifier(col.alias)}`;
485
491
  return colStr;
486
492
  }
487
493
  });
@@ -495,7 +501,7 @@ export function insertToString(stmt) {
495
501
  function upsertClauseToString(upsert) {
496
502
  const parts = ['on conflict'];
497
503
  if (upsert.conflictTarget && upsert.conflictTarget.length > 0) {
498
- parts.push(`(${upsert.conflictTarget.map(quoteIdentifierIfNeeded).join(', ')})`);
504
+ parts.push(`(${upsert.conflictTarget.map(quoteIdentifier).join(', ')})`);
499
505
  }
500
506
  if (upsert.action === 'nothing') {
501
507
  parts.push('do nothing');
@@ -503,7 +509,7 @@ function upsertClauseToString(upsert) {
503
509
  else {
504
510
  parts.push('do update set');
505
511
  if (upsert.assignments) {
506
- const assigns = upsert.assignments.map(a => `${quoteIdentifierIfNeeded(a.column)} = ${expressionToString(a.value)}`);
512
+ const assigns = upsert.assignments.map(a => `${quoteIdentifier(a.column)} = ${expressionToString(a.value)}`);
507
513
  parts.push(assigns.join(', '));
508
514
  }
509
515
  if (upsert.where) {
@@ -519,11 +525,11 @@ export function updateToString(stmt) {
519
525
  }
520
526
  parts.push('update', expressionToString(stmt.table));
521
527
  if (stmt.contextValues && stmt.contextValues.length > 0) {
522
- const contextAssignments = stmt.contextValues.map(assign => `${quoteIdentifierIfNeeded(assign.name)} = ${expressionToString(assign.value)}`);
528
+ const contextAssignments = stmt.contextValues.map(assign => `${quoteIdentifier(assign.name)} = ${expressionToString(assign.value)}`);
523
529
  parts.push('with context', contextAssignments.join(', '));
524
530
  }
525
531
  parts.push('set');
526
- const assignments = stmt.assignments.map(assign => `${quoteIdentifierIfNeeded(assign.column)} = ${expressionToString(assign.value)}`);
532
+ const assignments = stmt.assignments.map(assign => `${quoteIdentifier(assign.column)} = ${expressionToString(assign.value)}`);
527
533
  parts.push(assignments.join(', '));
528
534
  if (stmt.where) {
529
535
  parts.push('where', expressionToString(stmt.where));
@@ -534,12 +540,12 @@ export function updateToString(stmt) {
534
540
  if (stmt.returning && stmt.returning.length > 0) {
535
541
  const returning = stmt.returning.map(col => {
536
542
  if (col.type === 'all') {
537
- return col.table ? `${quoteIdentifierIfNeeded(col.table)}.*` : '*';
543
+ return col.table ? `${quoteIdentifier(col.table)}.*` : '*';
538
544
  }
539
545
  else {
540
546
  let colStr = expressionToString(col.expr);
541
547
  if (col.alias)
542
- colStr += ` as ${quoteIdentifierIfNeeded(col.alias)}`;
548
+ colStr += ` as ${quoteIdentifier(col.alias)}`;
543
549
  return colStr;
544
550
  }
545
551
  });
@@ -554,7 +560,7 @@ export function deleteToString(stmt) {
554
560
  }
555
561
  parts.push('delete from', expressionToString(stmt.table));
556
562
  if (stmt.contextValues && stmt.contextValues.length > 0) {
557
- const contextAssignments = stmt.contextValues.map(assign => `${quoteIdentifierIfNeeded(assign.name)} = ${expressionToString(assign.value)}`);
563
+ const contextAssignments = stmt.contextValues.map(assign => `${quoteIdentifier(assign.name)} = ${expressionToString(assign.value)}`);
558
564
  parts.push('with context', contextAssignments.join(', '));
559
565
  }
560
566
  if (stmt.where) {
@@ -563,12 +569,12 @@ export function deleteToString(stmt) {
563
569
  if (stmt.returning && stmt.returning.length > 0) {
564
570
  const returning = stmt.returning.map(col => {
565
571
  if (col.type === 'all') {
566
- return col.table ? `${quoteIdentifierIfNeeded(col.table)}.*` : '*';
572
+ return col.table ? `${quoteIdentifier(col.table)}.*` : '*';
567
573
  }
568
574
  else {
569
575
  let colStr = expressionToString(col.expr);
570
576
  if (col.alias)
571
- colStr += ` as ${quoteIdentifierIfNeeded(col.alias)}`;
577
+ colStr += ` as ${quoteIdentifier(col.alias)}`;
572
578
  return colStr;
573
579
  }
574
580
  });
@@ -590,7 +596,7 @@ export function createIndexToString(stmt) {
590
596
  parts.push(expressionToString(stmt.index), 'on', expressionToString(stmt.table));
591
597
  const columns = stmt.columns.map(col => {
592
598
  if (col.name) {
593
- let colStr = quoteIdentifierIfNeeded(col.name);
599
+ let colStr = quoteIdentifier(col.name);
594
600
  if (col.collation)
595
601
  colStr += ` collate ${col.collation.toLowerCase()}`;
596
602
  if (col.direction === 'desc')
@@ -617,7 +623,7 @@ export function createViewToString(stmt) {
617
623
  parts.push('if not exists');
618
624
  parts.push(expressionToString(stmt.view));
619
625
  if (stmt.columns && stmt.columns.length > 0) {
620
- parts.push(`(${stmt.columns.map(quoteIdentifierIfNeeded).join(', ')})`);
626
+ parts.push(`(${stmt.columns.map(quoteIdentifier).join(', ')})`);
621
627
  }
622
628
  parts.push('as', selectToString(stmt.select));
623
629
  return parts.join(' ');
@@ -657,7 +663,7 @@ function pragmaToString(stmt) {
657
663
  return result;
658
664
  }
659
665
  function declareSchemaToString(stmt) {
660
- let s = `declare schema ${quoteIdentifierIfNeeded(stmt.schemaName || 'main')}`;
666
+ let s = `declare schema ${quoteIdentifier(stmt.schemaName || 'main')}`;
661
667
  if (stmt.version)
662
668
  s += ` version '${stmt.version}'`;
663
669
  if (stmt.using && (stmt.using.defaultVtabModule || stmt.using.defaultVtabArgs)) {
@@ -704,7 +710,7 @@ function columnConstraintsToString(constraints) {
704
710
  return constraints.map(c => {
705
711
  let s = '';
706
712
  if (c.name)
707
- s += `constraint ${quoteIdentifierIfNeeded(c.name)} `;
713
+ s += `constraint ${quoteIdentifier(c.name)} `;
708
714
  switch (c.type) {
709
715
  case 'primaryKey':
710
716
  s += 'primary key';
@@ -739,9 +745,9 @@ function columnConstraintsToString(constraints) {
739
745
  case 'foreignKey':
740
746
  if (c.foreignKey) {
741
747
  const fk = c.foreignKey;
742
- s += `references ${quoteIdentifierIfNeeded(fk.table)}`;
748
+ s += `references ${quoteIdentifier(fk.table)}`;
743
749
  if (fk.columns && fk.columns.length > 0) {
744
- s += `(${fk.columns.map(quoteIdentifierIfNeeded).join(', ')})`;
750
+ s += `(${fk.columns.map(quoteIdentifier).join(', ')})`;
745
751
  }
746
752
  if (fk.onDelete)
747
753
  s += ` on delete ${foreignKeyActionToString(fk.onDelete)}`;
@@ -764,15 +770,15 @@ function tableConstraintsToString(constraints) {
764
770
  return constraints.map(c => {
765
771
  let s = '';
766
772
  if (c.name)
767
- s += `constraint ${quoteIdentifierIfNeeded(c.name)} `;
773
+ s += `constraint ${quoteIdentifier(c.name)} `;
768
774
  switch (c.type) {
769
775
  case 'primaryKey':
770
776
  // ASC is default, only specify DESC
771
- s += `primary key (${c.columns.map(col => `${quoteIdentifierIfNeeded(col.name)}${col.direction === 'desc' ? ' desc' : ''}`).join(', ')})`;
777
+ s += `primary key (${c.columns.map(col => `${quoteIdentifier(col.name)}${col.direction === 'desc' ? ' desc' : ''}`).join(', ')})`;
772
778
  s += conflictToString(c.onConflict);
773
779
  break;
774
780
  case 'unique':
775
- s += `unique (${c.columns.map(col => quoteIdentifierIfNeeded(col.name)).join(', ')})`;
781
+ s += `unique (${c.columns.map(col => quoteIdentifier(col.name)).join(', ')})`;
776
782
  s += conflictToString(c.onConflict);
777
783
  break;
778
784
  case 'check':
@@ -781,9 +787,9 @@ function tableConstraintsToString(constraints) {
781
787
  case 'foreignKey':
782
788
  if (c.foreignKey) {
783
789
  const fk = c.foreignKey;
784
- s += `foreign key (${c.columns.map(col => quoteIdentifierIfNeeded(col.name)).join(', ')}) references ${quoteIdentifierIfNeeded(fk.table)}`;
790
+ s += `foreign key (${c.columns.map(col => quoteIdentifier(col.name)).join(', ')}) references ${quoteIdentifier(fk.table)}`;
785
791
  if (fk.columns && fk.columns.length > 0) {
786
- s += `(${fk.columns.map(quoteIdentifierIfNeeded).join(', ')})`;
792
+ s += `(${fk.columns.map(quoteIdentifier).join(', ')})`;
787
793
  }
788
794
  if (fk.onDelete)
789
795
  s += ` on delete ${foreignKeyActionToString(fk.onDelete)}`;
@@ -805,7 +811,7 @@ function foreignKeyActionToString(action) {
805
811
  }
806
812
  }
807
813
  export function columnDefToString(col) {
808
- let colDef = quoteIdentifierIfNeeded(col.name);
814
+ let colDef = quoteIdentifier(col.name);
809
815
  if (col.dataType)
810
816
  colDef += ` ${col.dataType}`;
811
817
  const constraints = columnConstraintsToString(col.constraints);
@@ -821,19 +827,10 @@ export function createTableToString(stmt) {
821
827
  if (stmt.ifNotExists)
822
828
  parts.push('if not exists');
823
829
  // Handle schema.table quoting
824
- const tableName = quoteIdentifierIfNeeded(stmt.table.name);
825
- const schemaName = stmt.table.schema ? quoteIdentifierIfNeeded(stmt.table.schema) : undefined;
830
+ const tableName = quoteIdentifier(stmt.table.name);
831
+ const schemaName = stmt.table.schema ? quoteIdentifier(stmt.table.schema) : undefined;
826
832
  parts.push(schemaName ? `${schemaName}.${tableName}` : tableName);
827
- const definitions = [];
828
- stmt.columns.forEach(col => {
829
- let colDef = quoteIdentifierIfNeeded(col.name);
830
- if (col.dataType)
831
- colDef += ` ${col.dataType}`; // Keep data type casing as is
832
- const constraints = columnConstraintsToString(col.constraints);
833
- if (constraints)
834
- colDef += ` ${constraints}`;
835
- definitions.push(colDef);
836
- });
833
+ const definitions = stmt.columns.map(columnDefToString);
837
834
  const tableConstraints = tableConstraintsToString(stmt.constraints);
838
835
  if (tableConstraints)
839
836
  definitions.push(tableConstraints);
@@ -841,14 +838,14 @@ export function createTableToString(stmt) {
841
838
  if (stmt.moduleName) {
842
839
  parts.push('using', stmt.moduleName);
843
840
  if (stmt.moduleArgs && Object.keys(stmt.moduleArgs).length > 0) {
844
- const args = Object.entries(stmt.moduleArgs).map(([key, value]) => `${quoteIdentifierIfNeeded(key)} = ${JSON.stringify(value)}`).join(', ');
841
+ const args = Object.entries(stmt.moduleArgs).map(([key, value]) => `${quoteIdentifier(key)} = ${JSON.stringify(value)}`).join(', ');
845
842
  parts.push(`(${args})`);
846
843
  }
847
844
  }
848
845
  // Add WITH CONTEXT clause if present
849
846
  if (stmt.contextDefinitions && stmt.contextDefinitions.length > 0) {
850
847
  const contextVars = stmt.contextDefinitions.map(varDef => {
851
- let def = quoteIdentifierIfNeeded(varDef.name);
848
+ let def = quoteIdentifier(varDef.name);
852
849
  if (varDef.dataType)
853
850
  def += ` ${varDef.dataType}`;
854
851
  if (varDef.notNull === false)
@@ -1 +1 @@
1
- {"version":3,"file":"ast-stringify.js","sourceRoot":"","sources":["../../../src/emit/ast-stringify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-stringify.js","sourceRoot":"","sources":["../../../src/emit/ast-stringify.ts"],"names":[],"mappings":"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"}
@@ -335,7 +335,7 @@ export const stackTraceFunc = createIntegratedTableValuedFunction({
335
335
  }
336
336
  catch (error) {
337
337
  // If analysis fails, yield an error frame
338
- yield [0, 0, 'error', 'stack_trace', JSON.stringify({ error: error.message })];
338
+ yield [0, 0, 'error', 'stack_trace', `Failed to analyze: ${error.message}`, null, 0];
339
339
  }
340
340
  });
341
341
  // Execution trace function for performance analysis