@quereus/quereus 2.6.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/README.md +222 -439
  2. package/dist/src/common/errors.d.ts +21 -0
  3. package/dist/src/common/errors.d.ts.map +1 -1
  4. package/dist/src/common/errors.js +29 -0
  5. package/dist/src/common/errors.js.map +1 -1
  6. package/dist/src/core/database.d.ts +10 -4
  7. package/dist/src/core/database.d.ts.map +1 -1
  8. package/dist/src/core/database.js +58 -18
  9. package/dist/src/core/database.js.map +1 -1
  10. package/dist/src/core/statement.d.ts.map +1 -1
  11. package/dist/src/core/statement.js +15 -5
  12. package/dist/src/core/statement.js.map +1 -1
  13. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  14. package/dist/src/emit/ast-stringify.js +0 -1
  15. package/dist/src/emit/ast-stringify.js.map +1 -1
  16. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  17. package/dist/src/func/builtins/explain.js +39 -36
  18. package/dist/src/func/builtins/explain.js.map +1 -1
  19. package/dist/src/func/builtins/index.d.ts.map +1 -1
  20. package/dist/src/func/builtins/index.js +3 -2
  21. package/dist/src/func/builtins/index.js.map +1 -1
  22. package/dist/src/func/builtins/json-helpers.d.ts +1 -1
  23. package/dist/src/func/builtins/json-helpers.d.ts.map +1 -1
  24. package/dist/src/func/builtins/json-helpers.js.map +1 -1
  25. package/dist/src/func/builtins/json-tvf.js +2 -2
  26. package/dist/src/func/builtins/json-tvf.js.map +1 -1
  27. package/dist/src/func/builtins/json.d.ts.map +1 -1
  28. package/dist/src/func/builtins/json.js +5 -7
  29. package/dist/src/func/builtins/json.js.map +1 -1
  30. package/dist/src/func/builtins/scalar.d.ts +2 -1
  31. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  32. package/dist/src/func/builtins/scalar.js +33 -16
  33. package/dist/src/func/builtins/scalar.js.map +1 -1
  34. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  35. package/dist/src/func/builtins/schema.js +14 -21
  36. package/dist/src/func/builtins/schema.js.map +1 -1
  37. package/dist/src/func/builtins/string.d.ts.map +1 -1
  38. package/dist/src/func/builtins/string.js +4 -2
  39. package/dist/src/func/builtins/string.js.map +1 -1
  40. package/dist/src/parser/ast.d.ts +1 -1
  41. package/dist/src/parser/ast.d.ts.map +1 -1
  42. package/dist/src/parser/lexer.d.ts.map +1 -1
  43. package/dist/src/parser/lexer.js +8 -48
  44. package/dist/src/parser/lexer.js.map +1 -1
  45. package/dist/src/parser/parser.d.ts.map +1 -1
  46. package/dist/src/parser/parser.js +30 -7
  47. package/dist/src/parser/parser.js.map +1 -1
  48. package/dist/src/parser/utils.d.ts +10 -1
  49. package/dist/src/parser/utils.d.ts.map +1 -1
  50. package/dist/src/parser/utils.js +23 -0
  51. package/dist/src/parser/utils.js.map +1 -1
  52. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  53. package/dist/src/planner/analysis/constraint-extractor.js +0 -1
  54. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  55. package/dist/src/planner/building/constraint-builder.d.ts +12 -1
  56. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  57. package/dist/src/planner/building/constraint-builder.js +60 -1
  58. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  59. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  60. package/dist/src/planner/building/create-view.js +16 -0
  61. package/dist/src/planner/building/create-view.js.map +1 -1
  62. package/dist/src/planner/building/delete.d.ts.map +1 -1
  63. package/dist/src/planner/building/delete.js +17 -7
  64. package/dist/src/planner/building/delete.js.map +1 -1
  65. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  66. package/dist/src/planner/building/foreign-key-builder.js +24 -15
  67. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  68. package/dist/src/planner/building/insert.d.ts.map +1 -1
  69. package/dist/src/planner/building/insert.js +55 -104
  70. package/dist/src/planner/building/insert.js.map +1 -1
  71. package/dist/src/planner/building/select-aggregates.d.ts +5 -2
  72. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  73. package/dist/src/planner/building/select-aggregates.js +184 -26
  74. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  75. package/dist/src/planner/building/select-modifiers.d.ts +6 -2
  76. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  77. package/dist/src/planner/building/select-modifiers.js +20 -5
  78. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  79. package/dist/src/planner/building/select-ordinal.d.ts +20 -0
  80. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -0
  81. package/dist/src/planner/building/select-ordinal.js +62 -0
  82. package/dist/src/planner/building/select-ordinal.js.map +1 -0
  83. package/dist/src/planner/building/select.d.ts.map +1 -1
  84. package/dist/src/planner/building/select.js +64 -17
  85. package/dist/src/planner/building/select.js.map +1 -1
  86. package/dist/src/planner/building/update.d.ts.map +1 -1
  87. package/dist/src/planner/building/update.js +34 -27
  88. package/dist/src/planner/building/update.js.map +1 -1
  89. package/dist/src/planner/building/with.d.ts.map +1 -1
  90. package/dist/src/planner/building/with.js +25 -2
  91. package/dist/src/planner/building/with.js.map +1 -1
  92. package/dist/src/planner/nodes/constraint-check-node.d.ts +22 -1
  93. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  94. package/dist/src/planner/nodes/constraint-check-node.js +36 -6
  95. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  96. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  97. package/dist/src/planner/nodes/filter.js +6 -2
  98. package/dist/src/planner/nodes/filter.js.map +1 -1
  99. package/dist/src/planner/nodes/recursive-cte-node.d.ts +5 -3
  100. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  101. package/dist/src/planner/nodes/recursive-cte-node.js +24 -8
  102. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  103. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  104. package/dist/src/planner/nodes/returning-node.js +5 -12
  105. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  106. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  107. package/dist/src/planner/rules/access/rule-select-access-path.js +22 -26
  108. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  109. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  110. package/dist/src/planner/rules/join/rule-join-physical-selection.js +2 -2
  111. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  112. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  113. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +7 -3
  114. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  115. package/dist/src/planner/rules/predicate/rule-filter-merge.js.map +1 -1
  116. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  117. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  118. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +161 -9
  119. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  120. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  121. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +32 -2
  122. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  123. package/dist/src/planner/validation/returning-qualifier-validator.d.ts +8 -0
  124. package/dist/src/planner/validation/returning-qualifier-validator.d.ts.map +1 -0
  125. package/dist/src/planner/validation/returning-qualifier-validator.js +63 -0
  126. package/dist/src/planner/validation/returning-qualifier-validator.js.map +1 -0
  127. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  128. package/dist/src/runtime/deferred-constraint-queue.js +3 -0
  129. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  130. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  131. package/dist/src/runtime/emit/alter-table.js +286 -7
  132. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  133. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  134. package/dist/src/runtime/emit/binary.js +12 -7
  135. package/dist/src/runtime/emit/binary.js.map +1 -1
  136. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  137. package/dist/src/runtime/emit/constraint-check.js +125 -62
  138. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  139. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  140. package/dist/src/runtime/emit/create-assertion.js +6 -6
  141. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  142. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  143. package/dist/src/runtime/emit/dml-executor.js +133 -76
  144. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  145. package/dist/src/runtime/emit/pragma.d.ts.map +1 -1
  146. package/dist/src/runtime/emit/pragma.js +3 -4
  147. package/dist/src/runtime/emit/pragma.js.map +1 -1
  148. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  149. package/dist/src/runtime/emit/recursive-cte.js +61 -10
  150. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  151. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  152. package/dist/src/runtime/emit/scalar-function.js +2 -1
  153. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  154. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  155. package/dist/src/runtime/emit/scan.js.map +1 -1
  156. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  157. package/dist/src/runtime/emit/table-valued-function.js +6 -4
  158. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  159. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  160. package/dist/src/runtime/emit/update.js +8 -5
  161. package/dist/src/runtime/emit/update.js.map +1 -1
  162. package/dist/src/runtime/foreign-key-actions.js +2 -2
  163. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  164. package/dist/src/schema/catalog.d.ts +2 -0
  165. package/dist/src/schema/catalog.d.ts.map +1 -1
  166. package/dist/src/schema/catalog.js +18 -0
  167. package/dist/src/schema/catalog.js.map +1 -1
  168. package/dist/src/schema/column.d.ts +7 -0
  169. package/dist/src/schema/column.d.ts.map +1 -1
  170. package/dist/src/schema/column.js.map +1 -1
  171. package/dist/src/schema/function.d.ts +4 -3
  172. package/dist/src/schema/function.d.ts.map +1 -1
  173. package/dist/src/schema/function.js.map +1 -1
  174. package/dist/src/schema/manager.d.ts +39 -3
  175. package/dist/src/schema/manager.d.ts.map +1 -1
  176. package/dist/src/schema/manager.js +219 -20
  177. package/dist/src/schema/manager.js.map +1 -1
  178. package/dist/src/schema/rename-rewriter.d.ts +4 -0
  179. package/dist/src/schema/rename-rewriter.d.ts.map +1 -0
  180. package/dist/src/schema/rename-rewriter.js +506 -0
  181. package/dist/src/schema/rename-rewriter.js.map +1 -0
  182. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  183. package/dist/src/schema/schema-differ.js +41 -4
  184. package/dist/src/schema/schema-differ.js.map +1 -1
  185. package/dist/src/schema/table.d.ts +67 -2
  186. package/dist/src/schema/table.d.ts.map +1 -1
  187. package/dist/src/schema/table.js +144 -0
  188. package/dist/src/schema/table.js.map +1 -1
  189. package/dist/src/util/async-iterator.d.ts +2 -1
  190. package/dist/src/util/async-iterator.d.ts.map +1 -1
  191. package/dist/src/util/async-iterator.js +4 -4
  192. package/dist/src/util/async-iterator.js.map +1 -1
  193. package/dist/src/util/key-serializer.d.ts +3 -0
  194. package/dist/src/util/key-serializer.d.ts.map +1 -1
  195. package/dist/src/util/key-serializer.js +19 -2
  196. package/dist/src/util/key-serializer.js.map +1 -1
  197. package/dist/src/util/patterns.d.ts.map +1 -1
  198. package/dist/src/util/patterns.js +58 -10
  199. package/dist/src/util/patterns.js.map +1 -1
  200. package/dist/src/util/plugin-helper.js +1 -1
  201. package/dist/src/util/plugin-helper.js.map +1 -1
  202. package/dist/src/vtab/best-access-plan.d.ts +7 -0
  203. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  204. package/dist/src/vtab/best-access-plan.js.map +1 -1
  205. package/dist/src/vtab/connection.d.ts +7 -0
  206. package/dist/src/vtab/connection.d.ts.map +1 -1
  207. package/dist/src/vtab/manifest.d.ts +4 -0
  208. package/dist/src/vtab/manifest.d.ts.map +1 -1
  209. package/dist/src/vtab/memory/index.d.ts +8 -0
  210. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  211. package/dist/src/vtab/memory/index.js +11 -0
  212. package/dist/src/vtab/memory/index.js.map +1 -1
  213. package/dist/src/vtab/memory/layer/base.d.ts +8 -1
  214. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  215. package/dist/src/vtab/memory/layer/base.js +36 -2
  216. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  217. package/dist/src/vtab/memory/layer/manager.d.ts +5 -1
  218. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  219. package/dist/src/vtab/memory/layer/manager.js +77 -14
  220. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  221. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  222. package/dist/src/vtab/memory/layer/transaction.js +28 -3
  223. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  224. package/dist/src/vtab/memory/module.d.ts +6 -1
  225. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  226. package/dist/src/vtab/memory/module.js +93 -14
  227. package/dist/src/vtab/memory/module.js.map +1 -1
  228. package/dist/src/vtab/memory/utils/predicate.d.ts +27 -0
  229. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -0
  230. package/dist/src/vtab/memory/utils/predicate.js +182 -0
  231. package/dist/src/vtab/memory/utils/predicate.js.map +1 -0
  232. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { emitPlanNode, emitCallFromPlan } from '../emitters.js';
