@quereus/quereus 3.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/src/core/database.d.ts +8 -3
  2. package/dist/src/core/database.d.ts.map +1 -1
  3. package/dist/src/core/database.js +25 -15
  4. package/dist/src/core/database.js.map +1 -1
  5. package/dist/src/planner/analysis/constraint-extractor.d.ts +8 -0
  6. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  7. package/dist/src/planner/analysis/constraint-extractor.js +60 -0
  8. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  9. package/dist/src/planner/framework/context.d.ts +1 -8
  10. package/dist/src/planner/framework/context.d.ts.map +1 -1
  11. package/dist/src/planner/framework/context.js +4 -21
  12. package/dist/src/planner/framework/context.js.map +1 -1
  13. package/dist/src/planner/framework/pass.d.ts +18 -2
  14. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  15. package/dist/src/planner/framework/pass.js +109 -40
  16. package/dist/src/planner/framework/pass.js.map +1 -1
  17. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  18. package/dist/src/runtime/emit/alter-table.js +26 -9
  19. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  20. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  21. package/dist/src/runtime/emit/dml-executor.js +108 -34
  22. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  23. package/dist/src/runtime/foreign-key-actions.d.ts +23 -0
  24. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  25. package/dist/src/runtime/foreign-key-actions.js +138 -0
  26. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  27. package/dist/src/schema/rename-rewriter.d.ts +32 -0
  28. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  29. package/dist/src/schema/rename-rewriter.js +90 -4
  30. package/dist/src/schema/rename-rewriter.js.map +1 -1
  31. package/dist/src/vtab/capabilities.d.ts +19 -0
  32. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  33. package/dist/src/vtab/memory/layer/connection.d.ts +20 -8
  34. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  35. package/dist/src/vtab/memory/layer/connection.js +95 -73
  36. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  37. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  38. package/dist/src/vtab/memory/layer/manager.js +67 -5
  39. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  40. package/dist/src/vtab/memory/layer/transaction.d.ts +0 -8
  41. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  42. package/dist/src/vtab/memory/layer/transaction.js +0 -15
  43. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  44. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  45. package/dist/src/vtab/memory/table.js +13 -2
  46. package/dist/src/vtab/memory/table.js.map +1 -1
  47. package/package.json +3 -3
@@ -8,7 +8,14 @@ import { buildInsertStatement, buildUpdateStatement, buildDeleteStatement } from
8
8
  import { hasNativeEventSupport } from '../../util/event-support.js';
9
9
  import { sqlValuesEqual } from '../../util/comparison.js';
10
10
  import { withAsyncRowContext } from '../context-helpers.js';
11
- import { executeForeignKeyActions, assertNoRestrictedChildrenForParentMutation } from '../foreign-key-actions.js';
11
+ import { executeForeignKeyActions, assertTransitiveRestrictsForParentMutation } from '../foreign-key-actions.js';
12
+ /**
13
+ * Module-scope counter producing unique statement-savepoint names across
14
+ * concurrent emissions. Names must be unique within the TransactionManager's
15
+ * savepoint stack; per-runInsert counters would collide for nested mutations
16
+ * (e.g. FK cascade during the parent insert).
17
+ */
18
+ let stmtSavepointCounter = 0;
12
19
  /**
13
20
  * Emit an automatic data change event for modules without native event support.
14
21
  */
