@quereus/quereus 1.2.0 → 1.3.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 (110) hide show
  1. package/dist/src/planner/analysis/predicate-normalizer.d.ts.map +1 -1
  2. package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -1
  3. package/dist/src/planner/building/constraint-builder.js +2 -2
  4. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  5. package/dist/src/planner/building/foreign-key-builder.js +2 -2
  6. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  7. package/dist/src/planner/building/insert.js +2 -2
  8. package/dist/src/planner/building/insert.js.map +1 -1
  9. package/dist/src/planner/building/select-aggregates.d.ts +1 -1
  10. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  11. package/dist/src/planner/building/select-aggregates.js +2 -2
  12. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  13. package/dist/src/planner/building/select-projections.d.ts +1 -0
  14. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  15. package/dist/src/planner/building/select-projections.js +39 -5
  16. package/dist/src/planner/building/select-projections.js.map +1 -1
  17. package/dist/src/planner/building/select-window.js +7 -7
  18. package/dist/src/planner/building/select-window.js.map +1 -1
  19. package/dist/src/planner/building/select.d.ts.map +1 -1
  20. package/dist/src/planner/building/select.js +20 -74
  21. package/dist/src/planner/building/select.js.map +1 -1
  22. package/dist/src/planner/framework/characteristics.d.ts +2 -0
  23. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  24. package/dist/src/planner/nodes/add-constraint-node.d.ts +2 -6
  25. package/dist/src/planner/nodes/add-constraint-node.d.ts.map +1 -1
  26. package/dist/src/planner/nodes/add-constraint-node.js +2 -14
  27. package/dist/src/planner/nodes/add-constraint-node.js.map +1 -1
  28. package/dist/src/planner/nodes/alter-table-node.d.ts +2 -6
  29. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  30. package/dist/src/planner/nodes/alter-table-node.js +2 -14
  31. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  32. package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -8
  33. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  34. package/dist/src/planner/nodes/bloom-join-node.js +4 -70
  35. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  36. package/dist/src/planner/nodes/create-assertion-node.d.ts +2 -6
  37. package/dist/src/planner/nodes/create-assertion-node.d.ts.map +1 -1
  38. package/dist/src/planner/nodes/create-assertion-node.js +2 -14
  39. package/dist/src/planner/nodes/create-assertion-node.js.map +1 -1
  40. package/dist/src/planner/nodes/declarative-schema.d.ts +4 -10
  41. package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
  42. package/dist/src/planner/nodes/declarative-schema.js +3 -27
  43. package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
  44. package/dist/src/planner/nodes/drop-assertion-node.d.ts +2 -6
  45. package/dist/src/planner/nodes/drop-assertion-node.d.ts.map +1 -1
  46. package/dist/src/planner/nodes/drop-assertion-node.js +2 -14
  47. package/dist/src/planner/nodes/drop-assertion-node.js.map +1 -1
  48. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  49. package/dist/src/planner/nodes/join-node.js +5 -99
  50. package/dist/src/planner/nodes/join-node.js.map +1 -1
  51. package/dist/src/planner/nodes/join-utils.d.ts +31 -0
  52. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -0
  53. package/dist/src/planner/nodes/join-utils.js +86 -0
  54. package/dist/src/planner/nodes/join-utils.js.map +1 -0
  55. package/dist/src/planner/nodes/merge-join-node.d.ts +1 -1
  56. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  57. package/dist/src/planner/nodes/merge-join-node.js +4 -70
  58. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  59. package/dist/src/planner/nodes/sort.d.ts +2 -0
  60. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  61. package/dist/src/planner/nodes/sort.js +5 -4
  62. package/dist/src/planner/nodes/sort.js.map +1 -1
  63. package/dist/src/planner/scopes/global.d.ts.map +1 -1
  64. package/dist/src/planner/scopes/global.js +7 -10
  65. package/dist/src/planner/scopes/global.js.map +1 -1
  66. package/dist/src/planner/scopes/registered.d.ts +0 -1
  67. package/dist/src/planner/scopes/registered.d.ts.map +1 -1
  68. package/dist/src/planner/scopes/registered.js +0 -7
  69. package/dist/src/planner/scopes/registered.js.map +1 -1
  70. package/dist/src/planner/stats/histogram.d.ts.map +1 -1
  71. package/dist/src/planner/stats/histogram.js +2 -1
  72. package/dist/src/planner/stats/histogram.js.map +1 -1
  73. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  74. package/dist/src/runtime/emit/bloom-join.js +4 -12
  75. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  76. package/dist/src/runtime/emit/join-output.d.ts +13 -0
  77. package/dist/src/runtime/emit/join-output.d.ts.map +1 -0
  78. package/dist/src/runtime/emit/join-output.js +22 -0
  79. package/dist/src/runtime/emit/join-output.js.map +1 -0
  80. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  81. package/dist/src/runtime/emit/join.js +4 -16
  82. package/dist/src/runtime/emit/join.js.map +1 -1
  83. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  84. package/dist/src/runtime/emit/merge-join.js +4 -11
  85. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  86. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  87. package/dist/src/runtime/emit/window.js +43 -82
  88. package/dist/src/runtime/emit/window.js.map +1 -1
  89. package/dist/src/vtab/memory/layer/interface.d.ts +1 -1
  90. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  91. package/dist/src/vtab/memory/layer/manager.d.ts +2 -2
  92. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  93. package/dist/src/vtab/memory/layer/manager.js +4 -36
  94. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  95. package/dist/src/vtab/memory/layer/plan-filter.d.ts +8 -0
  96. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -0
  97. package/dist/src/vtab/memory/layer/plan-filter.js +46 -0
  98. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -0
  99. package/dist/src/vtab/memory/layer/scan-layer.d.ts +9 -0
  100. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -0
  101. package/dist/src/vtab/memory/layer/{base-cursor.js → scan-layer.js} +35 -77
  102. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -0
  103. package/package.json +3 -3
  104. package/dist/src/vtab/memory/layer/base-cursor.d.ts +0 -5
  105. package/dist/src/vtab/memory/layer/base-cursor.d.ts.map +0 -1
  106. package/dist/src/vtab/memory/layer/base-cursor.js.map +0 -1
  107. package/dist/src/vtab/memory/layer/transaction-cursor.d.ts +0 -5
  108. package/dist/src/vtab/memory/layer/transaction-cursor.d.ts.map +0 -1
  109. package/dist/src/vtab/memory/layer/transaction-cursor.js +0 -247
  110. package/dist/src/vtab/memory/layer/transaction-cursor.js.map +0 -1
