@quereus/quereus 4.19.4 → 4.20.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 (116) hide show
  1. package/README.md +257 -257
  2. package/dist/src/common/errors.d.ts +10 -0
  3. package/dist/src/common/errors.d.ts.map +1 -1
  4. package/dist/src/common/errors.js +14 -0
  5. package/dist/src/common/errors.js.map +1 -1
  6. package/dist/src/common/types.d.ts +12 -0
  7. package/dist/src/common/types.d.ts.map +1 -1
  8. package/dist/src/common/types.js.map +1 -1
  9. package/dist/src/core/database-events.d.ts.map +1 -1
  10. package/dist/src/core/database-events.js +12 -9
  11. package/dist/src/core/database-events.js.map +1 -1
  12. package/dist/src/core/database-transaction.d.ts.map +1 -1
  13. package/dist/src/core/database-transaction.js +28 -19
  14. package/dist/src/core/database-transaction.js.map +1 -1
  15. package/dist/src/core/database.d.ts +58 -6
  16. package/dist/src/core/database.d.ts.map +1 -1
  17. package/dist/src/core/database.js +185 -54
  18. package/dist/src/core/database.js.map +1 -1
  19. package/dist/src/core/param.d.ts +46 -1
  20. package/dist/src/core/param.d.ts.map +1 -1
  21. package/dist/src/core/param.js +87 -7
  22. package/dist/src/core/param.js.map +1 -1
  23. package/dist/src/core/statement.d.ts +66 -1
  24. package/dist/src/core/statement.d.ts.map +1 -1
  25. package/dist/src/core/statement.js +156 -91
  26. package/dist/src/core/statement.js.map +1 -1
  27. package/dist/src/index.d.ts +3 -3
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.js +2 -2
  30. package/dist/src/index.js.map +1 -1
  31. package/dist/src/parser/lexer.d.ts.map +1 -1
  32. package/dist/src/parser/lexer.js +9 -3
  33. package/dist/src/parser/lexer.js.map +1 -1
  34. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  35. package/dist/src/planner/analysis/change-scope.js +7 -20
  36. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  37. package/dist/src/planner/analysis/check-extraction.d.ts +62 -0
  38. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  39. package/dist/src/planner/analysis/check-extraction.js +19 -5
  40. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  41. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  42. package/dist/src/planner/analysis/constraint-extractor.js +7 -0
  43. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  44. package/dist/src/planner/analysis/scalar-param-usage.d.ts +6 -3
  45. package/dist/src/planner/analysis/scalar-param-usage.d.ts.map +1 -1
  46. package/dist/src/planner/analysis/scalar-param-usage.js +32 -4
  47. package/dist/src/planner/analysis/scalar-param-usage.js.map +1 -1
  48. package/dist/src/planner/building/coercion.js +1 -1
  49. package/dist/src/planner/building/coercion.js.map +1 -1
  50. package/dist/src/planner/building/schema-authored-context.d.ts +7 -7
  51. package/dist/src/planner/building/schema-authored-context.js +7 -7
  52. package/dist/src/planner/nodes/scalar.d.ts +19 -1
  53. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  54. package/dist/src/planner/nodes/scalar.js +13 -2
  55. package/dist/src/planner/nodes/scalar.js.map +1 -1
  56. package/dist/src/planner/nodes/set-operation-node.js +4 -0
  57. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  58. package/dist/src/runtime/emit/add-constraint.js +44 -1
  59. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  60. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  61. package/dist/src/runtime/emit/alter-table.js +20 -32
  62. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  63. package/dist/src/runtime/emit/ddl-event-scope.d.ts +20 -13
  64. package/dist/src/runtime/emit/ddl-event-scope.d.ts.map +1 -1
  65. package/dist/src/runtime/emit/ddl-event-scope.js +20 -13
  66. package/dist/src/runtime/emit/ddl-event-scope.js.map +1 -1
  67. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  68. package/dist/src/runtime/emit/materialized-view-helpers.js +9 -4
  69. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  70. package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
  71. package/dist/src/runtime/emit/parameter.js +13 -8
  72. package/dist/src/runtime/emit/parameter.js.map +1 -1
  73. package/dist/src/runtime/emit/schema-declarative.d.ts +17 -6
  74. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  75. package/dist/src/runtime/emit/schema-declarative.js +169 -31
  76. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  77. package/dist/src/schema/catalog-rendering.d.ts +26 -0
  78. package/dist/src/schema/catalog-rendering.d.ts.map +1 -1
  79. package/dist/src/schema/catalog-rendering.js +41 -4
  80. package/dist/src/schema/catalog-rendering.js.map +1 -1
  81. package/dist/src/schema/catalog.d.ts +23 -0
  82. package/dist/src/schema/catalog.d.ts.map +1 -1
  83. package/dist/src/schema/catalog.js +6 -4
  84. package/dist/src/schema/catalog.js.map +1 -1
  85. package/dist/src/schema/constraint-builder.d.ts +67 -11
  86. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  87. package/dist/src/schema/constraint-builder.js +115 -12
  88. package/dist/src/schema/constraint-builder.js.map +1 -1
  89. package/dist/src/schema/ddl-generator.d.ts +21 -0
  90. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  91. package/dist/src/schema/ddl-generator.js +7 -1
  92. package/dist/src/schema/ddl-generator.js.map +1 -1
  93. package/dist/src/schema/rename/self-qualifier-strip.d.ts +27 -0
  94. package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -1
  95. package/dist/src/schema/rename/self-qualifier-strip.js +73 -0
  96. package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -1
  97. package/dist/src/schema/rename-rewriter.d.ts +5 -5
  98. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  99. package/dist/src/schema/rename-rewriter.js +5 -5
  100. package/dist/src/schema/rename-rewriter.js.map +1 -1
  101. package/dist/src/schema/schema-differ.d.ts +41 -1
  102. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  103. package/dist/src/schema/schema-differ.js +529 -36
  104. package/dist/src/schema/schema-differ.js.map +1 -1
  105. package/dist/src/types/temporal-ops.d.ts.map +1 -1
  106. package/dist/src/types/temporal-ops.js +16 -10
  107. package/dist/src/types/temporal-ops.js.map +1 -1
  108. package/dist/src/vtab/capabilities.d.ts +5 -2
  109. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  110. package/dist/src/vtab/memory/layer/manager.d.ts +15 -11
  111. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  112. package/dist/src/vtab/memory/layer/manager.js +15 -11
  113. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  114. package/dist/src/vtab/module.d.ts +16 -0
  115. package/dist/src/vtab/module.d.ts.map +1 -1
  116. package/package.json +3 -3