2
- import { QuereusError, ConstraintError } from '../../common/errors.js';
2
+ import { QuereusError, ConstraintError, FailConflictError, RollbackConflictError } from '../../common/errors.js';
3
3
  import { StatusCode, isConstraintViolation } from '../../common/types.js';
4
4
  import { getVTable, disconnectVTable } from '../utils.js';
5
5
  import { ConflictResolution } from '../../common/constants.js';
@@ -153,6 +153,25 @@ export function emitDmlExecutor(plan, ctx) {
153
153
  const flatRow = [...existingRow, ...updatedRow];
154
154
  return { updatedRow, flatRow };
155
155
  }
156
+ /**
157
+ * Translate a generic ConstraintError into the right OR-clause subclass
158
+ * based on the active statement-level conflict resolution. FAIL and
159
+ * RollbackConflictError pass through unchanged. The iterator-level
160
+ * cleanup uses the subclass to decide commit-vs-rollback semantics.
161
+ */
162
+ function translateConflictError(err, stmtOR) {
163
+ if (!(err instanceof ConstraintError))
164
+ return err;
165
+ if (err instanceof FailConflictError || err instanceof RollbackConflictError)
166
+ return err;
167
+ if (stmtOR === ConflictResolution.FAIL) {
168
+ return new FailConflictError(err.message, err.code);
169
+ }
170
+ if (stmtOR === ConflictResolution.ROLLBACK) {
171
+ return new RollbackConflictError(err.message, err.code);
172
+ }
173
+ return err;
174
+ }
156
175
  // INSERT ----------------------------------------------------