@@ -78,7 +78,7 @@ preserveInputColumns = true) {
78
78
  // Build projections based on the SELECT list
79
79
  const projections = [];
80
80
  // Analyze SELECT columns
81
- const { projections: columnProjections, aggregates, windowFunctions, hasAggregates, hasWindowFunctions } = analyzeSelectColumns(stmt.columns, selectContext);
81
+ const { projections: columnProjections, aggregates, windowFunctions, hasAggregates, hasWindowFunctions, hasWrappedAggregates } = analyzeSelectColumns(stmt.columns, selectContext);
82
82
  // Handle SELECT * separately
83
83
  for (const column of stmt.columns) {
84
84
  if (column.type === 'all') {
@@ -89,7 +89,7 @@ preserveInputColumns = true) {
89
89
  // Add non-star projections
90
90
  projections.push(...columnProjections);
91
91
  // Process aggregates if present
92
- const aggregateResult = buildAggregatePhase(input, stmt, selectContext, aggregates, hasAggregates, projections);
92
+ const aggregateResult = buildAggregatePhase(input, stmt, selectContext, aggregates, hasAggregates, projections, hasWrappedAggregates);
93
93
  input = aggregateResult.output;
94
94
  let preAggregateSort = aggregateResult.preAggregateSort;
95
95
  // Update context if we have aggregates
@@ -184,6 +184,19 @@ export function buildValuesStmt(ctx, stmt) {
184
184
  // Create the VALUES node
185
185
  return new ValuesNode(ctx.scope, rows);
186
186
  }
187
+ /**
188
+ * Registers each column of a relational node as a symbol in a new scope,
189
+ * wrapped with an AliasedScope for qualified name resolution.
190
+ */
191
+ function registerColumnScope(parentScope, node, scopeName, alias) {
192
+ const registered = new RegisteredScope(parentScope);
193
+ const attributes = node.getAttributes();
194
+ node.getType().columns.forEach((c, i) => {
195
+ const attr = attributes[i];
196
+ registered.registerSymbol(c.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, c.type, attr.id, i));
197
+ });
198
+ return new AliasedScope(registered, scopeName, alias);
199
+ }
187
200
  /**
188
201
  * Processes a FROM clause item into a relational plan node.
189
202
  *
@@ -216,19 +229,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
216
229
  internalRefNode = new AliasNode(parentContext.scope, cteNode, fromClause.alias.toLowerCase());
217
230
  }
218
231
  fromTable = internalRefNode;
219
- // Create scope for internal recursive CTE columns
220
- const internalScope = new RegisteredScope(parentContext.scope);
221
- const internalAttributes = fromTable.getAttributes();
222
- fromTable.getType().columns.forEach((c, i) => {
223
- const attr = internalAttributes[i];
224
- internalScope.registerSymbol(c.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, c.type, attr.id, i));
225
- });
226
- if (fromClause.alias) {
227
- columnScope = new AliasedScope(internalScope, tableName, fromClause.alias.toLowerCase());
228
- }
229
- else {
230
- columnScope = new AliasedScope(internalScope, tableName, tableName);
231
- }
232
+ columnScope = registerColumnScope(parentContext.scope, fromTable, tableName, fromClause.alias?.toLowerCase() ?? tableName);
232
233
  }
233
234
  else {
234
235
  // Regular CTE reference - cache by CTE name + alias to ensure consistent attribute IDs
@@ -249,24 +250,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
249
250
  const attrs = cteRefNode.getAttributes();
250
251
  logger(`Created new CTE reference ${cacheKey}, attrs=[${attrs.map(a => a.id).join(',')}]`);
251
252
  }
252
- // Create scope for CTE columns using attributes from the reference node
253
- // CRITICAL: Use a closure to capture the reference node's attributes
254
- // This ensures all column references use the same attribute IDs
255
- const cteScope = new RegisteredScope(parentContext.scope);
256
- const refAttrs = cteRefNode.getAttributes();
257
- cteRefNode.getType().columns.forEach((c, i) => {
258
- const attr = refAttrs[i];
259
- cteScope.registerSymbol(c.name.toLowerCase(), (exp, s) => {
260
- // Always use the cached reference node's attribute ID
261
- return new ColumnReferenceNode(s, exp, c.type, attr.id, i);
262
- });
263
- });
264
- if (fromClause.alias) {
265
- columnScope = new AliasedScope(cteScope, tableName, fromClause.alias.toLowerCase());
266
- }
267
- else {
268
- columnScope = new AliasedScope(cteScope, tableName, tableName);
269
- }
253
+ columnScope = registerColumnScope(parentContext.scope, cteRefNode, tableName, fromClause.alias?.toLowerCase() ?? tableName);
270
254
  fromTable = cteRefNode;
271
255
  }
272
256
  }
@@ -300,19 +284,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
300
284
  else {
301
285
  fromTable = viewSelectNode;
302
286
  }
303
- // Create scope for view columns
304
- const viewScope = new RegisteredScope(parentContext.scope);
305
- const viewAttributes = fromTable.getAttributes();
306
- fromTable.getType().columns.forEach((c, i) => {
307
- const attr = viewAttributes[i];
308
- viewScope.registerSymbol(c.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, c.type, attr.id, i));
309
- });
310
- if (fromClause.alias) {
311
- columnScope = new AliasedScope(viewScope, fromClause.table.name.toLowerCase(), fromClause.alias.toLowerCase());
312
- }
313
- else {
314
- columnScope = new AliasedScope(viewScope, fromClause.table.name.toLowerCase(), fromClause.table.name.toLowerCase());
315
- }
287
+ columnScope = registerColumnScope(parentContext.scope, fromTable, fromClause.table.name.toLowerCase(), fromClause.alias?.toLowerCase() ?? fromClause.table.name.toLowerCase());
316
288
  }
317
289
  else {
318
290
  // Regular table
@@ -322,19 +294,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
322
294
  tableNode = new AliasNode(parentContext.scope, tableNode, fromClause.alias.toLowerCase());
323
295
  }
324
296
  fromTable = tableNode;
325
- // Create scope for table columns
326
- const tableScope = new RegisteredScope(parentContext.scope);
327
- const tableAttributes = fromTable.getAttributes();
328
- fromTable.getType().columns.forEach((c, i) => {
329
- const attr = tableAttributes[i];
330
- tableScope.registerSymbol(c.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, c.type, attr.id, i));
331
- });
332
- if (fromClause.alias) {
333
- columnScope = new AliasedScope(tableScope, fromClause.table.name.toLowerCase(), fromClause.alias.toLowerCase());
334
- }
335
- else {
336
- columnScope = new AliasedScope(tableScope, fromClause.table.name.toLowerCase(), fromClause.table.name.toLowerCase());
337
- }
297
+ columnScope = registerColumnScope(parentContext.scope, fromTable, fromClause.table.name.toLowerCase(), fromClause.alias?.toLowerCase() ?? fromClause.table.name.toLowerCase());
338
298
  }
339
299
  }
340
300
  }
@@ -345,21 +305,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
345
305
  funcNode = new AliasNode(parentContext.scope, funcNode, fromClause.alias.toLowerCase());
346
306
  }
347
307
  fromTable = funcNode;
348
- // Create scope for function columns
349
- const functionScope = new RegisteredScope(parentContext.scope);
350
- const functionAttributes = fromTable.getAttributes();
351
- fromTable.getType().columns.forEach((c, i) => {
352
- const attr = functionAttributes[i];
353
- functionScope.registerSymbol(c.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, c.type, attr.id, i));
354
- });
355
- if (fromClause.alias) {
356
- // Use the alias as the table name
357
- columnScope = new AliasedScope(functionScope, '', fromClause.alias.toLowerCase());
358
- }
359
- else {
360
- // Use the function name as the table name
361
- columnScope = new AliasedScope(functionScope, '', fromClause.name.name.toLowerCase());
362
- }
308
+ columnScope = registerColumnScope(parentContext.scope, fromTable, '', fromClause.alias?.toLowerCase() ?? fromClause.name.name.toLowerCase());
363
309
  }
364
310
  else if (fromClause.type === 'subquerySource') {
365
311
  // Build the subquery
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/planner/building/select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/planner/building/select.ts"],"names":[],"mappings":"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"}
@@ -83,10 +83,12 @@ export interface SortCapable extends PlanNode {
83
83
  getSortKeys(): readonly {
84
84
  expression: ScalarPlanNode;
85
85
  direction: 'asc' | 'desc';
86
+ nulls?: 'first' | 'last';
86
87
  }[];
87
88
  withSortKeys(keys: readonly {
88
89
  expression: ScalarPlanNode;
89
90
  direction: 'asc' | 'desc';
91
+ nulls?: 'first' | 'last';
90
92
  }[]): PlanNode;
91
93
  }
92
94
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"characteristics.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/characteristics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"characteristics.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/characteristics.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEzH,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKzD;;GAEG;AACH,qBAAa,uBAAuB;IAEnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI9C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI1C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI/C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI5C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,YAAY;IAIvD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK5C,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAIhD,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAMjD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,GAAG,SAAS;IAKnF,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAI5C,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAIpD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI7C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,EAAE,GAAG,SAAS;IAK5D,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,kBAAkB;IAI/D,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,kBAAkB;IAI/D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAIxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKtC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK3C,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;CAIhD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IACjD,YAAY,IAAI,cAAc,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,YAAY,EAAE,cAAc,GAAG,IAAI,GAAG,QAAQ,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACvD,aAAa,IAAI,SAAS,cAAc,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC5D,oBAAoB,IAAI,OAAO,CAAC;IAChC,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC7D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,eAAe,IAAI,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC7D,eAAe,IAAI,SAAS,cAAc,EAAE,CAAC;IAC7C,uBAAuB,IAAI,SAAS;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnG,gBAAgB,IAAI,OAAO,CAAC;IAC5B,kBAAkB,IAAI,OAAO,CAAC;IAC9B,SAAS,IAAI,kBAAkB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC5C,WAAW,IAAI,SAAS;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9G,YAAY,CAAC,IAAI,EAAE,SAAS;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,EAAE,GAAG,QAAQ,CAAC;CAC7H;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC7C,kBAAkB,IAAI,cAAc,GAAG,SAAS,CAAC;IACjD,mBAAmB,IAAI,cAAc,GAAG,SAAS,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACtD,gFAAgF;IAChF,sBAAsB,IAAI,MAAM,CAAC;IACjC,4DAA4D;IAC5D,oBAAoB,IAAI,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,8DAA8D;IAC9D,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC5D,cAAc,IAAI,SAAS;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1F,eAAe,CAAC,WAAW,EAAE,SAAS;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,QAAQ,CAAC;CAChH;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACtD,WAAW,IAAI,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/E,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAAC;IAC/C,aAAa,IAAI,kBAAkB,CAAC;IACpC,cAAc,IAAI,kBAAkB,CAAC;IACrC,eAAe,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC7C,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,YAAY,IAAI,kBAAkB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC5D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,sBAAsB,EAAE,eAAe,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC/B,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,gBAAgB;IAOrE,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,mBAAmB;IAMxE,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,sBAAsB;IAIxE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,kBAAkB;IAOhE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,kBAAkB;IAQhE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,WAAW;IAOtD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,YAAY;IAOpD,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,qBAAqB;IAK7E,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,iBAAiB;IAM5D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,WAAW;IAQlD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,YAAY;IAKrD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,UAAU;IAQhD,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,sBAAsB;IAUxE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,qBAAqB;IAWtE,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,wBAAwB;IAa5E,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,sBAAsB;CAOxE;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAkD;IAEnF,MAAM,CAAC,QAAQ,CACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,GACnC,IAAI;IAIP,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAKjE,MAAM,CAAC,UAAU,CAChB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,UAAU,EAAE,MAAM,GAChB,QAAQ,EAAE;IAMb,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIrC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAG9C;AAED;;GAEG;AACH,qBAAa,eAAe;IAC3B,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAoB3C,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAkB3C,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAK3C,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;CAIhD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,GAAG,OAAO;IAS5E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO;IAMxE,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAKtC"}
@@ -1,22 +1,18 @@
1
1
  import type { Scope } from '../scopes/scope.js';
2
- import { PhysicalProperties, PlanNode, type VoidNode } from './plan-node.js';
2
+ import { VoidNode, type PhysicalProperties } from './plan-node.js';
3
3
  import { PlanNodeType } from './plan-node-type.js';
4
4
  import type { TableReferenceNode } from './reference.js';
5
- import type { VoidType } from '../../common/datatype.js';
6
5
  import type * as AST from '../../parser/ast.js';
7
6
  /**
8
7
  * Represents adding a constraint to an existing table.
9
8
  * This is a DDL operation that modifies the table schema at runtime.
10
9
  */
11
- export declare class AddConstraintNode extends PlanNode implements VoidNode {
10
+ export declare class AddConstraintNode extends VoidNode {
12
11
  readonly table: TableReferenceNode;
13
12
  readonly constraint: AST.TableConstraint;
14
13
  readonly nodeType = PlanNodeType.AddConstraint;
15
14
  constructor(scope: Scope, table: TableReferenceNode, constraint: AST.TableConstraint);
16
- getType(): VoidType;
17
15
  getRelations(): readonly [TableReferenceNode];
18
- getChildren(): readonly PlanNode[];
19
- withChildren(newChildren: readonly PlanNode[]): PlanNode;
20
16
  toString(): string;
21
17
  getLogicalAttributes(): Record<string, unknown>;
22
18
  computePhysical(_children: readonly PhysicalProperties[]): Partial<PhysicalProperties>;
@@ -1 +1 @@
1
- {"version":3,"file":"add-constraint-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,QAAQ;aAK/C,KAAK,EAAE,kBAAkB;aACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IALjD,SAAkB,QAAQ,8BAA8B;gBAGtD,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IAKjD,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWhD,eAAe,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG/F"}
1
+ {"version":3,"file":"add-constraint-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;aAK3B,KAAK,EAAE,kBAAkB;aACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IALjD,SAAkB,QAAQ,8BAA8B;gBAGtD,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IAKxC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWhD,eAAe,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG/F"}
@@ -1,10 +1,10 @@
1
- import { PlanNode } from './plan-node.js';
1
+ import { VoidNode } from './plan-node.js';
2
2
  import { PlanNodeType } from './plan-node-type.js';
3
3
  /**
4
4
  * Represents adding a constraint to an existing table.
5
5
  * This is a DDL operation that modifies the table schema at runtime.
6
6
  */
7
- export class AddConstraintNode extends PlanNode {
7
+ export class AddConstraintNode extends VoidNode {
8
8
  table;
9
9
  constraint;
10
10
  nodeType = PlanNodeType.AddConstraint;
@@ -13,21 +13,9 @@ export class AddConstraintNode extends PlanNode {
13
13
  this.table = table;
14
14
  this.constraint = constraint;
15
15
  }
16
- getType() {
17
- return { typeClass: 'void' };
18
- }
19
16
  getRelations() {
20
17
  return [this.table];
21
18
  }
22
- getChildren() {
23
- return [];
24
- }
25
- withChildren(newChildren) {
26
- if (newChildren.length !== 0) {
27
- throw new Error(`AddConstraintNode expects 0 children, got ${newChildren.length}`);
28
- }
29
- return this; // No children, so no change
30
- }
31
19
  toString() {
32
20
  const constraintType = this.constraint.type.toUpperCase();
33
21
  const constraintName = this.constraint.name || 'unnamed';
@@ -1 +1 @@
1
- {"version":3,"file":"add-constraint-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAK3B;IACA;IALA,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;IAExD,YACE,KAAY,EACI,KAAyB,EACzB,UAA+B;QAE/C,KAAK,CAAC,KAAK,CAAC,CAAC;QAHG,UAAK,GAAL,KAAK,CAAoB;QACzB,eAAU,GAAV,UAAU,CAAqB;IAGjD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAgC;QAC3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC3C,CAAC;IAEQ,QAAQ;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;QACzD,OAAO,kBAAkB,cAAc,IAAI,cAAc,EAAE,CAAC;IAC9D,CAAC;IAEQ,oBAAoB;QAC3B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;YACzC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;SACvC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,SAAwC;QAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;CACD"}
1
+ {"version":3,"file":"add-constraint-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA2B,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAK3B;IACA;IALA,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;IAExD,YACE,KAAY,EACI,KAAyB,EACzB,UAA+B;QAE/C,KAAK,CAAC,KAAK,CAAC,CAAC;QAHG,UAAK,GAAL,KAAK,CAAoB;QACzB,eAAU,GAAV,UAAU,CAAqB;IAGjD,CAAC;IAEQ,YAAY;QACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAEQ,QAAQ;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;QACzD,OAAO,kBAAkB,cAAc,IAAI,cAAc,EAAE,CAAC;IAC9D,CAAC;IAEQ,oBAAoB;QAC3B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;YACzC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;SACvC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,SAAwC;QAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;CACD"}
@@ -1,8 +1,7 @@
1
1
  import type { Scope } from '../scopes/scope.js';
2
- import { PhysicalProperties, PlanNode, type VoidNode } from './plan-node.js';
2
+ import { VoidNode, type PhysicalProperties } from './plan-node.js';
3
3
  import { PlanNodeType } from './plan-node-type.js';
4
4
  import type { TableReferenceNode } from './reference.js';
5
- import type { VoidType } from '../../common/datatype.js';
6
5
  import type * as AST from '../../parser/ast.js';
7
6
  /**
8
7
  * Discriminated union of ALTER TABLE actions handled by AlterTableNode.
@@ -26,15 +25,12 @@ export type AlterTableAction = {
26
25
  * Plan node for ALTER TABLE operations (rename table/column, add/drop column).
27
26
  * Constraint additions are handled by the separate AddConstraintNode.
28
27
  */
29
- export declare class AlterTableNode extends PlanNode implements VoidNode {
28
+ export declare class AlterTableNode extends VoidNode {
30
29
  readonly table: TableReferenceNode;
31
30
  readonly action: AlterTableAction;
32
31
  readonly nodeType = PlanNodeType.AlterTable;
33
32
  constructor(scope: Scope, table: TableReferenceNode, action: AlterTableAction);
34
- getType(): VoidType;
35
33
  getRelations(): readonly [TableReferenceNode];
36
- getChildren(): readonly PlanNode[];
37
- withChildren(newChildren: readonly PlanNode[]): PlanNode;
38
34
  toString(): string;
39
35
  getLogicalAttributes(): Record<string, unknown>;
40
36
  computePhysical(_children: readonly PhysicalProperties[]): Partial<PhysicalProperties>;
@@ -1 +1 @@
1
- {"version":3,"file":"alter-table-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/alter-table-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;GAGG;AACH,qBAAa,cAAe,SAAQ,QAAS,YAAW,QAAQ;aAK9C,KAAK,EAAE,kBAAkB;aACzB,MAAM,EAAE,gBAAgB;IALzC,SAAkB,QAAQ,2BAA2B;gBAGpD,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,gBAAgB;IAKzC,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAalB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAS/C,eAAe,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG/F"}
1
+ {"version":3,"file":"alter-table-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/alter-table-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;GAGG;AACH,qBAAa,cAAe,SAAQ,QAAQ;aAK1B,KAAK,EAAE,kBAAkB;aACzB,MAAM,EAAE,gBAAgB;IALzC,SAAkB,QAAQ,2BAA2B;gBAGpD,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,gBAAgB;IAKhC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,QAAQ,IAAI,MAAM;IAalB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAS/C,eAAe,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG/F"}
@@ -1,10 +1,10 @@
1
- import { PlanNode } from './plan-node.js';
1
+ import { VoidNode } from './plan-node.js';
2
2
  import { PlanNodeType } from './plan-node-type.js';
3
3
  /**
4
4
  * Plan node for ALTER TABLE operations (rename table/column, add/drop column).
5
5
  * Constraint additions are handled by the separate AddConstraintNode.
6
6
  */
7
- export class AlterTableNode extends PlanNode {
7
+ export class AlterTableNode extends VoidNode {
8
8
  table;
9
9
  action;
10
10
  nodeType = PlanNodeType.AlterTable;
@@ -13,21 +13,9 @@ export class AlterTableNode extends PlanNode {
13
13
  this.table = table;
14
14
  this.action = action;
15
15
  }
16
- getType() {
17
- return { typeClass: 'void' };
18
- }
19
16
  getRelations() {
20
17
  return [this.table];
21
18
  }
22
- getChildren() {
23
- return [];
24
- }
25
- withChildren(newChildren) {
26
- if (newChildren.length !== 0) {
27
- throw new Error(`AlterTableNode expects 0 children, got ${newChildren.length}`);
28
- }
29
- return this;
30
- }
31
19
  toString() {
32
20
  switch (this.action.type) {
33
21
  case 'renameTable':
@@ -1 +1 @@
1
- {"version":3,"file":"alter-table-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/alter-table-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAenD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAK1B;IACA;IALC,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC;IAErD,YACC,KAAY,EACI,KAAyB,EACzB,MAAwB;QAExC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHG,UAAK,GAAL,KAAK,CAAoB;QACzB,WAAM,GAAN,MAAM,CAAkB;IAGzC,CAAC;IAED,OAAO;QACN,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY;QACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,WAAW;QACV,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEQ,QAAQ;QAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,aAAa;gBACjB,OAAO,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvD,KAAK,cAAc;gBAClB,OAAO,6BAA6B,IAAI,CAAC,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrF,KAAK,WAAW;gBACf,OAAO,0BAA0B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5D,KAAK,YAAY;gBAChB,OAAO,2BAA2B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;IACF,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;YACzC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC5B,GAAG,IAAI,CAAC,MAAM;SACd,CAAC;IACH,CAAC;IAEQ,eAAe,CAAC,SAAwC;QAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;CACD"}
1
+ {"version":3,"file":"alter-table-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/alter-table-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA2B,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAcnD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAK1B;IACA;IALC,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC;IAErD,YACC,KAAY,EACI,KAAyB,EACzB,MAAwB;QAExC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHG,UAAK,GAAL,KAAK,CAAoB;QACzB,WAAM,GAAN,MAAM,CAAkB;IAGzC,CAAC;IAEQ,YAAY;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAEQ,QAAQ;QAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,aAAa;gBACjB,OAAO,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvD,KAAK,cAAc;gBAClB,OAAO,6BAA6B,IAAI,CAAC,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrF,KAAK,WAAW;gBACf,OAAO,0BAA0B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5D,KAAK,YAAY;gBAChB,OAAO,2BAA2B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;IACF,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;YACzC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC5B,GAAG,IAAI,CAAC,MAAM;SACd,CAAC;IACH,CAAC;IAEQ,eAAe,CAAC,SAAwC;QAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;CACD"}
@@ -4,14 +4,8 @@ import type { RelationType } from '../../common/datatype.js';
4
4
  import type { Scope } from '../scopes/scope.js';
5
5
  import type { JoinCapable, PredicateSourceCapable } from '../framework/characteristics.js';
6
6
  import type { JoinType } from './join-node.js';
7
- /**
8
- * An equi-join pair: left attribute = right attribute.
9
- * Attribute IDs are stable across plan transformations.
10
- */
11
- export interface EquiJoinPair {
12
- leftAttrId: number;
13
- rightAttrId: number;
14
- }
7
+ import { type EquiJoinPair } from './join-utils.js';
8
+ export type { EquiJoinPair } from './join-utils.js';
15
9
  /**
16
10
  * Physical plan node implementing a hash (bloom) join.
17
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"bloom-join-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC9K,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,oBAAoB,EAAE,WAAW,EAAE,sBAAsB;IAM9G,4BAA4B;aACZ,IAAI,EAAE,kBAAkB;IACxC,8CAA8C;aAC9B,KAAK,EAAE,kBAAkB;aACzB,QAAQ,EAAE,QAAQ;IAClC,2DAA2D;aAC3C,SAAS,EAAE,SAAS,YAAY,EAAE;IAClD,qDAAqD;aACrC,iBAAiB,CAAC,EAAE,cAAc;IAClD,wDAAwD;aACxC,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAf5D,SAAkB,QAAQ,yBAAyB;IACnD,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK;IACZ,4BAA4B;IACZ,IAAI,EAAE,kBAAkB;IACxC,8CAA8C;IAC9B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ;IAClC,2DAA2D;IAC3C,SAAS,EAAE,SAAS,YAAY,EAAE;IAClD,qDAAqD;IACrC,iBAAiB,CAAC,EAAE,cAAc,YAAA;IAClD,wDAAwD;IACxC,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAU5D,OAAO,CAAC,eAAe;IA4BvB,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,IAAI,YAAY;IAyCvB,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBpF,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAkBtC;IAED,WAAW,IAAI,SAAS,QAAQ,EAAE;IAMlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAIjE,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAgCxD,WAAW,IAAI,QAAQ;IACvB,gBAAgB,IAAI,cAAc,GAAG,SAAS;IAC9C,aAAa,IAAI,kBAAkB;IACnC,cAAc,IAAI,kBAAkB;IACpC,eAAe,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS;IAGhD,aAAa,IAAI,SAAS,cAAc,EAAE;IAIjC,QAAQ,IAAI,MAAM;IAKlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAcxD"}
1
+ {"version":3,"file":"bloom-join-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC9K,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAgE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAElH,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,oBAAoB,EAAE,WAAW,EAAE,sBAAsB;IAM9G,4BAA4B;aACZ,IAAI,EAAE,kBAAkB;IACxC,8CAA8C;aAC9B,KAAK,EAAE,kBAAkB;aACzB,QAAQ,EAAE,QAAQ;IAClC,2DAA2D;aAC3C,SAAS,EAAE,SAAS,YAAY,EAAE;IAClD,qDAAqD;aACrC,iBAAiB,CAAC,EAAE,cAAc;IAClD,wDAAwD;aACxC,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAf5D,SAAkB,QAAQ,yBAAyB;IACnD,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK;IACZ,4BAA4B;IACZ,IAAI,EAAE,kBAAkB;IACxC,8CAA8C;IAC9B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ;IAClC,2DAA2D;IAC3C,SAAS,EAAE,SAAS,YAAY,EAAE;IAClD,qDAAqD;IACrC,iBAAiB,CAAC,EAAE,cAAc,YAAA;IAClD,wDAAwD;IACxC,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAU5D,OAAO,CAAC,eAAe;IAOvB,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,IAAI,YAAY;IAIvB,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBpF,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,WAAW,IAAI,SAAS,QAAQ,EAAE;IAMlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAIjE,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAgCxD,WAAW,IAAI,QAAQ;IACvB,gBAAgB,IAAI,cAAc,GAAG,SAAS;IAC9C,aAAa,IAAI,kBAAkB;IACnC,cAAc,IAAI,kBAAkB;IACpC,eAAe,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS;IAGhD,aAAa,IAAI,SAAS,cAAc,EAAE;IAIjC,QAAQ,IAAI,MAAM;IAKlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAcxD"}
@@ -5,6 +5,7 @@ import { StatusCode } from '../../common/types.js';
5
5
  import { quereusError } from '../../common/errors.js';
6
6
  import { hashJoinCost } from '../cost/index.js';
7
7
  import { analyzeJoinKeyCoverage } from '../util/key-utils.js';
8
+ import { buildJoinAttributes, buildJoinRelationType, estimateJoinRows } from './join-utils.js';
8
9
  /**
9
10
  * Physical plan node implementing a hash (bloom) join.
10
11
  *
@@ -47,64 +48,13 @@ export class BloomJoinNode extends PlanNode {
47
48
  this.attributesCache = new Cached(() => this.buildAttributes());
48
49
  }
49
50
  buildAttributes() {
50
- if (this.preserveAttributeIds) {
51
- return this.preserveAttributeIds.slice();
52
- }
53
- const leftAttrs = this.left.getAttributes();
54
- // Semi/anti joins produce only left-side attributes
55
- if (this.joinType === 'semi' || this.joinType === 'anti') {
56
- return leftAttrs.slice();
57
- }
58
- // Fallback: combine left + right attributes (should rarely happen)
59
- const rightAttrs = this.right.getAttributes();
60
- const attributes = [];
61
- for (const attr of leftAttrs) {
62
- const isNullable = this.joinType === 'right' || this.joinType === 'full';
63
- attributes.push(isNullable ? { ...attr, type: { ...attr.type, nullable: true } } : attr);
64
- }
65
- for (const attr of rightAttrs) {
66
- const isNullable = this.joinType === 'left' || this.joinType === 'full';
67
- attributes.push(isNullable ? { ...attr, type: { ...attr.type, nullable: true } } : attr);
68
- }
69
- return attributes;
51
+ return buildJoinAttributes(this.left.getAttributes(), this.right.getAttributes(), this.joinType, this.preserveAttributeIds);
70
52
  }
71
53
  getAttributes() {
72
54
  return this.attributesCache.value;
73
55
  }
74
56
  getType() {
75
- const leftType = this.left.getType();
76
- // Semi/anti joins produce only left-side columns
77
- if (this.joinType === 'semi' || this.joinType === 'anti') {
78
- return {
79
- typeClass: 'relation',
80
- columns: leftType.columns,
81
- isSet: leftType.isSet,
82
- isReadOnly: leftType.isReadOnly,
83
- keys: leftType.keys,
84
- rowConstraints: leftType.rowConstraints
85
- };
86
- }
87
- const rightType = this.right.getType();
88
- const combinedColumns = [
89
- ...leftType.columns.map(col => {
90
- const isNullable = this.joinType === 'right' || this.joinType === 'full';
91
- return isNullable ? { ...col, type: { ...col.type, nullable: true } } : col;
92
- }),
93
- ...rightType.columns.map(col => {
94
- const isNullable = this.joinType === 'left' || this.joinType === 'full';
95
- return isNullable ? { ...col, type: { ...col.type, nullable: true } } : col;
96
- })
97
- ];
98
- const isSet = (this.joinType === 'inner' || this.joinType === 'cross') &&
99
- leftType.isSet && rightType.isSet;
100
- return {
101
- typeClass: 'relation',
102
- columns: combinedColumns,
103
- isSet,
104
- isReadOnly: leftType.isReadOnly && rightType.isReadOnly,
105
- keys: [], // Conservative: don't infer keys for hash join
106
- rowConstraints: [...leftType.rowConstraints, ...rightType.rowConstraints]
107
- };
57
+ return buildJoinRelationType(this.left.getType(), this.right.getType(), this.joinType, []);
108
58
  }
109
59
  computePhysical(childrenPhysical) {
110
60
  const leftPhys = childrenPhysical[0];
@@ -123,23 +73,7 @@ export class BloomJoinNode extends PlanNode {
123
73
  };
124
74
  }
125
75
  get estimatedRows() {
126
- const leftRows = this.left.estimatedRows;
127
- const rightRows = this.right.estimatedRows;
128
- if (leftRows === undefined || rightRows === undefined)
129
- return undefined;
130
- switch (this.joinType) {
131
- case 'cross':
132
- return leftRows * rightRows;
133
- case 'inner':
134
- return Math.max(1, leftRows * rightRows * 0.1);
135
- case 'left':
136
- return leftRows;
137
- case 'semi':
138
- case 'anti':
139
- return Math.max(1, Math.floor(leftRows * 0.5));
140
- default:
141
- return leftRows * rightRows * 0.1;
142
- }
76
+ return estimateJoinRows(this.left.estimatedRows, this.right.estimatedRows, this.joinType);
143
77
  }
144
78
  getChildren() {
145
79
  const children = [this.left, this.right];
@@ -1 +1 @@
1
- {"version":3,"file":"bloom-join-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bloom-join-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"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"}