@@ -196,41 +203,106 @@ export function emitDmlExecutor(plan, ctx) {
196
203
  // We open a savepoint, do the row's work, release on success, rollback on error.
197
204
  const isFailMode = plan.onConflict === ConflictResolution.FAIL;
198
205
  let failSavepointCounter = 0;
206
+ // For non-FAIL modes (ABORT default / IGNORE / REPLACE / ROLLBACK) we wrap
207
+ // the whole statement in a savepoint so a mid-statement constraint failure
208
+ // unwinds partial writes from earlier rows. Mirrors the broadcast pattern
209
+ // used in runtime/emit/transaction.ts — we must create/release/rollback
210
+ // on every active connection so per-connection savepoint stacks stay in
211
+ // lockstep with the TransactionManager's stack (otherwise an outer
212
+ // user-level SAVEPOINT could index into a stale placeholder).
213
+ const wrapStatementSavepoint = !isFailMode;
214
+ const stmtSavepointName = wrapStatementSavepoint
215
+ ? `__or_abort_${stmtSavepointCounter++}`
216
+ : undefined;
217
+ if (stmtSavepointName) {
218
+ const depth = ctx.db._createSavepoint(stmtSavepointName);
219
+ for (const connection of ctx.db.getAllConnections()) {
220
+ await connection.createSavepoint(depth);
221
+ }
222
+ }
199
223
  try {
200
- for await (const flatRow of rows) {
201
- let savepointName;
202
- if (isFailMode) {
203
- savepointName = `__or_fail_${failSavepointCounter++}`;
204
- await ctx.db._createSavepoint(savepointName);
205
- }
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);
224
+ try {
225
+ for await (const flatRow of rows) {
226
+ // OR FAIL per-row savepoint. Like the statement-scope wrap above,
227
+ // we broadcast create/release/rollback-to to every active
228
+ // VirtualTableConnection so per-connection savepoint stacks stay
229
+ // in lockstep with TransactionManager's. If a new connection
230
+ // registers mid-row (e.g. via CTE materialization that
231
+ // instantiates a new memory-backed table), Database.registerConnection
232
+ // replays the active depth onto it — without broadcasting our
233
+ // create here, that replay would offset its stack by one and a
234
+ // subsequent user-level ROLLBACK TO would restore the wrong layer.
235
+ let savepointName;
236
+ if (isFailMode) {
237
+ savepointName = `__or_fail_${failSavepointCounter++}`;
238
+ const depth = ctx.db._createSavepoint(savepointName);
239
+ for (const connection of ctx.db.getAllConnections()) {
240
+ await connection.createSavepoint(depth);
241
+ }
242
+ }
243
+ let rowToYield;
244
+ let succeeded = false;
245
+ try {
246
+ rowToYield = await processInsertRow(ctx, vtab, needsAutoEvents, flatRow, contextRow, runtimeUpsertClauses, upsertEvaluators);
247
+ succeeded = true;
248
+ }
249
+ catch (e) {
250
+ if (savepointName) {
251
+ try {
252
+ const depth = ctx.db._rollbackToSavepoint(savepointName);
253
+ for (const connection of ctx.db.getAllConnections()) {
254
+ await connection.rollbackToSavepoint(depth);
255
+ }
256
+ }
257
+ catch { /* swallow */ }
258
+ try {
259
+ const depth = ctx.db._releaseSavepoint(savepointName);
260
+ for (const connection of ctx.db.getAllConnections()) {
261
+ await connection.releaseSavepoint(depth);
262
+ }
263
+ }
264
+ catch { /* swallow */ }
265
+ savepointName = undefined;
216
266
  }
217
- catch { /* swallow */ }
218
- try {
219
- await ctx.db._releaseSavepoint(savepointName);
267
+ // Translate plain constraint violations to FAIL/ROLLBACK error subclasses
268
+ // so the iterator-level cleanup picks the right finalization branch.
269
+ throw translateConflictError(e, plan.onConflict);
270
+ }
271
+ if (succeeded && savepointName) {
272
+ const depth = ctx.db._releaseSavepoint(savepointName);
273
+ for (const connection of ctx.db.getAllConnections()) {
274
+ await connection.releaseSavepoint(depth);
220
275
  }
221
- catch { /* swallow */ }
222
- savepointName = undefined;
223
276
  }
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);
277
+ if (rowToYield !== undefined) {
278
+ yield rowToYield;
279
+ }
227
280
  }
228
- if (succeeded && savepointName) {
229
- await ctx.db._releaseSavepoint(savepointName);
281
+ if (stmtSavepointName) {
282
+ const depth = ctx.db._releaseSavepoint(stmtSavepointName);
283
+ for (const connection of ctx.db.getAllConnections()) {
284
+ await connection.releaseSavepoint(depth);
285
+ }
230
286
  }
231
- if (rowToYield !== undefined) {
232
- yield rowToYield;
287
+ }
288
+ catch (e) {
289
+ if (stmtSavepointName) {
290
+ try {
291
+ const depth = ctx.db._rollbackToSavepoint(stmtSavepointName);
292
+ for (const connection of ctx.db.getAllConnections()) {
293
+ await connection.rollbackToSavepoint(depth);
294
+ }
295
+ }
296
+ catch { /* swallow */ }
297
+ try {
298
+ const depth = ctx.db._releaseSavepoint(stmtSavepointName);
299
+ for (const connection of ctx.db.getAllConnections()) {
300
+ await connection.releaseSavepoint(depth);
301
+ }
302
+ }
303
+ catch { /* swallow */ }
233
304
  }
305
+ throw e;
234
306
  }
235
307
  }
236
308
  finally {
@@ -351,10 +423,12 @@ export function emitDmlExecutor(plan, ctx) {
351
423
  }
352
424
  // Defense-in-depth RESTRICT enforcement: the plan-time `NOT EXISTS`
353
425
  // check is the primary path, but some vtab modules evaluate the
354
- // embedded subquery differently from a plain row scan. Re-run the
355
- // check via a direct `select` so any backend sees a consistent
356
- // enforcement path.
357
- await assertNoRestrictedChildrenForParentMutation(ctx.db, tableSchema, 'update', oldRow, newRow);
426
+ // embedded subquery differently from a plain row scan. Pre-walk
427
+ // the transitive cascade closure so RESTRICTs at any depth fire
428
+ // BEFORE vtab.update — needed for rowid-mode backends (lamina)
429
+ // where post-mutation OLD-value scans dereference through the
430
+ // just-mutated parent and find zero rows.
431
+ await assertTransitiveRestrictsForParentMutation(ctx.db, tableSchema, 'update', oldRow, newRow);
358
432
  const args = {
359
433
  operation: 'update',
360
434
  values: newRow,
@@ -447,7 +521,7 @@ export function emitDmlExecutor(plan, ctx) {
447
521
  }
448
522
  // Defense-in-depth RESTRICT enforcement — see comment on the UPDATE
449
523
  // path above.
450
- await assertNoRestrictedChildrenForParentMutation(ctx.db, tableSchema, 'delete', oldRow);
524
+ await assertTransitiveRestrictsForParentMutation(ctx.db, tableSchema, 'delete', oldRow);
451
525
  const args = {
452
526
  operation: 'delete',
453
527
  values: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
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,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACjH,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,0CAA0C,EAAE,MAAM,2BAA2B,CAAC;AAEjH;;;;;GAKG;AACH,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAmB7B;;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;;;;;OAKG;IACH,SAAS,sBAAsB,CAC9B,GAAY,EACZ,MAAsC;QAEtC,IAAI,CAAC,CAAC,GAAG,YAAY,eAAe,CAAC;YAAE,OAAO,GAAG,CAAC;QAClD,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,YAAY,qBAAqB;YAAE,OAAO,GAAG,CAAC;QAEzF,IAAI,MAAM,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,KAAK,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,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,mFAAmF;QACnF,iFAAiF;QACjF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,kBAAkB,CAAC,IAAI,CAAC;QAC/D,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,2EAA2E;QAC3E,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,sBAAsB,GAAG,CAAC,UAAU,CAAC;QAC3C,MAAM,iBAAiB,GAAG,sBAAsB;YAC/C,CAAC,CAAC,cAAc,oBAAoB,EAAE,EAAE;YACxC,CAAC,CAAC,SAAS,CAAC;QACb,IAAI,iBAAiB,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACzD,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBACrD,MAAM,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,CAAC;gBACJ,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;oBAClC,kEAAkE;oBAClE,0DAA0D;oBAC1D,iEAAiE;oBACjE,6DAA6D;oBAC7D,uDAAuD;oBACvD,uEAAuE;oBACvE,8DAA8D;oBAC9D,+DAA+D;oBAC/D,mEAAmE;oBACnE,IAAI,aAAiC,CAAC;oBACtC,IAAI,UAAU,EAAE,CAAC;wBAChB,aAAa,GAAG,aAAa,oBAAoB,EAAE,EAAE,CAAC;wBACtD,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;wBACrD,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;4BACrD,MAAM,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBACzC,CAAC;oBACF,CAAC;oBAED,IAAI,UAA2B,CAAC;oBAChC,IAAI,SAAS,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC;wBACJ,UAAU,GAAG,MAAM,gBAAgB,CAClC,GAAG,EACH,IAAI,EACJ,eAAe,EACf,OAAO,EACP,UAAU,EACV,oBAAoB,EACpB,gBAAgB,CAChB,CAAC;wBACF,SAAS,GAAG,IAAI,CAAC;oBAClB,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,IAAI,aAAa,EAAE,CAAC;4BACnB,IAAI,CAAC;gCACJ,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;gCACzD,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;oCACrD,MAAM,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gCAC7C,CAAC;4BACF,CAAC;4BAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;4BACzB,IAAI,CAAC;gCACJ,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gCACtD,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;oCACrD,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gCAC1C,CAAC;4BACF,CAAC;4BAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;4BACzB,aAAa,GAAG,SAAS,CAAC;wBAC3B,CAAC;wBACD,0EAA0E;wBAC1E,qEAAqE;wBACrE,MAAM,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAClD,CAAC;oBAED,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;wBAChC,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;wBACtD,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;4BACrD,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;wBAC1C,CAAC;oBACF,CAAC;oBAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,UAAU,CAAC;oBAClB,CAAC;gBACF,CAAC;gBACD,IAAI,iBAAiB,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;oBAC1D,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;wBACrD,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC1C,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,iBAAiB,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACJ,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;wBAC7D,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;4BACrD,MAAM,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBAC7C,CAAC;oBACF,CAAC;oBAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;oBACzB,IAAI,CAAC;wBACJ,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;wBAC1D,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;4BACrD,MAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;wBAC1C,CAAC;oBACF,CAAC;oBAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM,CAAC,CAAC;YACT,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,gBAAgB,CAC9B,GAAmB,EACnB,IAAkB,EAClB,eAAwB,EACxB,OAAY,EACZ,UAA2B,EAC3B,oBAAuD,EACvD,gBAAmC;QAEnC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1E,IAAI,iBAAqC,CAAC;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAe;YACxB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,SAAS;YACvB,uEAAuE;YACvE,yEAAyE;YACzE,sEAAsE;YACtE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,iBAAiB;SACjB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,oBAAoB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAClF,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;gBAC3F,IAAI,cAAc,EAAE,CAAC;oBACpB,IAAI,cAAc,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzC,OAAO,SAAS,CAAC;oBAClB,CAAC;oBACD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC7C,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,CACnF,CAAC;oBACF,IAAI,CAAC,YAAY;wBAAE,OAAO,SAAS,CAAC;oBAEpC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvF,GAAG,CAAC,EAAE,CAAC,aAAa,CACnB,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAC/C,MAAM,CAAC,WAAY,EACnB,YAAY,CAAC,UAAU,EACvB,uBAAuB,CACvB,CAAC;oBACF,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAY,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;oBAE5G,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,MAAM,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BAClD,CAAC;wBACF,CAAC;wBACD,iBAAiB,CAChB,GAAG,EAAE,WAAW,EAAE,QAAQ,EAC1B,iBAAiB,EACjB,CAAC,GAAG,MAAM,CAAC,WAAY,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,EACtD,cAAc,CACd,CAAC;oBACH,CAAC;oBACD,OAAO,YAAY,CAAC,OAAO,CAAC;gBAC7B,CAAC;YACF,CAAC;YACD,wEAAwE;YACxE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9G,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAC7E,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAE3E,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,cAAc,GAAa,EAAE,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;gBACF,CAAC;gBACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;YAC5G,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhE,IAAI,eAAe,EAAE,CAAC;gBACrB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YACjF,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,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,oEAAoE;gBACpE,gEAAgE;gBAChE,gEAAgE;gBAChE,gEAAgE;gBAChE,+DAA+D;gBAC/D,8DAA8D;gBAC9D,0CAA0C;gBAC1C,MAAM,0CAA0C,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEhG,MAAM,IAAI,GAAe;oBACxB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,SAAS;oBACvB,uEAAuE;oBACvE,yEAAyE;oBACzE,sEAAsE;oBACtE,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,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,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;oBACvH,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxD,CAAC;gBAED,qEAAqE;gBACrE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjB,SAAS;gBACV,CAAC;gBAED,kEAAkE;gBAClE,kEAAkE;gBAClE,uEAAuE;gBACvE,sEAAsE;gBACtE,+DAA+D;gBAC/D,oEAAoE;gBACpE,sEAAsE;gBACtE,qCAAqC;gBACrC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxB,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtF,GAAG,CAAC,EAAE,CAAC,aAAa,CACnB,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAC/C,MAAM,CAAC,WAAW,EAClB,uBAAuB,CACvB,CAAC;oBACF,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBAClF,IAAI,eAAe,EAAE,CAAC;wBACrB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC1F,CAAC;gBACF,CAAC;gBAED,kEAAkE;gBAClE,2DAA2D;gBAC3D,GAAG,CAAC,EAAE,CAAC,aAAa,CACnB,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAC/C,MAAM,EACN,MAAM,EACN,uBAAuB,CACvB,CAAC;gBAEF,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,oEAAoE;gBACpE,cAAc;gBACd,MAAM,0CAA0C,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAExF,MAAM,IAAI,GAAe;oBACxB,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,SAAS;oBACjB,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,wEAAwE;gBACxE,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;oBACvH,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxD,CAAC;gBAED,qEAAqE;gBACrE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjB,SAAS;gBACV,CAAC;gBAED,gEAAgE;gBAChE,kDAAkD;gBAClD,GAAG,CAAC,EAAE,CAAC,aAAa,CACnB,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,EAC/C,MAAM,EACN,uBAAuB,CACvB,CAAC;gBAEF,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"}
@@ -12,6 +12,29 @@ import type { Row } from '../common/types.js';
12
12
  * @param visitedTables Set of table names already visited (for cycle detection)
13
13
  */
14
14
  export declare function executeForeignKeyActions(db: Database, parentTable: TableSchema, operation: 'delete' | 'update', oldRow: Row, newRow?: Row, visitedTables?: Set<string>): Promise<void>;
15
+ /**
16
+ * Pre-walk the FK action graph rooted at `parentTable` and assert that no
17
+ * RESTRICT child anywhere in the transitive cascade closure blocks the
18
+ * mutation. Reads happen at call time — the caller is responsible for
19
+ * invoking this BEFORE `vtab.update` runs, so OLD-value scans still resolve
20
+ * for backends with rowid-mode FK columns (lamina) where post-mutation
21
+ * scans would dereference through the new parent value.
22
+ *
23
+ * The walk:
24
+ * 1. Runs the existing direct RESTRICT scan
25
+ * (`assertNoRestrictedChildrenForParentMutation`) for `parentTable`.
26
+ * 2. For each child FK with action `cascade` / `setNull` / `setDefault`
27
+ * that would propagate a column change (UPDATE: parent's referenced
28
+ * column changed; DELETE: always), enumerates the matching child
29
+ * rows and computes the would-be post-cascade row. Recurses with the
30
+ * child as the new "parent" — for UPDATE with `cascade` the recursion
31
+ * carries the new FK column values forward; for DELETE the recursion
32
+ * treats the cascade as another DELETE; SET NULL recurses with the
33
+ * child's projected new row.
34
+ * 3. Cycle detection via a `visited` set keyed by
35
+ * `${schemaName}.${tableName}` (matches the existing walker's key).
36
+ */
37
+ export declare function assertTransitiveRestrictsForParentMutation(db: Database, parentTable: TableSchema, operation: 'delete' | 'update', oldRow: Row, newRow?: Row, visited?: Set<string>): Promise<void>;
15
38
  /**
16
39
  * Backend-agnostic RESTRICT pre-check fired by the runtime DML executor BEFORE
17
40
  * a parent DELETE or UPDATE hits the vtab. Mirrors the plan-time `NOT EXISTS`
@@ -1 +1 @@
1
- {"version":3,"file":"foreign-key-actions.d.ts","sourceRoot":"","sources":["../../../src/runtime/foreign-key-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,oBAAoB,CAAC;AAElF,OAAO,KAAK,EAAE,GAAG,EAAY,MAAM,oBAAoB,CAAC;AASxD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,MAAM,EAAE,GAAG,EACX,MAAM,CAAC,EAAE,GAAG,EACZ,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2CAA2C,CAChE,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,MAAM,EAAE,GAAG,EACX,MAAM,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAmEf"}
1
+ {"version":3,"file":"foreign-key-actions.d.ts","sourceRoot":"","sources":["../../../src/runtime/foreign-key-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,oBAAoB,CAAC;AAElF,OAAO,KAAK,EAAE,GAAG,EAAY,MAAM,oBAAoB,CAAC;AASxD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,MAAM,EAAE,GAAG,EACX,MAAM,CAAC,EAAE,GAAG,EACZ,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,0CAA0C,CAC/D,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,MAAM,EAAE,GAAG,EACX,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,IAAI,CAAC,CAoHf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2CAA2C,CAChE,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,MAAM,EAAE,GAAG,EACX,MAAM,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -57,6 +57,144 @@ export async function executeForeignKeyActions(db, parentTable, operation, oldRo
57
57
  visited.delete(parentKey);
58
58
  }
59
59
  }
60
+ /**
61
+ * Pre-walk the FK action graph rooted at `parentTable` and assert that no
62
+ * RESTRICT child anywhere in the transitive cascade closure blocks the
63
+ * mutation. Reads happen at call time — the caller is responsible for
64
+ * invoking this BEFORE `vtab.update` runs, so OLD-value scans still resolve
65
+ * for backends with rowid-mode FK columns (lamina) where post-mutation
66
+ * scans would dereference through the new parent value.
67
+ *
68
+ * The walk:
69
+ * 1. Runs the existing direct RESTRICT scan
70
+ * (`assertNoRestrictedChildrenForParentMutation`) for `parentTable`.
71
+ * 2. For each child FK with action `cascade` / `setNull` / `setDefault`
72
+ * that would propagate a column change (UPDATE: parent's referenced
73
+ * column changed; DELETE: always), enumerates the matching child
74
+ * rows and computes the would-be post-cascade row. Recurses with the
75
+ * child as the new "parent" — for UPDATE with `cascade` the recursion
76
+ * carries the new FK column values forward; for DELETE the recursion
77
+ * treats the cascade as another DELETE; SET NULL recurses with the
78
+ * child's projected new row.
79
+ * 3. Cycle detection via a `visited` set keyed by
80
+ * `${schemaName}.${tableName}` (matches the existing walker's key).
81
+ */
82
+ export async function assertTransitiveRestrictsForParentMutation(db, parentTable, operation, oldRow, newRow, visited) {
83
+ log('TRANSITIVE entry: parent=%s op=%s fk-pragma=%o', parentTable.name, operation, db.options.getBooleanOption('foreign_keys'));
84
+ if (!db.options.getBooleanOption('foreign_keys'))
85
+ return;
86
+ const visitedSet = visited ?? new Set();
87
+ const parentKey = `${parentTable.schemaName}.${parentTable.name}`.toLowerCase();
88
+ if (visitedSet.has(parentKey))
89
+ return;
90
+ visitedSet.add(parentKey);
91
+ try {
92
+ // Step 1: direct RESTRICT scan for this parent.
93
+ log('TRANSITIVE step1: parent=%s op=%s', parentTable.name, operation);
94
+ await assertNoRestrictedChildrenForParentMutation(db, parentTable, operation, oldRow, newRow);
95
+ // Step 2: recurse through cascading children that would propagate a
96
+ // referenced-column change. For each FK whose action would rewrite or
97
+ // delete child rows, scan the matching children NOW (pre-mutation, so
98
+ // the parent's OLD values still resolve), compute the projected child
99
+ // row, and recurse with that child as the new "parent".
100
+ const parentSchemaLower = parentTable.schemaName.toLowerCase();
101
+ const parentTableLower = parentTable.name.toLowerCase();
102
+ for (const schema of db.schemaManager._getAllSchemas()) {
103
+ for (const childTable of schema.getAllTables()) {
104
+ if (!childTable.foreignKeys)
105
+ continue;
106
+ for (const fk of childTable.foreignKeys) {
107
+ if (fk.referencedTable.toLowerCase() !== parentTableLower)
108
+ continue;
109
+ const targetSchema = fk.referencedSchema ?? childTable.schemaName;
110
+ if (targetSchema.toLowerCase() !== parentSchemaLower)
111
+ continue;
112
+ const action = operation === 'delete' ? fk.onDelete : fk.onUpdate;
113
+ if (action !== 'cascade' && action !== 'setNull' && action !== 'setDefault')
114
+ continue;
115
+ const parentColIndices = resolveReferencedColumns(fk, parentTable);
116
+ if (parentColIndices.length !== fk.columns.length)
117
+ continue;
118
+ // MATCH SIMPLE: NULL parent values cannot be referenced.
119
+ const oldParentValues = parentColIndices.map(idx => oldRow[idx]);
120
+ if (oldParentValues.some(v => v === null || v === undefined))
121
+ continue;
122
+ // UPDATE-only short-circuit: skip if no referenced parent column changed.
123
+ let newParentValues;
124
+ if (operation === 'update' && newRow !== undefined) {
125
+ let anyChanged = false;
126
+ for (const idx of parentColIndices) {
127
+ if (!sqlValuesEqual(oldRow[idx], newRow[idx])) {
128
+ anyChanged = true;
129
+ break;
130
+ }
131
+ }
132
+ if (!anyChanged)
133
+ continue;
134
+ newParentValues = parentColIndices.map(idx => newRow[idx]);
135
+ }
136
+ // Scan child rows that match the OLD parent values.
137
+ const childColQuoted = fk.columns.map(idx => quoteIdentifier(childTable.columns[idx].name));
138
+ const whereClause = childColQuoted.map(c => `${c} = ?`).join(' AND ');
139
+ const schemaPrefix = childTable.schemaName.toLowerCase() !== 'main'
140
+ ? `${quoteIdentifier(childTable.schemaName)}.`
141
+ : '';
142
+ const sql = `select * from ${schemaPrefix}${quoteIdentifier(childTable.name)} where ${whereClause}`;
143
+ log('TRANSITIVE pre-walk: %s with params %o', sql, oldParentValues);
144
+ const stmt = db.prepare(sql);
145
+ try {
146
+ stmt.bindAll(oldParentValues);
147
+ for await (const childOldRow of stmt._iterateRowsRaw()) {
148
+ let childNewRow;
149
+ let childOp;
150
+ if (action === 'cascade' && operation === 'delete') {
151
+ childOp = 'delete';
152
+ childNewRow = undefined;
153
+ }
154
+ else if (action === 'cascade' && operation === 'update' && newParentValues) {
155
+ childOp = 'update';
156
+ const next = [...childOldRow];
157
+ for (let i = 0; i < fk.columns.length; i++) {
158
+ next[fk.columns[i]] = newParentValues[i];
159
+ }
160
+ childNewRow = next;
161
+ }
162
+ else if (action === 'setNull') {
163
+ childOp = 'update';
164
+ const next = [...childOldRow];
165
+ for (let i = 0; i < fk.columns.length; i++) {
166
+ next[fk.columns[i]] = null;
167
+ }
168
+ childNewRow = next;
169
+ }
170
+ else if (action === 'setDefault') {
171
+ // SET DEFAULT recursion: pass the child OLD row as both
172
+ // old and new. The recursion's column-change short-circuit
173
+ // will treat this as "no FK column moved" and the per-target
174
+ // cascade SQL (executeSingleFKAction) still fires its own
175
+ // RESTRICT enforcement for non-rowid-chained backends. This
176
+ // matches the coverage gap SET DEFAULT already has in
177
+ // rowid-chained backends — no regression beyond status quo.
178
+ childOp = 'update';
179
+ childNewRow = childOldRow;
180
+ }
181
+ else {
182
+ continue;
183
+ }
184
+ await assertTransitiveRestrictsForParentMutation(db, childTable, childOp, childOldRow, childNewRow, visitedSet);
185
+ }
186
+ }
187
+ finally {
188
+ await stmt.finalize();
189
+ }
190
+ }
191
+ }
192
+ }
193
+ }
194
+ finally {
195
+ visitedSet.delete(parentKey);
196
+ }
197
+ }
60
198
  /**
61
199
  * Backend-agnostic RESTRICT pre-check fired by the runtime DML executor BEFORE
62
200
  * a parent DELETE or UPDATE hits the vtab. Mirrors the plan-time `NOT EXISTS`
@@ -1 +1 @@
1
- {"version":3,"file":"foreign-key-actions.js","sourceRoot":"","sources":["../../../src/runtime/foreign-key-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foreign-key-actions.js","sourceRoot":"","sources":["../../../src/runtime/foreign-key-actions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,36 @@
1
1
  import type * as AST from '../parser/ast.js';
2
+ /**
3
+ * Returns whether the named source table has a column matching the renamed
4
+ * column's old name. Implementation looks up the table in the catalog;
5
+ * `schemaName` is the lowercase schema name (already resolved to the
6
+ * default schema when the AST qualifier was undefined). Used by the scope
7
+ * walk to decide whether an inner FROM frame captures an unqualified column
8
+ * ref before the walk reaches an outer binding to the renamed table.
9
+ */
10
+ export type ResolveColumnInSource = (schemaName: string, tableName: string, columnName: string) => boolean;
2
11
  export declare function renameTableInAst(node: AST.AstNode | undefined, oldName: string, newName: string, defaultSchemaName: string): boolean;
3
12
  export declare function renameColumnInAst(node: AST.AstNode | undefined, tableName: string, oldColName: string, newColName: string, defaultSchemaName: string): boolean;
13
+ /**
14
+ * Rewrite a column reference inside a CHECK expression. Unlike
15
+ * `renameColumnInAst`, this entry point seeds the scope stack with an
16
+ * implicit unaliased binding to `tableName` so top-level unqualified
17
+ * `ColumnExpr` nodes resolve to the owning table. CHECK expressions
18
+ * cannot reference other tables at top level, so the implicit binding
19
+ * is safe there.
20
+ *
21
+ * When `resolveColumnInSource` is supplied, the scope walk consults it at
22
+ * each inner FROM frame: if any real-table source in that frame exposes
23
+ * `oldColName`, the unqualified ref binds inside the subquery and the
24
+ * walk stops before reaching the seed. This stops the rewriter from
25
+ * false-positively rewriting an inner unqualified ref that legitimately
26
+ * binds to a like-named column on the subquery's FROM (e.g.
27
+ * `check ((select min(v) from u) > 0)` when `u` also has a `v` column).
28
+ *
29
+ * Limitation: aliased subquery / function-source / CTE-projection inner
30
+ * sources are not asked (the rewriter would need recursive column-set
31
+ * inference on their bodies). Same latent issue exists in
32
+ * `renameColumnInAst` for non-CHECK paths — file a follow-up if it
33
+ * surfaces; the callback infrastructure is already in place.
34
+ */
35
+ export declare function renameColumnInCheckExpression(expr: AST.AstNode | undefined, tableName: string, oldColName: string, newColName: string, defaultSchemaName: string, resolveColumnInSource?: ResolveColumnInSource): boolean;
4
36
  //# sourceMappingURL=rename-rewriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rename-rewriter.d.ts","sourceRoot":"","sources":["../../../src/schema/rename-rewriter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AA0C7C,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAKT;AAmMD,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAYT"}
1
+ {"version":3,"file":"rename-rewriter.d.ts","sourceRoot":"","sources":["../../../src/schema/rename-rewriter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAwC7C;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACd,OAAO,CAAC;AAcb,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAKT;AAmMD,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAYT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAC5C,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,qBAAqB,CAAC,EAAE,qBAAqB,GAC3C,OAAO,CAoBT"}