@@ -3,7 +3,7 @@ import { createLogger } from '../../common/logger.js';
3
3
  import { StatusCode } from '../../common/types.js';
4
4
  import { QuereusError } from '../../common/errors.js';
5
5
  import { collectSchemaCatalog } from '../../schema/catalog.js';
6
- import { renderCatalogForComparison } from '../../schema/catalog-rendering.js';
6
+ import { renderCatalogForComparison, renderCatalogForRestoreCheck } from '../../schema/catalog-rendering.js';
7
7
  import { computeSchemaDiff, generateMigrationDDL, generateMigrationPlan } from '../../schema/schema-differ.js';
8
8
  import { computeShortSchemaHash } from '../../schema/schema-hasher.js';
9
9
  import { deployLogicalSchema } from '../../schema/lens-compiler.js';
@@ -166,18 +166,33 @@ export function emitDiffSchema(plan, _ctx) {
166
166
  };
167
167
  }
168
168
  /**
169
- * Deliberately NOT wrapped in `withStatementScopedSchemaEvents` (see ddl-event-scope.ts),
170
- * which every other DDL emitter opens around its `run()` body. A failure on the Nth generated
171
- * migration statement leaves statements 1..N-1 *applied* — there is no catalog rollback, and
172
- * inside an explicit transaction the user may still commit — so those really happened and must
173
- * stay announced. Each generated sub-statement runs its own emitter and so carries its own
174
- * scope: the ones that landed keep their events, the one that failed retracts its own.
169
+ * A migrating apply is all-or-nothing, with one stated residual. The migration loop keeps an
170
+ * undo journal (each step's `MigrationStep.undo`, rendered by the differ from the pre-apply
171
+ * catalog); when a step fails the journal runs in reverse, the catalog is re-collected and
172
+ * checked against its pre-apply rendering, and the step's own error is rethrown. The residual
173
+ * is a step that destroyed data (`DROP TABLE`, `DROP COLUMN`, `ALTER COLUMN … SET DATA TYPE`,
174
+ * marked `irreversible` by the differ): once one has run the apply cannot be taken back, and
175
+ * a later failure reports the schema as partially migrated. See `runBatchedMigrationLoop` and
176
+ * docs/schema.md § Failure and restoration.
177
+ *
178
+ * Schema events are retracted CONDITIONALLY, which is why this emitter cannot use the plain
179
+ * `withStatementScopedSchemaEvents` helper (see ddl-event-scope.ts) every other DDL emitter
180
+ * opens around its `run()`: a restored failure discards everything batched since the
181
+ * watermark taken below (nothing happened, so nothing is announced), while an unrestorable
182
+ * one keeps its events — the steps that landed really happened, the user may still commit an
183
+ * explicit transaction, and a replicating peer must hear about them. Each generated
184
+ * sub-statement runs its own emitter and so carries its own inner scope: a landed statement
185
+ * keeps its event until the outer verdict, the failing one retracts its own.
175
186
  */