157
176
  // Number of context evaluators (used to split params in runInsert)
158
177
  const numContextEvaluators = contextEvaluatorInstructions.length;
@@ -173,97 +192,133 @@ export function emitDmlExecutor(plan, ctx) {
173
192
  contextRow.push(value);
174
193
  }
175
194
  }
195
+ // OR FAIL needs per-row rollback so a later row's failure doesn't undo prior rows.
196
+ // We open a savepoint, do the row's work, release on success, rollback on error.
197
+ const isFailMode = plan.onConflict === ConflictResolution.FAIL;
198
+ let failSavepointCounter = 0;
176
199
  try {
177
200
  for await (const flatRow of rows) {
178
- const newRow = extractNewRowFromFlat(flatRow, tableSchema.columns.length);
179
- // Build mutation statement if logging is enabled
180
- let mutationStatement;
181
- if (vtab.wantStatements) {
182
- mutationStatement = buildInsertStatement(tableSchema, newRow, contextRow);
201
+ let savepointName;
202
+ if (isFailMode) {
203
+ savepointName = `__or_fail_${failSavepointCounter++}`;
204
+ await ctx.db._createSavepoint(savepointName);
183
205
  }
184
- const args = {
185
- operation: 'insert',
186
- values: newRow,
187
- oldKeyValues: undefined,
188
- onConflict: plan.onConflict ?? ConflictResolution.ABORT,
189
- mutationStatement
190
- };
191
- const result = await vtab.update(args);
192
- // Handle constraint violations
193
- if (isConstraintViolation(result)) {
194
- // Check for UPSERT clause handling
195
- if (result.constraint === 'unique' && runtimeUpsertClauses && result.existingRow) {
196
- const matchingClause = matchUpsertClause(result.existingRow, newRow, runtimeUpsertClauses);
197
- if (matchingClause) {
198
- if (matchingClause.action === 'nothing') {
199
- // DO NOTHING - skip this row silently
200
- continue;
201
- }
202
- // DO UPDATE - execute the update path
203
- const updateResult = await executeUpsertUpdate(ctx, vtab, matchingClause, result.existingRow, newRow, contextRow, upsertEvaluators);
204
- if (updateResult) {
205
- // Track change as UPDATE
206
- const existingKeyValues = pkColumnIndicesInSchema.map(idx => result.existingRow[idx]);
207
- const newKeyValues = pkColumnIndicesInSchema.map(idx => updateResult.updatedRow[idx]);
208
- ctx.db._recordUpdate(`${tableSchema.schemaName}.${tableSchema.name}`, existingKeyValues, newKeyValues);
209
- // Execute FK cascading actions (CASCADE, SET NULL, SET DEFAULT)
210
- await executeForeignKeyActions(ctx.db, tableSchema, 'update', result.existingRow, updateResult.updatedRow);
211
- // Emit auto event for modules without native event support
212
- if (needsAutoEvents) {
213
- const changedColumns = [];
214
- for (let i = 0; i < tableSchema.columns.length; i++) {
215
- if (!sqlValuesEqual(result.existingRow[i], updateResult.updatedRow[i])) {
216
- changedColumns.push(tableSchema.columns[i].name);
217
- }
218
- }
219
- emitAutoDataEvent(ctx, tableSchema, 'update', existingKeyValues, [...result.existingRow], [...updateResult.updatedRow], changedColumns);
220
- }
221
- yield updateResult.flatRow;
222
- }
223
- continue;
206
+ let rowToYield;
207
+ let succeeded = false;
208
+ try {
209
+ rowToYield = await processInsertRow(ctx, vtab, needsAutoEvents, flatRow, contextRow, runtimeUpsertClauses, upsertEvaluators);
210
+ succeeded = true;
211
+ }
212
+ catch (e) {
213
+ if (savepointName) {
214
+ try {
215
+ await ctx.db._rollbackToSavepoint(savepointName);
216
+ }
217
+ catch { /* swallow */ }
218
+ try {
219
+ await ctx.db._releaseSavepoint(savepointName);
224
220
  }
221
+ catch { /* swallow */ }
222
+ savepointName = undefined;
225
223
  }
226
- // No UPSERT clause matched or not a unique constraint - propagate as error
227
- throw new ConstraintError(result.message ?? `${result.constraint} constraint failed`, StatusCode.CONSTRAINT);
224
+ // Translate plain constraint violations to FAIL/ROLLBACK error subclasses
225
+ // so the iterator-level cleanup picks the right finalization branch.
226
+ throw translateConflictError(e, plan.onConflict);
228
227
  }
229
- // Skip if row was not inserted (e.g., IGNORE mode returned ok with no row)
230
- if (!result.row) {
231
- continue;
228
+ if (succeeded && savepointName) {
229
+ await ctx.db._releaseSavepoint(savepointName);
232
230
  }
233
- const tableKey = `${tableSchema.schemaName}.${tableSchema.name}`;
234
- const replacedRow = result.replacedRow;
235
- if (replacedRow) {
236
- // INSERT OR REPLACE replaced an existing row — track as UPDATE
237
- const existingKeyValues = pkColumnIndicesInSchema.map(idx => replacedRow[idx]);
238
- const newKeyValues = pkColumnIndicesInSchema.map(idx => newRow[idx]);
239
- ctx.db._recordUpdate(tableKey, existingKeyValues, newKeyValues);
240
- // Execute FK cascading actions — REPLACE is semantically delete+insert,
241
- // so fire 'delete' actions on the replaced row (CASCADE DELETE, SET NULL, etc.)
242
- await executeForeignKeyActions(ctx.db, tableSchema, 'delete', replacedRow);
231
+ if (rowToYield !== undefined) {
232
+ yield rowToYield;
233
+ }
234
+ }
235
+ }
236
+ finally {
237
+ await disconnectVTable(ctx, vtab);
238
+ }
239
+ }
240
+ /**
241
+ * Performs a single row's INSERT side-effects (vtab.update + bookkeeping +
242
+ * UPSERT handling + REPLACE handling). Returns the row to yield downstream,
243
+ * or undefined if the row should be skipped (IGNORE / DO NOTHING).
244
+ *
245
+ * Throws ConstraintError on violations the executor cannot recover from.
246
+ */
247
+ async function processInsertRow(ctx, vtab, needsAutoEvents, flatRow, contextRow, runtimeUpsertClauses, upsertEvaluators) {
248
+ const newRow = extractNewRowFromFlat(flatRow, tableSchema.columns.length);
249
+ let mutationStatement;
250
+ if (vtab.wantStatements) {
251
+ mutationStatement = buildInsertStatement(tableSchema, newRow, contextRow);
252
+ }
253
+ const args = {
254
+ operation: 'insert',
255
+ values: newRow,
256
+ oldKeyValues: undefined,
257
+ // Pass undefined when there's no statement-level OR clause so the vtab
258
+ // can fall back to per-constraint defaultConflict directives. The memory
259
+ // module treats undefined as ABORT when no constraint default is set.
260
+ onConflict: plan.onConflict,
261
+ mutationStatement
262
+ };
263
+ const result = await vtab.update(args);
264
+ if (isConstraintViolation(result)) {
265
+ if (result.constraint === 'unique' && runtimeUpsertClauses && result.existingRow) {
266
+ const matchingClause = matchUpsertClause(result.existingRow, newRow, runtimeUpsertClauses);
267
+ if (matchingClause) {
268
+ if (matchingClause.action === 'nothing') {
269
+ return undefined;
270
+ }
271
+ const updateResult = await executeUpsertUpdate(ctx, vtab, matchingClause, result.existingRow, newRow, contextRow, upsertEvaluators);
272
+ if (!updateResult)
273
+ return undefined;
274
+ const existingKeyValues = pkColumnIndicesInSchema.map(idx => result.existingRow[idx]);
275
+ const newKeyValues = pkColumnIndicesInSchema.map(idx => updateResult.updatedRow[idx]);
276
+ ctx.db._recordUpdate(`${tableSchema.schemaName}.${tableSchema.name}`, existingKeyValues, newKeyValues);
277
+ await executeForeignKeyActions(ctx.db, tableSchema, 'update', result.existingRow, updateResult.updatedRow);
243
278
  if (needsAutoEvents) {
244
279
  const changedColumns = [];
245
280
  for (let i = 0; i < tableSchema.columns.length; i++) {
246
- if (!sqlValuesEqual(replacedRow[i], newRow[i])) {
281
+ if (!sqlValuesEqual(result.existingRow[i], updateResult.updatedRow[i])) {
247
282
  changedColumns.push(tableSchema.columns[i].name);
248
283
  }
249
284
  }
250
- emitAutoDataEvent(ctx, tableSchema, 'update', newKeyValues, [...replacedRow], [...newRow], changedColumns);
285
+ emitAutoDataEvent(ctx, tableSchema, 'update', existingKeyValues, [...result.existingRow], [...updateResult.updatedRow], changedColumns);
251
286
  }
287
+ return updateResult.flatRow;
252
288
  }
253
- else {
254
- // Fresh insert
255
- const pkValues = tableSchema.primaryKeyDefinition.map(def => newRow[def.index]);
256
- ctx.db._recordInsert(tableKey, pkValues);
257
- if (needsAutoEvents) {
258
- emitAutoDataEvent(ctx, tableSchema, 'insert', pkValues, undefined, [...newRow]);
289
+ }
290
+ // No UPSERT clause matched — propagate; caller wraps for FAIL/ROLLBACK.
291
+ throw new ConstraintError(result.message ?? `${result.constraint} constraint failed`, StatusCode.CONSTRAINT);
292
+ }
293
+ // Skip if row was not inserted (e.g., IGNORE mode at vtab level)
294
+ if (!result.row) {
295
+ return undefined;
296
+ }
297
+ const tableKey = `${tableSchema.schemaName}.${tableSchema.name}`;
298
+ const replacedRow = result.replacedRow;
299
+ if (replacedRow) {
300
+ const existingKeyValues = pkColumnIndicesInSchema.map(idx => replacedRow[idx]);
301
+ const newKeyValues = pkColumnIndicesInSchema.map(idx => newRow[idx]);
302
+ ctx.db._recordUpdate(tableKey, existingKeyValues, newKeyValues);
303
+ await executeForeignKeyActions(ctx.db, tableSchema, 'delete', replacedRow);
304
+ if (needsAutoEvents) {
305
+ const changedColumns = [];
306
+ for (let i = 0; i < tableSchema.columns.length; i++) {
307
+ if (!sqlValuesEqual(replacedRow[i], newRow[i])) {
308
+ changedColumns.push(tableSchema.columns[i].name);
259
309
  }
260
310
  }
261
- yield flatRow; // make OLD/NEW available downstream (e.g. RETURNING)
311
+ emitAutoDataEvent(ctx, tableSchema, 'update', newKeyValues, [...replacedRow], [...newRow], changedColumns);
262
312
  }
263
313
  }
264
- finally {
265
- await disconnectVTable(ctx, vtab);
314
+ else {
315
+ const pkValues = tableSchema.primaryKeyDefinition.map(def => newRow[def.index]);
316
+ ctx.db._recordInsert(tableKey, pkValues);
317
+ if (needsAutoEvents) {
318
+ emitAutoDataEvent(ctx, tableSchema, 'insert', pkValues, undefined, [...newRow]);
319
+ }
266
320
  }
321
+ return flatRow;
267
322
  }
268
323
  // UPDATE ----------------------------------------------------
269
324
  async function* runUpdate(ctx, rows, ...contextEvaluators) {
@@ -300,13 +355,14 @@ export function emitDmlExecutor(plan, ctx) {
300
355
  operation: 'update',
301
356
  values: newRow,
302
357
  oldKeyValues: keyValues,
303
- onConflict: ConflictResolution.ABORT,
358
+ onConflict: plan.onConflict ?? ConflictResolution.ABORT,
304
359
  mutationStatement
305
360
  };
306
361
  const result = await vtab.update(args);
307
362
  // Handle constraint violations
308
363
  if (isConstraintViolation(result)) {
309
- throw new ConstraintError(result.message ?? `${result.constraint} constraint failed`, StatusCode.CONSTRAINT);
364
+ const baseErr = new ConstraintError(result.message ?? `${result.constraint} constraint failed`, StatusCode.CONSTRAINT);
365
+ throw translateConflictError(baseErr, plan.onConflict);
310
366
  }
311
367
  // Skip if row was not updated (row not found returns ok with no row)
312
368
  if (!result.row) {
@@ -370,13 +426,14 @@ export function emitDmlExecutor(plan, ctx) {
370
426
  operation: 'delete',
371
427
  values: undefined,
372
428
  oldKeyValues: keyValues,
373
- onConflict: ConflictResolution.ABORT,
429
+ onConflict: plan.onConflict ?? ConflictResolution.ABORT,
374
430
  mutationStatement
375
431
  };
376
432
  const result = await vtab.update(args);
377
433
  // Handle constraint violations (unlikely for DELETE, but be consistent)
378
434
  if (isConstraintViolation(result)) {
379
- throw new ConstraintError(result.message ?? `${result.constraint} constraint failed`, StatusCode.CONSTRAINT);
435
+ const baseErr = new ConstraintError(result.message ?? `${result.constraint} constraint failed`, StatusCode.CONSTRAINT);
436
+ throw translateConflictError(baseErr, plan.onConflict);
380
437
  }
381
438
  // Skip if row was not deleted (row not found returns ok with no row)
382
439
  if (!result.row) {
@@ -1 +1 @@
1
- {"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,UAAU,EAA2B,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGpH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAmBrE;;GAEG;AACH,SAAS,iBAAiB,CACzB,GAAmB,EACnB,WAAwB,EACxB,IAAoC,EACpC,GAAe,EACf,MAAY,EACZ,MAAY,EACZ,cAAyB;IAEzB,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,CAC1C,WAAW,CAAC,cAAc,IAAI,QAAQ,EACtC;QACC,IAAI;QACJ,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,SAAS,EAAE,WAAW,CAAC,IAAI;QAC3B,GAAG;QACH,MAAM;QACN,MAAM;QACN,cAAc;QACd,MAAM,EAAE,KAAK,EAAE,uCAAuC;KACtD,CACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAqB,EAAE,GAAoB;IAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAE3C,kFAAkF;IAClF,MAAM,uBAAuB,GAAG,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEjG,8CAA8C;IAC9C,MAAM,4BAA4B,GAAkB,EAAE,CAAC;IACvD,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,IAAI,YAAY,CAAC,uCAAuC,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACrD,4BAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,+DAA+D;IAC/D,8EAA8E;IAC9E,MAAM,2BAA2B,GAAkB,EAAE,CAAC;IACtD,IAAI,oBAAuD,CAAC;IAE5D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACtD,MAAM,OAAO,GAAwB;gBACpC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,CAAC,CAAC;gBACd,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;aACnD,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACtD,OAAO,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;gBACtC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxD,MAAM,cAAc,GAAG,2BAA2B,CAAC,MAAM,CAAC;oBAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;oBACrD,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9C,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACzD,CAAC;YACF,CAAC;YAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC3B,OAAO,CAAC,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC;gBACxD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBACtE,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,6EAA6E;IAE7E;;;OAGG;IACH,SAAS,iBAAiB,CACzB,WAAgB,EAChB,WAAgB,EAChB,OAA8B;QAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACnC,+DAA+D;gBAC/D,OAAO,MAAM,CAAC;YACf,CAAC;YAED,4DAA4D;YAC5D,iEAAiE;YACjE,oFAAoF;YACpF,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,KAAK,uBAAuB,CAAC,MAAM;gBACvF,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpF,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO,MAAM,CAAC;YACf,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC9D,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAClD,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAC;YACf,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAKD;;;OAGG;IACH,KAAK,UAAU,mBAAmB,CACjC,IAAoB,EACpB,IAAkB,EAClB,MAA2B,EAC3B,WAAgB,EAChB,WAAgB,EAChB,UAA2B,EAC3B,gBAAmC;QAEnC,mCAAmC;QACnC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACvF,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,oEAAoE;YACpE,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;gBAC/G,OAAO,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAiB,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;oBAC9F,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,0EAA0E;YAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,+EAA+E;QAC/E,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAQ,CAAC;QAE3C,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzF,uDAAuD;YACvD,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;oBACzG,OAAO,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAiB,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;wBAC9F,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAa,CAAC;gBACf,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;QACF,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvE,+BAA+B;QAC/B,MAAM,UAAU,GAAe;YAC9B,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,UAAU;YAClB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,kBAAkB,CAAC,KAAK;YACpC,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACvC,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACjF,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,eAAe,CACxB,YAAY,CAAC,OAAO,IAAI,GAAG,YAAY,CAAC,UAAU,yCAAyC,EAC3F,UAAU,CAAC,UAAU,CACrB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,iEAAiE;QACjE,MAAM,OAAO,GAAQ,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC;QAErD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,8DAA8D;IAC9D,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,MAAM,CAAC;IAGjE,KAAK,SAAS,CAAC,CAAC,SAAS,CACxB,GAAmB,EACnB,IAAwB,EACxB,GAAG,aAA0D;QAE7D,4EAA4E;QAC5E,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAsB,CAAC;QAExF,kFAAkF;QAClF,MAAM,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAElF,+CAA+C;QAC/C,IAAI,UAA2B,CAAC;QAChC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,CAAa,CAAC;gBAC/C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAE1E,iDAAiD;gBACjD,IAAI,iBAAqC,CAAC;gBAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC3E,CAAC;gBAED,MAAM,IAAI,GAAe;oBACxB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,SAAS;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,KAAK;oBACvD,iBAAiB;iBACjB,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC;gBAExC,+BAA+B;gBAC/B,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,mCAAmC;oBACnC,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,oBAAoB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBAClF,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;wBAE3F,IAAI,cAAc,EAAE,CAAC;4BACpB,IAAI,cAAc,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gCACzC,sCAAsC;gCACtC,SAAS;4BACV,CAAC;4BAED,sCAAsC;4BACtC,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC7C,GAAG,EACH,IAAI,EACJ,cAAc,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,EACN,UAAU,EACV,gBAAgB,CAChB,CAAC;4BAEF,IAAI,YAAY,EAAE,CAAC;gCAClB,yBAAyB;gCACzB,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gCACvF,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gCACtF,GAAG,CAAC,EAAE,CAAC,aAAa,CACnB,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAC/C,iBAAiB,EACjB,YAAY,CACZ,CAAC;gCAEF,gEAAgE;gCAChE,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAY,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;gCAE5G,2DAA2D;gCAC3D,IAAI,eAAe,EAAE,CAAC;oCACrB,MAAM,cAAc,GAAa,EAAE,CAAC;oCACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wCACrD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4CACzE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wCAClD,CAAC;oCACF,CAAC;oCACD,iBAAiB,CAChB,GAAG,EACH,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,CAAC,GAAG,MAAM,CAAC,WAAY,CAAC,EACxB,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,EAC5B,cAAc,CACd,CAAC;gCACH,CAAC;gCAED,MAAM,YAAY,CAAC,OAAO,CAAC;4BAC5B,CAAC;4BACD,SAAS;wBACV,CAAC;oBACF,CAAC;oBAED,2EAA2E;oBAC3E,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9G,CAAC;gBAED,2EAA2E;gBAC3E,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjB,SAAS;gBACV,CAAC;gBAED,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACjE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAEvC,IAAI,WAAW,EAAE,CAAC;oBACjB,+DAA+D;oBAC/D,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/E,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACrE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;oBAEhE,wEAAwE;oBACxE,gFAAgF;oBAChF,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAE3E,IAAI,eAAe,EAAE,CAAC;wBACrB,MAAM,cAAc,GAAa,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACrD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gCAChD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BAClD,CAAC;wBACF,CAAC;wBACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;oBAC5G,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,eAAe;oBACf,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChF,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAEzC,IAAI,eAAe,EAAE,CAAC;wBACrB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBACjF,CAAC;gBACF,CAAC;gBAED,MAAM,OAAO,CAAC,CAAC,qDAAqD;YACrE,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,8DAA8D;IAC9D,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,GAAmB,EAAE,IAAwB,EAAE,GAAG,iBAA8D;QACzI,kFAAkF;QAClF,MAAM,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAElF,+CAA+C;QAC/C,IAAI,UAA2B,CAAC;QAChC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,CAAa,CAAC;gBAC/C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1E,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAE1E,mFAAmF;gBACnF,MAAM,SAAS,GAAe,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACpE,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,IAAI,YAAY,CAAC,mBAAmB,QAAQ,qCAAqC,MAAM,CAAC,MAAM,kBAAkB,WAAW,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAClK,CAAC;oBACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBAEH,iDAAiD;gBACjD,IAAI,iBAAqC,CAAC;gBAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBACtF,CAAC;gBAED,MAAM,IAAI,GAAe;oBACxB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,SAAS;oBACvB,UAAU,EAAE,kBAAkB,CAAC,KAAK;oBACpC,iBAAiB;iBACjB,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC;gBAExC,+BAA+B;gBAC/B,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9G,CAAC;gBAED,qEAAqE;gBACrE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjB,SAAS;gBACV,CAAC;gBAED,yDAAyD;gBACzD,MAAM,YAAY,GAAe,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1G,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAE/F,gEAAgE;gBAChE,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE9E,2DAA2D;gBAC3D,IAAI,eAAe,EAAE,CAAC;oBACrB,0BAA0B;oBAC1B,MAAM,cAAc,GAAa,EAAE,CAAC;oBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;4BACrC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClD,CAAC;oBACF,CAAC;oBACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;gBACpG,CAAC;gBAED,MAAM,OAAO,CAAC;YACf,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,8DAA8D;IAC9D,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,GAAmB,EAAE,IAAwB,EAAE,GAAG,iBAA8D;QACzI,kFAAkF;QAClF,MAAM,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAElF,+CAA+C;QAC/C,IAAI,UAA2B,CAAC;QAChC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,CAAa,CAAC;gBAC/C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAE1E,MAAM,SAAS,GAAe,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACpE,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,IAAI,YAAY,CAAC,mBAAmB,QAAQ,qCAAqC,MAAM,CAAC,MAAM,kBAAkB,WAAW,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAClK,CAAC;oBACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBAEH,iDAAiD;gBACjD,IAAI,iBAAqC,CAAC;gBAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC9E,CAAC;gBAED,MAAM,IAAI,GAAe;oBACxB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,SAAS;oBACjB,YAAY,EAAE,SAAS;oBACvB,UAAU,EAAE,kBAAkB,CAAC,KAAK;oBACpC,iBAAiB;iBACjB,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC;gBAExC,wEAAwE;gBACxE,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9G,CAAC;gBAED,qEAAqE;gBACrE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjB,SAAS;gBACV,CAAC;gBAED,gDAAgD;gBAChD,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;gBAEjF,gEAAgE;gBAChE,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAEtE,2DAA2D;gBAC3D,IAAI,eAAe,EAAE,CAAC;oBACrB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACvE,CAAC;gBAED,MAAM,OAAO,CAAC;YACf,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,kDAAkD;IAClD,IAAI,GAAmB,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,QAAQ;YAAE,GAAG,GAAG,SAA2B,CAAC;YAAC,MAAM;QACxD,KAAK,QAAQ;YAAE,GAAG,GAAG,SAA2B,CAAC;YAAC,MAAM;QACxD,KAAK,QAAQ;YAAE,GAAG,GAAG,SAA2B,CAAC;YAAC,MAAM;QACxD;YACC,MAAM,IAAI,YAAY,CAAC,0BAA0B,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzD,OAAO;QACN,MAAM,EAAE,CAAC,iBAAiB,EAAE,GAAG,4BAA4B,EAAE,GAAG,2BAA2B,CAAC;QAC5F,GAAG;QACH,IAAI,EAAE,UAAU,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG;KAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pragma.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/pragma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAQ/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA2CnF"}
1
+ {"version":3,"file":"pragma.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/pragma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAQ/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA8CnF"}
@@ -9,14 +9,13 @@ export function emitPragma(plan, _ctx) {
9
9
  if (value !== undefined) {
10
10
  // Writing mode: set the pragma value
11
11
  log(`PRAGMA ${pragmaName} = ${value}`);
12
- // Try to set as a database option first
13
12
  try {
14
13
  rctx.db.setOption(pragmaName, value);
15
14
  log(`Set option ${pragmaName} = ${value}`);
16
15
  }
17
- catch {
18
- // Treat unknown pragmas as no-ops for now, like SQLite often does
19
- log(`Ignoring unrecognized PRAGMA: ${pragmaName}`);
16
+ catch (error) {
17
+ log(`Unknown PRAGMA write: ${pragmaName}`);
18
+ throw new QuereusError(`Unknown pragma: ${pragmaName}`, StatusCode.ERROR, error instanceof Error ? error : undefined);
20
19
  }
21
20
  }
22
21
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"pragma.js","sourceRoot":"","sources":["../../../../src/runtime/emit/pragma.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEhD,MAAM,UAAU,UAAU,CAAC,IAAoB,EAAE,IAAqB;IACrE,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,EAAE,IAAoB;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,qCAAqC;YACrC,GAAG,CAAC,UAAU,UAAU,MAAM,KAAK,EAAE,CAAC,CAAC;YAEvC,wCAAwC;YACxC,IAAI,CAAC;gBACJ,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACrC,GAAG,CAAC,cAAc,UAAU,MAAM,KAAK,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACR,kEAAkE;gBAClE,GAAG,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,qCAAqC;YACrC,GAAG,CAAC,UAAU,UAAU,YAAY,CAAC,CAAC;YAEtC,IAAI,CAAC;gBACJ,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAa,CAAC;gBAC/D,GAAG,CAAC,eAAe,UAAU,MAAM,YAAY,EAAE,CAAC,CAAC;gBACnD,+DAA+D;gBAC/D,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,oFAAoF;gBACpF,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;gBACrC,MAAM,IAAI,YAAY,CACrB,mBAAmB,UAAU,EAAE,EAC/B,UAAU,CAAC,KAAK,EAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,GAAqB;QAC1B,IAAI,EAAE,UAAU,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACtF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pragma.js","sourceRoot":"","sources":["../../../../src/runtime/emit/pragma.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEhD,MAAM,UAAU,UAAU,CAAC,IAAoB,EAAE,IAAqB;IACrE,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,EAAE,IAAoB;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,qCAAqC;YACrC,GAAG,CAAC,UAAU,UAAU,MAAM,KAAK,EAAE,CAAC,CAAC;YAEvC,IAAI,CAAC;gBACJ,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACrC,GAAG,CAAC,cAAc,UAAU,MAAM,KAAK,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,YAAY,CACrB,mBAAmB,UAAU,EAAE,EAC/B,UAAU,CAAC,KAAK,EAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;YACH,CAAC;QACF,CAAC;aAAM,CAAC;YACP,qCAAqC;YACrC,GAAG,CAAC,UAAU,UAAU,YAAY,CAAC,CAAC;YAEtC,IAAI,CAAC;gBACJ,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAa,CAAC;gBAC/D,GAAG,CAAC,eAAe,UAAU,MAAM,YAAY,EAAE,CAAC,CAAC;gBACnD,+DAA+D;gBAC/D,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,oFAAoF;gBACpF,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;gBACrC,MAAM,IAAI,YAAY,CACrB,mBAAmB,UAAU,EAAE,EAC/B,UAAU,CAAC,KAAK,EAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,GAAqB;QAC1B,IAAI,EAAE,UAAU,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACtF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recursive-cte.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/recursive-cte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAY9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAwF1F"}
1
+ {"version":3,"file":"recursive-cte.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/recursive-cte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAY9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkJ1F"}
@@ -10,29 +10,68 @@ const log = createLogger('runtime:emit:recursive-cte');
10
10
  export function emitRecursiveCTE(plan, ctx) {
11
11
  // Use the plan's table descriptor for table context coordination
12
12
  const { tableDescriptor } = plan;
13
- async function* run(rctx, baseCaseResult, recursiveCaseCallback) {
13
+ const hasLimit = !!plan.limitExpr;
14
+ const hasOffset = !!plan.offsetExpr;
15
+ async function* run(rctx, baseCaseResult, recursiveCaseCallback, ...rest) {
14
16
  log('Starting recursive CTE execution for %s (union=%s, algorithm=semi-naive)', plan.cteName, plan.isUnionAll ? 'ALL' : 'DISTINCT');
17
+ // Resolve LIMIT/OFFSET if present
18
+ let argIndex = 0;
19
+ const limitFn = hasLimit ? rest[argIndex++] : undefined;
20
+ const offsetFn = hasOffset ? rest[argIndex++] : undefined;
21
+ const limitValue = limitFn ? await limitFn(rctx) : null;
22
+ const offsetValue = offsetFn ? await offsetFn(rctx) : null;
23
+ let limit = limitValue !== null ? Number(limitValue) : Infinity;
24
+ let offset = offsetValue !== null ? Number(offsetValue) : 0;
25
+ if (limit < 0 || !Number.isFinite(limit))
26
+ limit = limit < 0 ? 0 : Infinity;
27
+ if (offset < 0 || !Number.isFinite(offset))
28
+ offset = 0;
29
+ // Total rows that need to be generated before limit is satisfied
30
+ const totalNeeded = limit === Infinity ? Infinity : offset + limit;
15
31
  // Get configuration - use plan node limit if specified, otherwise use default tuning
16
32
  const maxIterations = plan.maxRecursion ?? DEFAULT_TUNING.recursiveCte.maxIterations;
17
33
  // Step 1: Initialize deduplication storage (for UNION DISTINCT) and delta tracking
18
34
  const allRowsTree = plan.isUnionAll ? null : new BTree((row) => row, // Identity function - use row as its own key
19
35
  compareRows);
20
36
  let deltaRows = [];
37
+ // Counters for global LIMIT/OFFSET enforcement
38
+ let yieldedCount = 0; // rows actually yielded downstream (post-offset, pre-limit)
39
+ let producedCount = 0; // rows produced by the recursion (pre-offset)
40
+ // Yields a row through the global offset/limit gate. Returns true if the consumer
41
+ // has not yet hit the limit (i.e., recursion should continue).
42
+ const tryYield = function* (row) {
43
+ producedCount++;
44
+ if (producedCount <= offset) {
45
+ return producedCount < totalNeeded;
46
+ }
47
+ if (yieldedCount >= limit)
48
+ return false;
49
+ yield row;
50
+ yieldedCount++;
51
+ return yieldedCount < limit;
52
+ };
21
53
  // Step 2: Execute base case and populate initial delta
22
- // Stream base case results immediately while building delta for next iteration
54
+ let continueRecursion = true;
23
55
  for await (const row of baseCaseResult) {
24
56
  // Yield if we're union all or if the row is new
25
57
  const shouldYield = !allRowsTree || allRowsTree.insert(row).on;
26
58
  if (shouldYield) {
27
- // Yield immediately — context is managed by the downstream cte_ref's slot
28
- yield row;
59
+ const gate = tryYield(row);
60
+ let gateResult = gate.next();
61
+ while (!gateResult.done) {
62
+ yield gateResult.value;
63
+ gateResult = gate.next();
64
+ }
65
+ continueRecursion = gateResult.value;
29
66
  // Add to delta for recursive processing (deep copy to avoid reference issues)
30
67
  deltaRows.push([...row]);
68
+ if (!continueRecursion)
69
+ break;
31
70
  }
32
71
  }
33
72
  // Step 3: Semi-naïve iterative recursive execution
34
73
  let iterationCount = 0;
35
- while (deltaRows.length > 0 && (maxIterations === 0 || iterationCount < maxIterations)) {
74
+ while (continueRecursion && deltaRows.length > 0 && (maxIterations === 0 || iterationCount < maxIterations)) {
36
75
  ++iterationCount;
37
76
  log('Recursive CTE %s iteration %d, delta size: %d', plan.cteName, iterationCount, deltaRows.length);
38
77
  // Create a working table iterable from ONLY the delta (not all accumulated rows)
@@ -46,10 +85,17 @@ export function emitRecursiveCTE(plan, ctx) {
46
85
  // For UNION DISTINCT: check if row is new; for UNION ALL: accept all rows
47
86
  const shouldYield = !allRowsTree || allRowsTree.insert(row).on;
48
87
  if (shouldYield) {
49
- // Stream the row immediately — context is managed by the downstream cte_ref's slot
50
- yield row;
88
+ const gate = tryYield(row);
89
+ let gateResult = gate.next();
90
+ while (!gateResult.done) {
91
+ yield gateResult.value;
92
+ gateResult = gate.next();
93
+ }
94
+ continueRecursion = gateResult.value;
51
95
  // Add to next iteration's delta (deep copy to avoid reference issues)
52
96
  newDeltaRows.push([...row]);
97
+ if (!continueRecursion)
98
+ break;
53
99
  }
54
100
  }
55
101
  }
@@ -60,8 +106,8 @@ export function emitRecursiveCTE(plan, ctx) {
60
106
  deltaRows = newDeltaRows;
61
107
  }
62
108
  // Safety check for infinite recursion — only error if we hit the limit
63
- // while there was still work to do (deltaRows not empty)
64
- if (maxIterations > 0 && iterationCount >= maxIterations && deltaRows.length > 0) {
109
+ // while there was still work to do (deltaRows not empty) AND we didn't already satisfy LIMIT
110
+ if (maxIterations > 0 && iterationCount >= maxIterations && deltaRows.length > 0 && continueRecursion) {
65
111
  quereusError(`Recursive CTE '${plan.cteName}' exceeded maximum iteration limit (${maxIterations})`, StatusCode.ERROR);
66
112
  }
67
113
  log('Recursive CTE %s completed after %d iterations (semi-naive algorithm)', plan.cteName, iterationCount);
@@ -69,8 +115,13 @@ export function emitRecursiveCTE(plan, ctx) {
69
115
  // Emit both base case and recursive case instructions
70
116
  const baseCaseInstruction = emitPlanNode(plan.baseCaseQuery, ctx);
71
117
  const recursiveCaseInstruction = emitCallFromPlan(plan.recursiveCaseQuery, ctx);
118
+ const params = [baseCaseInstruction, recursiveCaseInstruction];
119
+ if (plan.limitExpr)
120
+ params.push(emitCallFromPlan(plan.limitExpr, ctx));
121
+ if (plan.offsetExpr)
122
+ params.push(emitCallFromPlan(plan.offsetExpr, ctx));
72
123
  return {
73
- params: [baseCaseInstruction, recursiveCaseInstruction],
124
+ params,
74
125
  run: run,
75
126
  note: `recursiveCTE(${plan.cteName})`
76
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"recursive-cte.js","sourceRoot":"","sources":["../../../../src/runtime/emit/recursive-cte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recursive-cte.js","sourceRoot":"","sources":["../../../../src/runtime/emit/recursive-cte.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-function.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/scalar-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAI/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAiC7G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAgBtG"}
1
+ {"version":3,"file":"scalar-function.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/scalar-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAI/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkC7G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAgBtG"}
@@ -24,7 +24,8 @@ export function emitScalarFunctionCallDefault(plan, ctx) {
24
24
  return scalarFunction.implementation(...args);
25
25
  }
26
26
  catch (error) {
27
- throw new QuereusError(`Function ${functionName} failed: ${error.message}`, StatusCode.ERROR, error, plan.expression.loc?.start.line, plan.expression.loc?.start.column);
27
+ const message = error instanceof Error ? error.message : String(error);
28
+ throw new QuereusError(`Function ${functionName} failed: ${message}`, StatusCode.ERROR, error instanceof Error ? error : undefined, plan.expression.loc?.start.line, plan.expression.loc?.start.column);
28
29
  }
29
30
  }
30
31
  const operandExprs = plan.operands.map(operand => emitPlanNode(operand, ctx));
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-function.js","sourceRoot":"","sources":["../../../../src/runtime/emit/scalar-function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAmC,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAA4B,EAAE,GAAoB;IAC/F,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAE3C,uCAAuC;IACvC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,YAAY,CAAC,YAAY,YAAY,2BAA2B,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED,SAAS,GAAG,CAAC,KAAqB,EAAE,GAAG,IAAqB;QAC3D,0DAA0D;QAC1D,MAAM,cAAc,GAAG,cAAsC,CAAC;QAE9D,0BAA0B;QAC1B,IAAI,cAAc,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3E,MAAM,IAAI,YAAY,CAAC,YAAY,YAAY,gBAAgB,IAAI,CAAC,MAAM,wBAAwB,cAAc,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/I,CAAC;QAED,IAAI,CAAC;YACJ,OAAO,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,YAAY,YAAY,YAAY,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1K,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAE9E,OAAO,0BAA0B,CAChC,YAAY,EACZ,GAAqB,EACrB,GAAG,EACH,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAClD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA4B,EAAE,GAAoB;IACxF,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAE3C,uCAAuC;IACvC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,YAAY,CAAC,YAAY,YAAY,2BAA2B,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED,yCAAyC;IACzC,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;QAClC,OAAO,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAAC;IAC/E,CAAC;IAED,6BAA6B;IAC7B,OAAO,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"scalar-function.js","sourceRoot":"","sources":["../../../../src/runtime/emit/scalar-function.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAItG,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA6FhH"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAItG,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA6FhH"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-valued-function.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/table-valued-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAM/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAIxF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA0G1G"}
1
+ {"version":3,"file":"table-valued-function.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/table-valued-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAM/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAIxF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA4G1G"}