@quereus/sync 4.18.0 → 4.19.2
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.
- package/dist/src/sync/change-applicator.d.ts.map +1 -1
- package/dist/src/sync/change-applicator.js +6 -2
- package/dist/src/sync/change-applicator.js.map +1 -1
- package/dist/src/sync/protocol.d.ts +73 -3
- package/dist/src/sync/protocol.d.ts.map +1 -1
- package/dist/src/sync/protocol.js +45 -2
- package/dist/src/sync/protocol.js.map +1 -1
- package/dist/src/sync/snapshot-stream.d.ts.map +1 -1
- package/dist/src/sync/snapshot-stream.js +43 -16
- package/dist/src/sync/snapshot-stream.js.map +1 -1
- package/dist/src/sync/snapshot.d.ts.map +1 -1
- package/dist/src/sync/snapshot.js +6 -2
- package/dist/src/sync/snapshot.js.map +1 -1
- package/dist/src/sync/store-adapter.d.ts +13 -7
- package/dist/src/sync/store-adapter.d.ts.map +1 -1
- package/dist/src/sync/store-adapter.js +305 -38
- package/dist/src/sync/store-adapter.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAsB,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACN,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,4BAA4B,EAO5B,mBAAmB,EACnB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,19 @@
|
|
|
9
9
|
* maintenance, opt-in parent-side FK actions).
|
|
10
10
|
*
|
|
11
11
|
* Per `applyToStore(dataChanges, schemaChanges, options)` invocation:
|
|
12
|
-
* 1. Schema changes execute
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
12
|
+
* 1. Schema changes execute via `db.exec`, with the resulting module schema
|
|
13
|
+
* events pre-marked remote. Replicated DDL is applied IDEMPOTENTLY: an
|
|
14
|
+
* object already in the migration's wanted state with a matching definition
|
|
15
|
+
* is counted applied without re-exec'ing, so two peers that independently
|
|
16
|
+
* created the same table converge instead of the receiver failing "already
|
|
17
|
+
* exists" on every sync (see {@link decideSchemaChange}).
|
|
18
|
+
*
|
|
19
|
+
* Most DDL runs BEFORE the data (the batch's rows need the new shape to land
|
|
20
|
+
* in), but a migration that VALIDATES the rows the table already holds — `set
|
|
21
|
+
* not null`, `add constraint`, a UNIQUE index create — is legal only against a
|
|
22
|
+
* row set this batch may still be delivering, so it runs AFTER the row writes
|
|
23
|
+
* instead. {@link partitionSchemaChanges} splits the batch into those two
|
|
24
|
+
* phases; {@link validatesExistingRows} is the classifier.
|
|
19
25
|
* 2. Data changes are grouped per table, then per row; each row group
|
|
20
26
|
* collapses to ONE `ExternalRowOp` — the group's NET effect in list
|
|
21
27
|
* order, which the caller delivers HLC-ordered (a delete resets the row to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-adapter.d.ts","sourceRoot":"","sources":["../../../src/sync/store-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"store-adapter.d.ts","sourceRoot":"","sources":["../../../src/sync/store-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgHG;AAEH,OAAO,KAAK,EAAkC,QAAQ,EAAiD,MAAM,kBAAkB,CAAC;AAEhI,OAAO,KAAK,EAAiB,iBAAiB,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAEhG,OAAO,KAAK,EACV,oBAAoB,EAKrB,MAAM,eAAe,CAAC;AAGvB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,EAAE,EAAE,QAAQ,CAAC;IACb;;;;;OAKG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB,mFAAmF;IACnF,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,oBAAoB,CA4HzF"}
|
|
@@ -9,13 +9,19 @@
|
|
|
9
9
|
* maintenance, opt-in parent-side FK actions).
|
|
10
10
|
*
|
|
11
11
|
* Per `applyToStore(dataChanges, schemaChanges, options)` invocation:
|
|
12
|
-
* 1. Schema changes execute
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
12
|
+
* 1. Schema changes execute via `db.exec`, with the resulting module schema
|
|
13
|
+
* events pre-marked remote. Replicated DDL is applied IDEMPOTENTLY: an
|
|
14
|
+
* object already in the migration's wanted state with a matching definition
|
|
15
|
+
* is counted applied without re-exec'ing, so two peers that independently
|
|
16
|
+
* created the same table converge instead of the receiver failing "already
|
|
17
|
+
* exists" on every sync (see {@link decideSchemaChange}).
|
|
18
|
+
*
|
|
19
|
+
* Most DDL runs BEFORE the data (the batch's rows need the new shape to land
|
|
20
|
+
* in), but a migration that VALIDATES the rows the table already holds — `set
|
|
21
|
+
* not null`, `add constraint`, a UNIQUE index create — is legal only against a
|
|
22
|
+
* row set this batch may still be delivering, so it runs AFTER the row writes
|
|
23
|
+
* instead. {@link partitionSchemaChanges} splits the batch into those two
|
|
24
|
+
* phases; {@link validatesExistingRows} is the classifier.
|
|
19
25
|
* 2. Data changes are grouped per table, then per row; each row group
|
|
20
26
|
* collapses to ONE `ExternalRowOp` — the group's NET effect in list
|
|
21
27
|
* order, which the caller delivers HLC-ordered (a delete resets the row to
|
|
@@ -134,19 +140,26 @@ export function createStoreAdapter(options) {
|
|
|
134
140
|
schemaChangesApplied: 0,
|
|
135
141
|
errors: [],
|
|
136
142
|
};
|
|
137
|
-
//
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
143
|
+
// Both phases share one accounting path, so a validating alteration's failure
|
|
144
|
+
// reaches `result.errors` exactly as a pre-data one always did.
|
|
145
|
+
const applySchemaPhase = async (phase) => {
|
|
146
|
+
for (const schemaChange of phase) {
|
|
147
|
+
try {
|
|
148
|
+
await applySchemaChange(db, events, schemaChange, applyOptions);
|
|
149
|
+
result.schemaChangesApplied++;
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
result.errors.push({
|
|
153
|
+
change: schemaChange,
|
|
154
|
+
error: toError(error),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
148
157
|
}
|
|
149
|
-
}
|
|
158
|
+
};
|
|
159
|
+
// DDL the batch's rows may depend on runs first; DDL that validates existing
|
|
160
|
+
// rows runs after them (see partitionSchemaChanges).
|
|
161
|
+
const { beforeData, afterData } = partitionSchemaChanges(schemaChanges);
|
|
162
|
+
await applySchemaPhase(beforeData);
|
|
150
163
|
// Effective changes accumulated across all tables, in apply order,
|
|
151
164
|
// for the single end-of-invocation seam call. The order here is
|
|
152
165
|
// table-grouped (first-appearance opSeq); it is NOT a dependency
|
|
@@ -199,6 +212,10 @@ export function createStoreAdapter(options) {
|
|
|
199
212
|
}
|
|
200
213
|
}
|
|
201
214
|
}
|
|
215
|
+
// Row-validating DDL runs here, against the rows this batch just landed —
|
|
216
|
+
// the whole point of the split. It precedes the seam call so the seam
|
|
217
|
+
// observes the batch's FINAL schema.
|
|
218
|
+
await applySchemaPhase(afterData);
|
|
202
219
|
// One seam call per invocation, after all storage writes. Driven in
|
|
203
220
|
// assertion REPORT mode: a commit-time global-assertion violation over the
|
|
204
221
|
// inbound batch is COLLECTED and returned (not thrown), and the batch still
|
|
@@ -314,8 +331,14 @@ function normalizeDDL(ddl) {
|
|
|
314
331
|
}
|
|
315
332
|
/**
|
|
316
333
|
* The object named by the migration already exists locally: converge silently if
|
|
317
|
-
*
|
|
318
|
-
* both
|
|
334
|
+
* `localDDL` matches the replicated definition, otherwise throw a conflict naming
|
|
335
|
+
* both.
|
|
336
|
+
*
|
|
337
|
+
* `localDDL` is what the CALLER decided this migration should be judged against —
|
|
338
|
+
* for a `create_table` with a same-version local migration record, that record's
|
|
339
|
+
* own CREATE; otherwise the object's current shape regenerated from the catalog
|
|
340
|
+
* (see {@link decideSchemaChange}). `localOrigin` names which one, so an operator
|
|
341
|
+
* reading the conflict is not left guessing what `local:` is.
|
|
319
342
|
*
|
|
320
343
|
* NOTE: a genuinely DIVERGENT concurrent `create_table` (same name, different
|
|
321
344
|
* shape on two peers) has no automatic convergence path — this throw aborts the
|
|
@@ -325,13 +348,16 @@ function normalizeDDL(ddl) {
|
|
|
325
348
|
* the local table), which is a much larger change. If divergent concurrent
|
|
326
349
|
* creates start showing up in practice, that is the work to do.
|
|
327
350
|
*/
|
|
328
|
-
function assertDefinitionMatches(change, localDDL
|
|
351
|
+
function assertDefinitionMatches(change, localDDL,
|
|
352
|
+
/** What `localDDL` is, named in the conflict message; omitted for the current shape. */
|
|
353
|
+
localOrigin) {
|
|
329
354
|
if (normalizeDDL(localDDL) === normalizeDDL(change.ddl))
|
|
330
355
|
return;
|
|
331
356
|
throw new Error(`Schema conflict applying remote ${change.type} for ${change.schema}.${change.table}: ` +
|
|
332
357
|
`a different definition already exists locally.\n` +
|
|
333
358
|
` local: ${localDDL}\n` +
|
|
334
|
-
` remote: ${change.ddl}`
|
|
359
|
+
` remote: ${change.ddl}` +
|
|
360
|
+
(localOrigin ? `\n (local is ${localOrigin})` : ''));
|
|
335
361
|
}
|
|
336
362
|
/**
|
|
337
363
|
* Decide whether a replicated DDL statement still needs to run. Never called
|
|
@@ -349,6 +375,14 @@ function assertDefinitionMatches(change, localDDL) {
|
|
|
349
375
|
* local shape and committing the metadata would record "converged" for a
|
|
350
376
|
* divergence that is not converged (see {@link assertDefinitionMatches}).
|
|
351
377
|
*
|
|
378
|
+
* The invariant the `create_table` arm holds: a replicated migration is judged
|
|
379
|
+
* against the state it was MEANT to produce — `change.localDDLAtVersion`, what
|
|
380
|
+
* this device's own migration at the same schema version recorded — never against
|
|
381
|
+
* whatever the local object happens to look like now. The other arms read the
|
|
382
|
+
* catalog because their question is about presence (does the object exist?) or
|
|
383
|
+
* about one alteration's effect, neither of which a later local migration
|
|
384
|
+
* invalidates.
|
|
385
|
+
*
|
|
352
386
|
* NOTE: presence is read from the in-memory catalog (`db.schemaManager`), which
|
|
353
387
|
* is assumed to reflect what is persisted — true once a database has finished
|
|
354
388
|
* `rehydrateCatalog`. If a peer ever drives sync against a half-rehydrated
|
|
@@ -361,6 +395,36 @@ function decideSchemaChange(db, change) {
|
|
|
361
395
|
const local = db.schemaManager.getTable(change.schema, change.table);
|
|
362
396
|
if (!local)
|
|
363
397
|
return 'execute';
|
|
398
|
+
// | incoming create | local record at the same version | verdict |
|
|
399
|
+
// |---|---|---|
|
|
400
|
+
// | — | absent | fall back to the current-shape comparison |
|
|
401
|
+
// | matches | present | already applied — converge |
|
|
402
|
+
// | differs | present | genuine divergence — throw, create vs create |
|
|
403
|
+
//
|
|
404
|
+
// The record is the RIGHT comparison: a table that has been altered since its
|
|
405
|
+
// own create no longer renders as the create that made it, so comparing the
|
|
406
|
+
// incoming create against the current shape reports a divergence the moment
|
|
407
|
+
// the receiver alters its own table — permanently, since the throw aborts the
|
|
408
|
+
// batch before its metadata commits. Both peers' duplicate creates are
|
|
409
|
+
// version 1 and record byte-identical canonical DDL, so the record keeps the
|
|
410
|
+
// question decidable however much either table is altered afterwards.
|
|
411
|
+
if (change.localDDLAtVersion !== undefined) {
|
|
412
|
+
assertDefinitionMatches(change, change.localDDLAtVersion, `this device's own ${change.type} recorded at the same schema version, not the table's current shape`);
|
|
413
|
+
return 'already-applied';
|
|
414
|
+
}
|
|
415
|
+
// No same-version, same-TYPE record — a table created before sync was
|
|
416
|
+
// attached, or a version whose record is some other migration type: compare
|
|
417
|
+
// the current shape, as this always did.
|
|
418
|
+
//
|
|
419
|
+
// NOTE: a local drop + re-create does NOT land here. Migration records are
|
|
420
|
+
// never deleted, so the original `create_table` still sits at version 1 while
|
|
421
|
+
// the live table is the re-created one at a later version; an incoming create
|
|
422
|
+
// matching that ORIGINAL record converges silently against a table that no
|
|
423
|
+
// longer has its shape. Benign today — the peer's create is genuinely stale
|
|
424
|
+
// and the drop/re-create replicates behind it — and strictly better than the
|
|
425
|
+
// permanent block the current-shape comparison gave. If drop/re-create of a
|
|
426
|
+
// replicated table becomes common, key the lookup on the CURRENT version's
|
|
427
|
+
// create rather than the incoming migration's version.
|
|
364
428
|
// Both sides render through `generateTableDDL` with no `db` argument, so
|
|
365
429
|
// the strings are fully qualified and session-independent — directly
|
|
366
430
|
// comparable against the DDL the origin put on the wire.
|
|
@@ -369,6 +433,10 @@ function decideSchemaChange(db, change) {
|
|
|
369
433
|
// rendering the same table some other way would be reported as a conflict
|
|
370
434
|
// rather than converging; the comparison would then need to be over parsed
|
|
371
435
|
// schemas, not rendered strings.
|
|
436
|
+
// NOTE: this fallback keeps the pre-record failure mode — a table altered
|
|
437
|
+
// locally since a create that was never recorded still reads as a divergence.
|
|
438
|
+
// Only reachable for the two cases above; if either becomes common, record a
|
|
439
|
+
// migration for the pre-sync create rather than widening the comparison.
|
|
372
440
|
assertDefinitionMatches(change, generateTableDDL(local));
|
|
373
441
|
return 'already-applied';
|
|
374
442
|
}
|
|
@@ -384,7 +452,13 @@ function decideSchemaChange(db, change) {
|
|
|
384
452
|
// here can never disagree with what the replicated DDL would then resolve to.
|
|
385
453
|
const owner = db.schemaManager.findIndexOwner(change.schema, change.table);
|
|
386
454
|
if (!owner)
|
|
387
|
-
return
|
|
455
|
+
return decideAbsentIndexCreate(db, change);
|
|
456
|
+
// NOTE: still compares the index's CURRENT shape, which is safe only because
|
|
457
|
+
// no ALTER form modifies an index in place — a live index always renders as
|
|
458
|
+
// the create that made it. If in-place index alteration ever lands, this arm
|
|
459
|
+
// acquires the same stale-comparison bug the create_table arm above fixed;
|
|
460
|
+
// give it `localDDLAtVersion` too (the field is already populated for every
|
|
461
|
+
// migration type, index migrations included).
|
|
388
462
|
assertDefinitionMatches(change, generateIndexDDL(owner.index, owner.table));
|
|
389
463
|
return 'already-applied';
|
|
390
464
|
}
|
|
@@ -405,6 +479,30 @@ function decideSchemaChange(db, change) {
|
|
|
405
479
|
return 'execute';
|
|
406
480
|
}
|
|
407
481
|
}
|
|
482
|
+
/**
|
|
483
|
+
* Decision for a replicated `add_index` whose index is NOT present locally.
|
|
484
|
+
*
|
|
485
|
+
* Normally that means "run it". The exception is an index whose OWNER table is
|
|
486
|
+
* absent here: the create can only throw `no such table` / `column not found`, and
|
|
487
|
+
* repeating it every round wedges the admission unit permanently rather than
|
|
488
|
+
* self-healing. An absent owner also means the wanted end state has already
|
|
489
|
+
* arrived — the table (or the indexed column) is gone, and an index cannot outlive
|
|
490
|
+
* what it indexes — so converge with a warning, the same posture `drop_index` and
|
|
491
|
+
* {@link decideAlterTable} take for an object this peer does not have.
|
|
492
|
+
*
|
|
493
|
+
* This is what lets {@link partitionSchemaChanges} defer a unique index create
|
|
494
|
+
* past a `drop_table` in the same batch (see its `drop_table` note). An
|
|
495
|
+
* unparseable DDL leaves the owner unknown: execute, so the engine's own error is
|
|
496
|
+
* what the operator sees.
|
|
497
|
+
*/
|
|
498
|
+
function decideAbsentIndexCreate(db, change) {
|
|
499
|
+
const ownerName = createIndexOwner(change);
|
|
500
|
+
if (ownerName === undefined || db.schemaManager.getTable(change.schema, ownerName))
|
|
501
|
+
return 'execute';
|
|
502
|
+
console.warn(`[Sync] Remote ${change.type} ${change.schema}.${change.table} indexes ${change.schema}.${ownerName}, `
|
|
503
|
+
+ `a table this peer does not have — converging without applying: ${change.ddl}`);
|
|
504
|
+
return 'already-applied';
|
|
505
|
+
}
|
|
408
506
|
/**
|
|
409
507
|
* Idempotency / conflict decision for a replicated `rename_table` migration,
|
|
410
508
|
* read from the local catalog for BOTH names:
|
|
@@ -454,6 +552,179 @@ function decideRenameTable(db, change) {
|
|
|
454
552
|
+ `'${change.fromTable}' nor '${change.table}' exists locally — converging without applying: ${change.ddl}`);
|
|
455
553
|
return 'already-applied';
|
|
456
554
|
}
|
|
555
|
+
/**
|
|
556
|
+
* Parse one replicated migration's DDL with the engine's own parser, returning
|
|
557
|
+
* either the statement or the parse failure — never throwing, and never deciding
|
|
558
|
+
* what a failure means: each caller does that for itself ({@link decideAlterTable}
|
|
559
|
+
* logs it and executes the text as-is; {@link validatesExistingRows} treats an
|
|
560
|
+
* unparseable migration as non-validating). Shared so the idempotency decision and
|
|
561
|
+
* the apply-phase classifier read one migration the same way.
|
|
562
|
+
*/
|
|
563
|
+
function parseMigrationDDL(ddl) {
|
|
564
|
+
try {
|
|
565
|
+
return { stmt: new Parser().parse(ddl) };
|
|
566
|
+
}
|
|
567
|
+
catch (e) {
|
|
568
|
+
return { parseError: toError(e) };
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Does this migration VALIDATE the rows the receiver already holds — i.e. is it
|
|
573
|
+
* legal only against a row set the same batch may still be delivering?
|
|
574
|
+
*
|
|
575
|
+
* A tightening alteration is recorded by the origin AFTER the rows that make it
|
|
576
|
+
* hold, so replaying it ahead of those rows fails on the batch that carries them
|
|
577
|
+
* (fill a column's NULLs, then `set not null`, in one relay). Everything answered
|
|
578
|
+
* true here is therefore applied AFTER the batch's row writes; everything else
|
|
579
|
+
* keeps its pre-data position, because the batch's rows may need the new shape to
|
|
580
|
+
* land in. See {@link partitionSchemaChanges} for how the answer is used.
|
|
581
|
+
*
|
|
582
|
+
* The validating set is deliberately narrow — only alterations that INSPECT
|
|
583
|
+
* existing rows without changing how those rows are stored or addressed:
|
|
584
|
+
*
|
|
585
|
+
* - `alter column … set not null` (`drop not null` loosens, so it stays early)
|
|
586
|
+
* - `add constraint` — the `unique` and foreign-key forms scan existing rows and
|
|
587
|
+
* throw on a violation. The `check` form is classified with them even though the
|
|
588
|
+
* engine does not scan for it today (both backends append the constraint
|
|
589
|
+
* schema-only — see `bug-add-check-constraint-skips-existing-rows`): deferring a
|
|
590
|
+
* statement that inspects nothing is harmless, and it is the right position for
|
|
591
|
+
* the arm the moment that gap is closed.
|
|
592
|
+
* - a UNIQUE `add_index` — verified to throw `UNIQUE constraint failed` against
|
|
593
|
+
* pre-existing duplicates, the same failure mode as `set not null`. A NON-unique
|
|
594
|
+
* index create inspects nothing, so it stays early.
|
|
595
|
+
*
|
|
596
|
+
* Two alterations look like they belong here and deliberately do NOT:
|
|
597
|
+
*
|
|
598
|
+
* - `alter primary key` — re-keying is not merely validating. The batch's row
|
|
599
|
+
* changes carry primary-key values and the key definition in force decides how
|
|
600
|
+
* those rows are ADDRESSED, so applying it after the rows would file them under
|
|
601
|
+
* the old key. It stays early, and its own tightening failure mode (duplicate
|
|
602
|
+
* values under the new key, arriving with the rows that resolve them) therefore
|
|
603
|
+
* remains.
|
|
604
|
+
* - `alter column … set data type` — a type change rewrites stored values, so
|
|
605
|
+
* rows applied before it would be stored under the OLD type and then converted,
|
|
606
|
+
* which is not the same history the origin has. Stays early, same tradeoff.
|
|
607
|
+
*
|
|
608
|
+
* A migration whose DDL does not parse classifies non-validating: it keeps
|
|
609
|
+
* today's position, and {@link decideAlterTable} logs the parse failure when it
|
|
610
|
+
* reaches the same text.
|
|
611
|
+
*/
|
|
612
|
+
function validatesExistingRows(change) {
|
|
613
|
+
// Only these two migration types can carry a validating statement; skip the
|
|
614
|
+
// parse for every other one.
|
|
615
|
+
if (change.type !== 'add_index' && change.type !== 'alter_column')
|
|
616
|
+
return false;
|
|
617
|
+
const { stmt } = parseMigrationDDL(change.ddl);
|
|
618
|
+
if (change.type === 'add_index') {
|
|
619
|
+
// A partial (`where`-carrying) unique index still validates the rows inside
|
|
620
|
+
// its predicate, so it belongs here too.
|
|
621
|
+
return stmt?.type === 'createIndex' && stmt.isUnique === true;
|
|
622
|
+
}
|
|
623
|
+
if (stmt?.type !== 'alterTable')
|
|
624
|
+
return false;
|
|
625
|
+
const action = stmt.action;
|
|
626
|
+
if (action.type === 'addConstraint')
|
|
627
|
+
return true;
|
|
628
|
+
if (action.type === 'alterColumn')
|
|
629
|
+
return action.setNotNull === true;
|
|
630
|
+
return false;
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* The `(schema, object)` keys a migration is ordered under within one batch — the
|
|
634
|
+
* objects whose later migrations must hold it in place (see
|
|
635
|
+
* {@link partitionSchemaChanges}).
|
|
636
|
+
*
|
|
637
|
+
* For a table migration that is the table. For an index migration `change.table`
|
|
638
|
+
* holds the INDEX name (see `mapSchemaMigrationType`), which is what pairs a create
|
|
639
|
+
* with its drop; an index CREATE also depends on the table it indexes, so it keys
|
|
640
|
+
* under its owner as well — a later alteration of that owner (dropping the indexed
|
|
641
|
+
* column, dropping the table) must not be reordered ahead of it.
|
|
642
|
+
*/
|
|
643
|
+
function migrationOrderKeys(change) {
|
|
644
|
+
const own = `${change.schema}.${change.table}`;
|
|
645
|
+
if (change.type !== 'add_index')
|
|
646
|
+
return [own];
|
|
647
|
+
const owner = createIndexOwner(change);
|
|
648
|
+
return owner === undefined ? [own] : [own, `${change.schema}.${owner}`];
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* The table a replicated `add_index` migration indexes, read from its own DDL —
|
|
652
|
+
* the migration envelope carries only the index name. `undefined` when the DDL
|
|
653
|
+
* does not parse as a `CREATE INDEX`; callers treat that as "owner unknown" and
|
|
654
|
+
* fall back to the conservative behaviour.
|
|
655
|
+
*
|
|
656
|
+
* The schema qualifier is deliberately ignored in favour of the migration's
|
|
657
|
+
* envelope, for the same reason {@link decideAlterTable} reads the envelope over
|
|
658
|
+
* `stmt.table`: the origin filed both from one event, so they agree for anything
|
|
659
|
+
* the pipeline produces.
|
|
660
|
+
*/
|
|
661
|
+
function createIndexOwner(change) {
|
|
662
|
+
const { stmt } = parseMigrationDDL(change.ddl);
|
|
663
|
+
return stmt?.type === 'createIndex' ? stmt.table.name : undefined;
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* Split one batch's schema changes into the phase that runs BEFORE the row writes
|
|
667
|
+
* and the phase that runs AFTER them, preserving each phase's relative order.
|
|
668
|
+
*
|
|
669
|
+
* A change moves to the after-data phase only when BOTH hold:
|
|
670
|
+
*
|
|
671
|
+
* - it validates existing rows ({@link validatesExistingRows}), and
|
|
672
|
+
* - every LATER change on the same object in this batch also moves.
|
|
673
|
+
*
|
|
674
|
+
* The second condition is what keeps the split from reordering DDL against DDL.
|
|
675
|
+
* A batch is a whole resolved `ChangeSet[]` — many source transactions — so it can
|
|
676
|
+
* legitimately carry `add constraint u1` and, from a later transaction, `drop
|
|
677
|
+
* constraint u1`. Deferring only the add would run the drop first (against a
|
|
678
|
+
* constraint that does not exist yet, which converges silently) and then install
|
|
679
|
+
* the constraint the origin no longer has. Holding a validating change in place
|
|
680
|
+
* as soon as anything later on the same object stays put means per-object DDL
|
|
681
|
+
* order is never rearranged: the batch simply keeps today's behaviour for that
|
|
682
|
+
* object, which is the pre-existing spurious-error case and not a new divergence.
|
|
683
|
+
*
|
|
684
|
+
* Consequences worth knowing:
|
|
685
|
+
*
|
|
686
|
+
* - A tightening followed by another ALTERATION of the same table in one batch
|
|
687
|
+
* (`set not null`, then `add column`) keeps today's pre-data position and
|
|
688
|
+
* today's outcome. Only the trailing run of validating changes per object moves,
|
|
689
|
+
* where a trailing `drop_table` does not count as a blocker (see below).
|
|
690
|
+
* - A unique index create is held by a later migration of EITHER its own name or
|
|
691
|
+
* its owner table — {@link migrationOrderKeys} gives it both keys, so neither a
|
|
692
|
+
* `drop index` of the same name nor a `drop column` of the indexed column can be
|
|
693
|
+
* reordered ahead of it.
|
|
694
|
+
*/
|
|
695
|
+
function partitionSchemaChanges(changes) {
|
|
696
|
+
// Walk backwards so "is everything later on this object also deferred?" is a
|
|
697
|
+
// single set membership: an object lands in `pinned` the first time (from the
|
|
698
|
+
// end) a change on it stays put, and every earlier change on it then stays too.
|
|
699
|
+
const pinned = new Set();
|
|
700
|
+
const deferred = new Set();
|
|
701
|
+
for (let i = changes.length - 1; i >= 0; i--) {
|
|
702
|
+
const change = changes[i];
|
|
703
|
+
// A `drop_table` discards the object, so nothing earlier on that table can be
|
|
704
|
+
// reordered INTO a wrong end state by moving past it — the table is gone
|
|
705
|
+
// either way. Letting it pin would hold an earlier tightening in the pre-data
|
|
706
|
+
// phase, where it fails against rows the batch has not delivered yet and
|
|
707
|
+
// aborts a batch whose own last word is "this table is gone". Deferred
|
|
708
|
+
// instead, it meets an absent table and converges with a warning — both
|
|
709
|
+
// {@link decideAlterTable} and the `add_index` arm of
|
|
710
|
+
// {@link decideSchemaChange} take that posture, which is what makes the
|
|
711
|
+
// exception safe for every migration type this classifier can defer.
|
|
712
|
+
if (change.type === 'drop_table')
|
|
713
|
+
continue;
|
|
714
|
+
const keys = migrationOrderKeys(change);
|
|
715
|
+
if (validatesExistingRows(change) && !keys.some(key => pinned.has(key))) {
|
|
716
|
+
deferred.add(i);
|
|
717
|
+
}
|
|
718
|
+
else {
|
|
719
|
+
for (const key of keys)
|
|
720
|
+
pinned.add(key);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
const beforeData = [];
|
|
724
|
+
const afterData = [];
|
|
725
|
+
changes.forEach((change, i) => (deferred.has(i) ? afterData : beforeData).push(change));
|
|
726
|
+
return { beforeData, afterData };
|
|
727
|
+
}
|
|
457
728
|
/**
|
|
458
729
|
* Idempotency decision for a replicated `alter_column` migration. The migration
|
|
459
730
|
* carries only the statement text, so parse it with the engine's own parser and
|
|
@@ -466,19 +737,15 @@ function decideRenameTable(db, change) {
|
|
|
466
737
|
* loop `create_table` idempotency exists to prevent.
|
|
467
738
|
*/
|
|
468
739
|
function decideAlterTable(db, change) {
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
const parsed = new Parser().parse(change.ddl);
|
|
472
|
-
if (parsed.type !== 'alterTable')
|
|
473
|
-
return 'execute';
|
|
474
|
-
stmt = parsed;
|
|
475
|
-
}
|
|
476
|
-
catch (e) {
|
|
740
|
+
const { stmt, parseError } = parseMigrationDDL(change.ddl);
|
|
741
|
+
if (parseError) {
|
|
477
742
|
// A parse failure must not be swallowed into a skip: execute the DDL so the
|
|
478
743
|
// underlying engine error is what the operator sees, not a parser message.
|
|
479
|
-
console.error(`[Sync] Could not parse replicated ${change.type} DDL for ${change.schema}.${change.table} — executing as-is:`,
|
|
744
|
+
console.error(`[Sync] Could not parse replicated ${change.type} DDL for ${change.schema}.${change.table} — executing as-is:`, parseError);
|
|
480
745
|
return 'execute';
|
|
481
746
|
}
|
|
747
|
+
if (stmt?.type !== 'alterTable')
|
|
748
|
+
return 'execute';
|
|
482
749
|
// NOTE: the decision reads the migration's `(schema, table)` envelope, never
|
|
483
750
|
// `stmt.table` — the origin filed the envelope from the same event that carried
|
|
484
751
|
// this text, so the two agree for anything the pipeline produces. A hand-crafted
|
|
@@ -564,11 +831,11 @@ function decideAlterTable(db, change) {
|
|
|
564
831
|
return inferType(action.setDataType).name === col.logicalType.name ? 'already-applied' : 'execute';
|
|
565
832
|
}
|
|
566
833
|
if (action.setNotNull !== undefined) {
|
|
567
|
-
// A `set not null` executes against the rows this peer currently holds,
|
|
568
|
-
//
|
|
569
|
-
//
|
|
570
|
-
//
|
|
571
|
-
//
|
|
834
|
+
// A `set not null` executes against the rows this peer currently holds, so
|
|
835
|
+
// it is applied AFTER the batch's row writes rather than ahead of them —
|
|
836
|
+
// the batch that fills the NULLs satisfies its own DDL on the first round.
|
|
837
|
+
// `drop not null` loosens and keeps its pre-data position. See
|
|
838
|
+
// {@link validatesExistingRows}.
|
|
572
839
|
return col.notNull === action.setNotNull ? 'already-applied' : 'execute';
|
|
573
840
|
}
|
|
574
841
|
if (action.setDefault !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-adapter.js","sourceRoot":"","sources":["../../../src/sync/store-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store-adapter.js","sourceRoot":"","sources":["../../../src/sync/store-adapter.ts"],"names":[],"mappings":"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"}
|