176
187
  export function emitApplySchema(plan, _ctx) {
177
188
  const applyStmt = plan.statementAst;
178
189
  const run = async (rctx) => {
179
190
  const schemaName = applyStmt.schemaName || 'main';
180
191
  log('APPLY SCHEMA %s', schemaName);
192
+ // Mark for the conditional retraction described on the function comment. Taken
193
+ // before anything can batch a schema event; a lifetime-monotonic stamp, so it is
194
+ // valid whether or not a transaction (and so batching) is open yet.
195
+ const eventWatermark = rctx.db._getEventEmitter().beginSchemaEventScope();
181
196
  // Get declared schema
182
197
  const declaredSchema = rctx.db.declaredSchemaManager.getDeclaredSchema(schemaName);
183
198
  if (!declaredSchema) {
@@ -261,12 +276,17 @@ export function emitApplySchema(plan, _ctx) {
261
276
  }
262
277
  // Build the migration plan. Same ordering (and same DDL text) `diff schema`
263
278
  // previews; the create steps additionally carry the statement they were
264
- // rendered from, so the loop below skips re-parsing them.
265
- const migrationStatements = generateMigrationPlan(diff, schemaName);
279
+ // rendered from, so the loop below skips re-parsing them, and every step
280
+ // carries its undo (rendered from `actualCatalog`, the pre-apply state).
281
+ const migrationStatements = generateMigrationPlan(diff, schemaName, actualCatalog);
266
282
  // Run the migration loop. When there are no statements we keep the
267
- // idempotency fast-path: no module batch hooks fire.
283
+ // idempotency fast-path: no module batch hooks fire. The restore fingerprint
284
+ // is rendered only when there is something to restore from.
268
285
  if (migrationStatements.length > 0) {
269
- await runBatchedMigrationLoop(rctx.db, schemaName, migrationStatements);
286
+ await runBatchedMigrationLoop(rctx.db, schemaName, migrationStatements, {
287
+ preApplyFingerprint: renderCatalogForRestoreCheck(actualCatalog),
288
+ eventWatermark,
289
+ });
270
290
  }
271
291
  // A migrating apply records nothing: `catalogRendering` describes the
272
292
  // PRE-migration catalog, and re-collecting post-migration would assert an
@@ -353,10 +373,14 @@ export function emitApplySchema(plan, _ctx) {
353
373
  // this run, before any DDL could have executed) still describes the live
354
374
  // catalog, and a real diff has confirmed catalog ≡ declaration.
355
375
  //
356
- // NOTE: catalog DDL is not rolled back today (see the comment above
357
- // `emitApplySchema`), so a transaction that unwinds after an apply cannot
358
- // leave this snapshot describing a state the catalog is not in. If catalog DDL
359
- // ever becomes rollback-able, the snapshot must be invalidated on rollback.
376
+ // A failed apply records nothing (it throws before reaching here), and a
377
+ // snapshot an EARLIER apply recorded stays valid across a later restored
378
+ // failure precisely because the restore returns the catalog to the state that
379
+ // snapshot describes. Catalog DDL is still not undone by a transaction
380
+ // rollback — the restore is undo DDL, not rollback — so a rolled-back
381
+ // transaction cannot leave this snapshot describing a state the catalog is not
382
+ // in either. If catalog DDL ever becomes rollback-able, the snapshot must be
383
+ // invalidated on rollback.
360
384
  if (verifiedNoOp && declaredRendering !== undefined) {
361
385
  rctx.db.declaredSchemaManager.setAppliedSnapshot(schemaName, {
362
386
  declaredRendering,
@@ -403,6 +427,26 @@ export function emitExplainSchema(plan, _ctx) {
403
427
  * APPLY SCHEMA into a single substrate commit. Modules without the hook
404
428
  * pay nothing — they're filtered out before the loop.
405
429
  *
430
+ * ## Failure: unwind, verify, then end the batch
431
+ *
432
+ * The loop keeps an undo journal (see `runStepsWithUndoJournal`). When a step fails the
433
+ * journal runs in reverse and the catalog is checked against the pre-apply fingerprint —
434
+ * all still INSIDE the module batch, and before `endSchemaBatch` fires with the original
435
+ * loop error. That ordering is what lets every module tier land in the same place: a
436
+ * module that discards its batch on error rewinds its substrate to the pre-apply state
437
+ * (the undo DDL it also received is discarded with everything else), and a module with no
438
+ * batch hooks has had both the forward and the undo DDL applied for real. Either way the
439
+ * substrate matches the restored catalog. The undo is ordinary DDL, so this needs nothing
440
+ * from module authors and works identically on every `ddlTransactionality` tier.
441
+ *
442
+ * What is thrown depends on the verdict. A verified restore rethrows the step's own error
443
+ * unchanged and retracts every schema event batched since the apply's watermark (nothing
444
+ * happened). Otherwise the error is wrapped: the original message first, then why the
445
+ * schema is partially migrated, with the original as `cause` — and the events stay, because
446
+ * the steps that landed really happened.
447
+ *
448
+ * ## Executing a step
449
+ *
406
450
  * A step that carries its AST is executed on a spine clone of it — the differ rendered
407
451
  * `step.sql` FROM that statement, so re-lexing it would rebuild the same tree, but the
408
452
  * plan's own node must not escape into the catalog (see below). Template-built steps
@@ -436,25 +480,17 @@ export function emitExplainSchema(plan, _ctx) {
436
480
  * ownership into the emitters (each copies only what it stores) and drop this blunt
437
481
  * clone — see `tickets/backlog/debt-catalog-aliases-caller-ast`.
438
482
  */
439
- async function runBatchedMigrationLoop(db, schemaName, migrationStatements) {
483
+ async function runBatchedMigrationLoop(db, schemaName, migrationStatements, restore) {
440
484
  const startedModules = await beginSchemaBatchAll(db, schemaName);
485
+ let failure;
486
+ // `runStepsWithUndoJournal` reports every step and undo failure as data, so `loopError`
487
+ // is normally `failure?.error`. The catch is for a throw it did not anticipate: the
488
+ // batch must still end with SOME error, or a module would commit an overlay whose
489
+ // migration is propagating as failed.
441
490
  let loopError;
442
491
  try {
443
- for (const step of migrationStatements) {
444
- const ddl = step.sql;
445
- log('Executing migration DDL: %s', ddl);
446
- try {
447
- if (step.ast)
448
- await db._execAstWithinTransaction([spineCloneAst(step.ast)]);
449
- else
450
- await db._execWithinTransaction(ddl);
451
- }
452
- catch (e) {
453
- log('Migration failed for DDL: %s', ddl);
454
- const errorMessage = e instanceof Error ? e.message : String(e);
455
- throw new QuereusError(`Failed to execute DDL: ${ddl}\nError: ${errorMessage}`, StatusCode.ERROR, e instanceof Error ? e : undefined);
456
- }
457
- }
492
+ failure = await runStepsWithUndoJournal(db, schemaName, migrationStatements, restore.preApplyFingerprint);
493
+ loopError = failure?.error;
458
494
  }
459
495
  catch (e) {
460
496
  loopError = e;
@@ -463,6 +499,108 @@ async function runBatchedMigrationLoop(db, schemaName, migrationStatements) {
463
499
  finally {
464
500
  await endSchemaBatchAll(startedModules, db, schemaName, loopError);
465
501
  }
502
+ if (!failure)
503
+ return;
504
+ if (failure.notRestored === undefined) {
505
+ db._getEventEmitter().discardSchemaEventsSince(restore.eventWatermark);
506
+ throw failure.error;
507
+ }
508
+ throw new QuereusError(`${failure.error.message}\n${failure.notRestored}`, StatusCode.ERROR, failure.error);
509
+ }
510
+ /**
511
+ * Runs the plan's steps in order under an undo journal. Returns undefined when every step
512
+ * ran; otherwise the failure, with the catalog already unwound (or the reason it could not
513
+ * be). Never throws: the caller must still end the module batch with the original error.
514
+ *
515
+ * The journal holds the `undo` of every step that succeeded. A step the differ marked
516
+ * `irreversible` poisons the journal BEFORE it runs — the step may apply partially before it
517
+ * throws, so its own failure must not read as restorable either — and journaling stops there.
518
+ */
519
+ async function runStepsWithUndoJournal(db, schemaName, migrationStatements, preApplyFingerprint) {
520
+ const journal = [];
521
+ let poisonedBy;
522
+ for (const step of migrationStatements) {
523
+ if (poisonedBy === undefined && step.undo === undefined)
524
+ poisonedBy = step;
525
+ const error = await executeMigrationStep(db, step);
526
+ if (error) {
527
+ if (poisonedBy !== undefined)
528
+ return { error, notRestored: describeIrreversible(poisonedBy, step) };
529
+ return { error, notRestored: await unwindJournal(db, schemaName, journal, preApplyFingerprint) };
530
+ }
531
+ if (poisonedBy === undefined && step.undo !== undefined && step.undo.length > 0)
532
+ journal.push(step.undo);
533
+ }
534
+ return undefined;
535
+ }
536
+ /** Runs one migration step; returns its wrapped error instead of throwing, so the loop can unwind. */
537
+ async function executeMigrationStep(db, step) {
538
+ const ddl = step.sql;
539
+ log('Executing migration DDL: %s', ddl);
540
+ try {
541
+ if (step.ast)
542
+ await db._execAstWithinTransaction([spineCloneAst(step.ast)]);
543
+ else
544
+ await db._execWithinTransaction(ddl);
545
+ return undefined;
546
+ }
547
+ catch (e) {
548
+ log('Migration failed for DDL: %s', ddl);
549
+ // NOTE: every failed step surfaces as ERROR; the step's own code (e.g. CONSTRAINT
550
+ // when the data violates a tightened rule) is only on `cause` and inside the
551
+ // message. If a caller ever needs to key on "data violates the new schema" vs.
552
+ // "the migration is broken", propagate the inner code instead of flattening it.
553
+ return new QuereusError(`Failed to execute DDL: ${ddl}\nError: ${errorText(e)}`, StatusCode.ERROR, e instanceof Error ? e : undefined);
554
+ }
555
+ }
556
+ /**
557
+ * Runs the journal in reverse (each step's undo statements in their own order), then checks
558
+ * the catalog against the pre-apply fingerprint. Returns undefined on a verified restore,
559
+ * otherwise the reason the schema is left partially migrated.
560
+ *
561
+ * An undo statement that throws stops the unwind where it is: the schema is then in a state
562
+ * neither the user nor the plan asked for, and continuing past a failed undo would only
563
+ * compound it. The fingerprint check is what notices a wrong or missing undo arm — including
564
+ * a failing step that left residue of its own (each DDL statement owns its atomicity; this
565
+ * is the check that catches one that is not). It costs one catalog render, on the failure
566
+ * path only.
567
+ */
568
+ async function unwindJournal(db, schemaName, journal, preApplyFingerprint) {
569
+ for (let i = journal.length - 1; i >= 0; i--) {
570
+ for (const sql of journal[i]) {
571
+ log('Unwinding migration step: %s', sql);
572
+ try {
573
+ await db._execWithinTransaction(sql);
574
+ }
575
+ catch (e) {
576
+ log('Undo failed for DDL: %s: %O', sql, e);
577
+ return `${NOT_RESTORED}: undo statement \`${sql}\` failed (${errorText(e)}).`;
578
+ }
579
+ }
580
+ }
581
+ let afterUnwind;
582
+ try {
583
+ afterUnwind = renderCatalogForRestoreCheck(collectSchemaCatalog(db, schemaName));
584
+ }
585
+ catch (e) {
586
+ log('Could not re-collect the catalog to verify the restore: %O', e);
587
+ return `${NOT_RESTORED}: the catalog could not be re-collected to verify the restore (${errorText(e)}).`;
588
+ }
589
+ if (afterUnwind === preApplyFingerprint)
590
+ return undefined;
591
+ log('Post-unwind catalog does not match the pre-apply fingerprint.\nbefore:\n%s\nafter:\n%s', preApplyFingerprint, afterUnwind);
592
+ return `${NOT_RESTORED}: after unwinding, the catalog does not match its pre-apply state.`;
593
+ }
594
+ const NOT_RESTORED = 'The schema is partially migrated and could not be restored';
595
+ /** The reason text when an irreversible step ran — either before the failing step, or as it. */
596
+ function describeIrreversible(poisonedBy, failing) {
597
+ const why = poisonedBy.irreversible ?? 'no undo was recorded for it';
598
+ return poisonedBy === failing
599
+ ? `The schema could not be restored: the failing step \`${failing.sql}\` cannot be undone (${why}), so any partial effect of it stands.`
600
+ : `${NOT_RESTORED}: the earlier step \`${poisonedBy.sql}\` cannot be undone (${why}).`;
601
+ }
602
+ function errorText(e) {
603
+ return e instanceof Error ? e.message : String(e);
466
604
  }
467
605
  /**
468
606
  * Calls `beginSchemaBatch` on every module that defines it, in registration
@@ -1 +1 @@
1
- {"version":3,"file":"schema-declarative.js","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-declarative.js","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"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"}
@@ -35,4 +35,30 @@ import type { SchemaCatalog } from './catalog.js';
35
35
  * the comparison.
36
36
  */
37
37
  export declare function renderCatalogForComparison(catalog: SchemaCatalog): string;
38
+ /**
39
+ * The rendering `apply schema` compares after unwinding a failed migration, to
40
+ * verify the catalog is back where the apply found it (see
41
+ * `runtime/emit/schema-declarative.ts` § `runBatchedMigrationLoop`).
42
+ *
43
+ * Identical to {@link renderCatalogForComparison} except that a table's and a
44
+ * view's `ddl` text is left out. Those two texts record things the differ does
45
+ * not treat as part of the schema, and an undo that restores the catalog exactly
46
+ * as the differ sees it can still change them:
47
+ *
48
+ * - a table's DDL lists constraints in *storage* order, and `ADD CONSTRAINT`
49
+ * appends — so `DROP CONSTRAINT a` + re-add on a table with constraints
50
+ * `[a, b]` comes back as `[b, a]` (the structured `namedConstraints` below are
51
+ * sorted, because the differ keys them by name);
52
+ * - a view's DDL is `ViewSchema.sql`, which `create view` stores verbatim and the
53
+ * rename propagation (`runtime/emit/alter-table.ts`) overwrites with the
54
+ * rewritten body alone, so a rename and its reverse leave the field spelled
55
+ * differently from the original statement.
56
+ *
57
+ * Everything an undo statement can touch — columns and their attributes, the
58
+ * primary key, tags, named constraints, the maintained derivation, the object
59
+ * set itself — is in the structured fields, so the check loses nothing an undo
60
+ * arm could get wrong. Index and assertion `ddl` are rendered from structured
61
+ * state and order-free, so they stay in.
62
+ */
63
+ export declare function renderCatalogForRestoreCheck(catalog: SchemaCatalog): string;
38
64
  //# sourceMappingURL=catalog-rendering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-rendering.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog-rendering.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,cAAc,CAAC;AAE7G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAYzE"}
1
+ {"version":3,"file":"catalog-rendering.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog-rendering.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,cAAc,CAAC;AAE7G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAYzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAM3E"}
@@ -48,6 +48,38 @@ export function renderCatalogForComparison(catalog) {
48
48
  ...sortedRenderings(assertions, renderAssertion),
49
49
  ].join('\n');
50
50
  }
51
+ /**
52
+ * The rendering `apply schema` compares after unwinding a failed migration, to
53
+ * verify the catalog is back where the apply found it (see
54
+ * `runtime/emit/schema-declarative.ts` § `runBatchedMigrationLoop`).
55
+ *
56
+ * Identical to {@link renderCatalogForComparison} except that a table's and a
57
+ * view's `ddl` text is left out. Those two texts record things the differ does
58
+ * not treat as part of the schema, and an undo that restores the catalog exactly
59
+ * as the differ sees it can still change them:
60
+ *
61
+ * - a table's DDL lists constraints in *storage* order, and `ADD CONSTRAINT`
62
+ * appends — so `DROP CONSTRAINT a` + re-add on a table with constraints
63
+ * `[a, b]` comes back as `[b, a]` (the structured `namedConstraints` below are
64
+ * sorted, because the differ keys them by name);
65
+ * - a view's DDL is `ViewSchema.sql`, which `create view` stores verbatim and the
66
+ * rename propagation (`runtime/emit/alter-table.ts`) overwrites with the
67
+ * rewritten body alone, so a rename and its reverse leave the field spelled
68
+ * differently from the original statement.
69
+ *
70
+ * Everything an undo statement can touch — columns and their attributes, the
71
+ * primary key, tags, named constraints, the maintained derivation, the object
72
+ * set itself — is in the structured fields, so the check loses nothing an undo
73
+ * arm could get wrong. Index and assertion `ddl` are rendered from structured
74
+ * state and order-free, so they stay in.
75
+ */
76
+ export function renderCatalogForRestoreCheck(catalog) {
77
+ return renderCatalogForComparison({
78
+ ...catalog,
79
+ tables: catalog.tables.map(t => ({ ...t, ddl: '' })),
80
+ views: catalog.views.map(v => ({ ...v, ddl: '' })),
81
+ });
82
+ }
51
83
  /**
52
84
  * Compile error if a catalog interface grows a field this renderer does not
53
85
  * consider. The rest object of an exhaustive destructure is `{}`, which is
@@ -99,7 +131,10 @@ function renderColumn(c) {
99
131
  + ` collate ${collation} tags ${renderTags(tags)}`;
100
132
  }
101
133
  function renderNamedConstraint(c) {
102
- const { name, tags, definition, ...rest } = c;
134
+ // `bodyAst` omitted: it is the lift `definition` was rendered from (plus the
135
+ // deferrability `definition` drops, which is not a differ channel), so the
136
+ // canonical string already decides equality.
137
+ const { name, tags, definition, bodyAst: _bodyAst, ...rest } = c;
103
138
  assertEveryFieldConsidered(rest);
104
139
  return `constraint ${name} ${definition} tags ${renderTags(tags)}`;
105
140
  }
@@ -110,14 +145,16 @@ function renderMaintained(m) {
110
145
  // compare). This rendering only ever fires the fast path when every hash
111
146
  // matches, so the AST-tolerant path is unreachable and the hash fully
112
147
  // determines the outcome.
113
- const { bodyHash, backingModuleName, backingModuleArgs, select: _select, ...rest } = m;
148
+ // `columns` omitted: it is folded into `bodyHash` (see `CatalogTable.maintained`).
149
+ const { bodyHash, backingModuleName, backingModuleArgs, select: _select, columns: _columns, ...rest } = m;
114
150
  assertEveryFieldConsidered(rest);
115
151
  return `body ${bodyHash} module ${backingModuleName ?? '-'} args ${renderTags(backingModuleArgs)}`;
116
152
  }
117
153
  function renderView(v) {
118
154
  // `select` omitted for the same reason as `CatalogTable.maintained.select`:
119
- // the differ consults it only when `definition` already differs.
120
- const { name, ddl, definition, tags, select: _select, ...rest } = v;
155
+ // the differ consults it only when `definition` already differs. `columns` is
156
+ // folded into `definition`.
157
+ const { name, ddl, definition, tags, select: _select, columns: _columns, ...rest } = v;
121
158
  assertEveryFieldConsidered(rest);
122
159
  return `view ${name}\n\tddl ${ddl}\n\tdef ${definition}\n\ttags ${renderTags(tags)}`;
123
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-rendering.js","sourceRoot":"","sources":["../../../src/schema/catalog-rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-rendering.js","sourceRoot":"","sources":["../../../src/schema/catalog-rendering.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,15 @@ export interface CatalogTable {
53
53
  name: string;
54
54
  tags?: Readonly<Record<string, SqlValue>>;
55
55
  definition: string;
56
+ /**
57
+ * The full-fidelity lift of the live constraint (`schemaConstraintToTableConstraint`),
58
+ * from which the migration planner renders the `ADD constraint …` that undoes a
59
+ * `DROP CONSTRAINT`. Kept separate from `definition`, which is canonical and has
60
+ * already dropped an FK's deferrability. Optional so hand-built catalogs without
61
+ * it simply yield an irreversible undo for that step. A CHECK's `expr` is the live
62
+ * schema AST — read-only to consumers, who clone before rewriting.
63
+ */
64
+ bodyAst?: AST.TableConstraint;
56
65
  }>;
57
66
  /**
58
67
  * Present iff this is a **maintained table** (carries a `derivation` — what
@@ -76,6 +85,12 @@ export interface CatalogTable {
76
85
  * hash re-compare (see `CatalogView.select`). Read-only to consumers.
77
86
  */
78
87
  select?: AST.QueryExpr;
88
+ /**
89
+ * The recorded explicit output-column list (`derivation.columns`; absent for an
90
+ * implicit body). Already folded into `bodyHash`; surfaced so the migration
91
+ * planner can render the `set maintained [(cols)] as …` that undoes a detach.
92
+ */
93
+ columns?: ReadonlyArray<string>;
79
94
  };
80
95
  }
81
96
  /** New field ⇒ new arm in `renderCatalogForComparison` (compiler-enforced; see {@link SchemaCatalog}). */
@@ -104,6 +119,14 @@ export interface CatalogView {
104
119
  * as read-only by every consumer — it is the live schema's AST, not a copy.
105
120
  */
106
121
  select?: AST.QueryExpr;
122
+ /**
123
+ * The explicit column list of `create view v (a, b) as …`, when one was given.
124
+ * Already folded into `definition`; surfaced so the migration planner can render
125
+ * the `create view` that undoes a `DROP VIEW` from `select` + this list (the
126
+ * `ddl` text is not a reliable source: after a rename propagation `ViewSchema.sql`
127
+ * holds only the rewritten body).
128
+ */
129
+ columns?: ReadonlyArray<string>;
107
130
  }
108
131
  /** New field ⇒ new arm in `renderCatalogForComparison` (compiler-enforced; see {@link SchemaCatalog}). */
109
132
  export interface CatalogIndex {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { isMaintainedTable } from './derivation.js';
4
4
  import { createTableToString, createViewToString, createMaterializedViewToString, createIndexToString, createAssertionToString, quoteIdentifier, expressionToString, viewDefinitionToCanonicalString } from '../emit/ast-stringify.js';
5
5
  import { StatusCode } from '../common/types.js';
6
6
  import { QuereusError } from '../common/errors.js';
7
- import { generateTableDDL, generateIndexDDL, generateMaintainedTableDDL, constraintToCanonicalDDL, indexToCanonicalDDL } from './ddl-generator.js';
7
+ import { generateTableDDL, generateIndexDDL, generateMaintainedTableDDL, constraintToCanonicalDDL, indexToCanonicalDDL, schemaConstraintToTableConstraint } from './ddl-generator.js';
8
8
  import { applyViewSchemaDefault, applyAssertionSchemaDefault } from './schema-differ.js';
9
9
  import { ENGINE_MANAGED_TABLE_TAG } from './reserved-tags.js';
10
10
  /**
@@ -157,17 +157,17 @@ function tableSchemaToCatalog(tableSchema, db) {
157
157
  const namedConstraints = [];
158
158
  for (const c of tableSchema.checkConstraints ?? []) {
159
159
  if (c.name && !isAutoConstraintName(c.name)) {
160
- namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('check', c, tableSchema) });
160
+ namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('check', c, tableSchema), bodyAst: schemaConstraintToTableConstraint('check', c, tableSchema) });
161
161
  }
162
162
  }
163
163
  for (const c of tableSchema.uniqueConstraints ?? []) {
164
164
  if (c.name && !isAutoConstraintName(c.name) && !c.derivedFromIndex) {
165
- namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('unique', c, tableSchema) });
165
+ namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('unique', c, tableSchema), bodyAst: schemaConstraintToTableConstraint('unique', c, tableSchema) });
166
166
  }
167
167
  }
168
168
  for (const c of tableSchema.foreignKeys ?? []) {
169
169
  if (c.name && !isAutoConstraintName(c.name)) {
170
- namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('foreignKey', c, tableSchema) });
170
+ namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('foreignKey', c, tableSchema), bodyAst: schemaConstraintToTableConstraint('foreignKey', c, tableSchema) });
171
171
  }
172
172
  }
173
173
  return {
@@ -195,6 +195,7 @@ function maintainedDescriptor(table) {
195
195
  backingModuleName: backing.storedModuleName,
196
196
  backingModuleArgs: backing.storedModuleArgs,
197
197
  select: table.derivation.selectAst,
198
+ columns: table.derivation.columns,
198
199
  };
199
200
  }
200
201
  function viewSchemaToCatalog(viewSchema) {
@@ -204,6 +205,7 @@ function viewSchemaToCatalog(viewSchema) {
204
205
  definition: viewDefinitionToCanonicalString(viewSchema.columns, viewSchema.selectAst),
205
206
  tags: viewSchema.tags,
206
207
  select: viewSchema.selectAst,
208
+ columns: viewSchema.columns,
207
209
  };
208
210
  }
209
211
  /**