@quereus/isolation 4.13.1 → 4.14.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.
- package/dist/src/alter-migration.d.ts +48 -21
- package/dist/src/alter-migration.d.ts.map +1 -1
- package/dist/src/alter-migration.js +123 -49
- package/dist/src/alter-migration.js.map +1 -1
- package/dist/src/isolated-table.d.ts +0 -6
- package/dist/src/isolated-table.d.ts.map +1 -1
- package/dist/src/isolated-table.js +19 -45
- package/dist/src/isolated-table.js.map +1 -1
- package/dist/src/isolation-module.d.ts +27 -3
- package/dist/src/isolation-module.d.ts.map +1 -1
- package/dist/src/isolation-module.js +64 -23
- package/dist/src/isolation-module.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Database, TableSchema, SchemaChangeInfo, Row, SqlValue } from '@quereus/quereus';
|
|
1
|
+
import type { Database, TableSchema, SchemaChangeInfo, Row, SqlValue, EffectiveRowSource } from '@quereus/quereus';
|
|
2
2
|
import type { ConnectionOverlayState, Predicate } from './isolation-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Carrying a connection's open staging area (its "overlay") forward across an ALTER TABLE.
|
|
@@ -93,25 +93,40 @@ export interface SetDataTypeConvertContext {
|
|
|
93
93
|
convert: (v: SqlValue) => SqlValue;
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
* Per-ALTER constants for an `alter column
|
|
97
|
-
* {@link derivePkRekey})
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
96
|
+
* Per-ALTER constants for an `alter column` that re-keys the PRIMARY KEY (see
|
|
97
|
+
* {@link derivePkRekey}): `set collate` on a PK member (the comparator moves), or `set not null`
|
|
98
|
+
* on a PK member whose null → DEFAULT backfill the underlying will actually apply (the key VALUES
|
|
99
|
+
* move — a key column is nullable whenever the table's identity is its full column set). Present
|
|
100
|
+
* only when there are staged overlays to carry — a non-PK change, a re-declare of the column's
|
|
101
|
+
* current collation, or a tightening the underlying applies as metadata only re-keys nothing. A
|
|
102
|
+
* retype of a PK column is rejected upstream.
|
|
101
103
|
*
|
|
102
104
|
* Under the re-keyed primary key, a staged deletion marker and a staged live row that land on
|
|
103
105
|
* one key are the same logical row's before and after — not two rows — so
|
|
104
106
|
* {@link validateOverlayMigration} accepts the pair and {@link dropCollapsedPkRekeyMarkers}
|
|
105
|
-
* discards the marker before the re-key
|
|
106
|
-
*
|
|
107
|
-
* `TransactionLayer.rekeyPrimaryKey`
|
|
108
|
-
* whose key an upsert now occupies is dropped.
|
|
107
|
+
* discards the marker before the re-key reaches the overlay. Two live rows on one key stay a
|
|
108
|
+
* real duplicate and are refused. This is the isolation-layer lift of the rule
|
|
109
|
+
* `TransactionLayer.rekeyPrimaryKey` / `convertColumn` apply to their own write log one level
|
|
110
|
+
* down: a deletion whose key an upsert now occupies is dropped.
|
|
109
111
|
*/
|
|
110
112
|
export interface PkRekeyContext {
|
|
111
113
|
/** Overlay positions of the PRIMARY KEY columns (identical to the base's — the tombstone flag sits after them). */
|
|
112
114
|
pkIndices: readonly number[];
|
|
113
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Serializes a PK tuple as the POST-change key: under the new collation for `set collate`,
|
|
117
|
+
* with NULL at the tightened column replaced by its DEFAULT for `set not null`. Two old keys
|
|
118
|
+
* that serialize alike collapse.
|
|
119
|
+
*/
|
|
114
120
|
keyOf: (pk: readonly SqlValue[]) => string;
|
|
121
|
+
/**
|
|
122
|
+
* How the re-key reaches the overlay's own trees. `set collate` is forwarded through the
|
|
123
|
+
* overlay module's `alterSchema`, which is itself fallible (it re-validates the re-key
|
|
124
|
+
* against the overlay's layer chain) and so is dry-run in `IsolationModule.alterTable`'s
|
|
125
|
+
* tier 2 before the underlying mutates. The `set not null` backfill is applied through
|
|
126
|
+
* ordinary overlay writes instead ({@link backfillStagedNotNull}) — nothing to pre-flight,
|
|
127
|
+
* and its marker drop runs in the migrate step only.
|
|
128
|
+
*/
|
|
129
|
+
forwardedViaAlterSchema: boolean;
|
|
115
130
|
/** User-facing table name, for the CONSTRAINT message. */
|
|
116
131
|
tableName: string;
|
|
117
132
|
}
|
|
@@ -119,10 +134,13 @@ export interface PkRekeyContext {
|
|
|
119
134
|
* Every per-change-type constant one ALTER's overlay migration needs, derived once from the
|
|
120
135
|
* PRE-alter schema and shared by the validate and migrate passes so the two cannot drift.
|
|
121
136
|
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
137
|
+
* Each field is gated on a different change type (or, for the `alterColumn` arms, a different
|
|
138
|
+
* attribute, and the runtime admits exactly one attribute per ALTER COLUMN), so at most one of
|
|
139
|
+
* `addColumn` / `setNotNull` / `setDataType` is ever populated. `pkRekey` rides ALONGSIDE one of
|
|
140
|
+
* two attributes: `set collate` on a PK member, or `set not null` on a PK member whose backfill
|
|
141
|
+
* moves the key values (then `setNotNull` and `pkRekey` are both set). Bundled into one object
|
|
142
|
+
* rather than threaded as one parameter per attribute, which is what the cluster did while it
|
|
143
|
+
* lived on `IsolationModule`.
|
|
126
144
|
*/
|
|
127
145
|
export interface AlterMigrationPlan {
|
|
128
146
|
addColumn?: AddColumnBackfillContext;
|
|
@@ -156,10 +174,11 @@ export declare function assertColumnNameNotTombstone(host: AlterMigrationHost, s
|
|
|
156
174
|
* schema.table and the offending column so the owning connection's eventual
|
|
157
175
|
* read/write/commit error is self-explanatory. Poison arises on the addColumn NOT NULL
|
|
158
176
|
* path (a new NOT-NULL column with no usable default), the `set not null` tightening
|
|
159
|
-
* path (a staged NULL with no usable default
|
|
160
|
-
*
|
|
161
|
-
* staged
|
|
162
|
-
*
|
|
177
|
+
* path (a staged NULL with no usable default, or — on a primary-key member — two staged
|
|
178
|
+
* live rows converging on one key under the DEFAULT backfill), the `set data type` path
|
|
179
|
+
* (a staged value that cannot be converted to the new type), and the primary-key
|
|
180
|
+
* `set collate` path (two staged live rows colliding under the new collation); other
|
|
181
|
+
* change types never reach here but are handled defensively.
|
|
163
182
|
*/
|
|
164
183
|
export declare function buildAlterPoisonMessage(schemaName: string, tableName: string, change: SchemaChangeInfo): string;
|
|
165
184
|
/**
|
|
@@ -171,8 +190,14 @@ export declare function buildAlterPoisonMessage(schemaName: string, tableName: s
|
|
|
171
190
|
* attribute contexts are probed from `toMigrate[0]`'s schema, never from a skipped poisoned
|
|
172
191
|
* overlay whose schema may be a stale pre-alter layout; with no overlays to migrate there is
|
|
173
192
|
* nothing to backfill, convert or re-key, so those arms stay undefined.
|
|
193
|
+
*
|
|
194
|
+
* `underlyingRows` is the row stream the underlying's own data-dependent decisions read: the
|
|
195
|
+
* effective rows it is handed when the ISSUING transaction has staged work, else its committed
|
|
196
|
+
* rows (`IsolationModule.committedRowsOf`). The `set not null` re-key arm reads it (see
|
|
197
|
+
* {@link derivePkRekey}) because whether the underlying backfills at all — and so whether the
|
|
198
|
+
* committed keys move — is decided over exactly that stream. Async for that one scan only.
|
|
174
199
|
*/
|
|
175
|
-
export declare function deriveAlterMigrationPlan(change: SchemaChangeInfo, db: Database, tableName: string, toMigrate: readonly [string, ConnectionOverlayState][]): AlterMigrationPlan
|
|
200
|
+
export declare function deriveAlterMigrationPlan(change: SchemaChangeInfo, db: Database, tableName: string, toMigrate: readonly [string, ConnectionOverlayState][], underlyingRows: EffectiveRowSource | undefined): Promise<AlterMigrationPlan>;
|
|
176
201
|
/**
|
|
177
202
|
* Dry-runs an overlay's ALTER migration-fallible work without mutating anything,
|
|
178
203
|
* so the caller can run it for every affected overlay BEFORE the irreversible
|
|
@@ -201,7 +226,9 @@ export declare function deriveAlterMigrationPlan(change: SchemaChangeInfo, db: D
|
|
|
201
226
|
* those rows, and it must run before the migration so a failure becomes poison rather than a
|
|
202
227
|
* half-migrated overlay.
|
|
203
228
|
*
|
|
204
|
-
* For a primary-key re-
|
|
229
|
+
* For a primary-key re-key (`plan.pkRekey` — `set collate` on a PK member, or a `set not null`
|
|
230
|
+
* backfill that moves a PK member's values; the tightening arm above deliberately does NOT
|
|
231
|
+
* return early when a DEFAULT exists, so it reaches this block), the staged rows are grouped by
|
|
205
232
|
* their POST-change key: a deletion marker sharing a key with one live row is that row's
|
|
206
233
|
* before-image (the migrate step discards it — {@link dropCollapsedPkRekeyMarkers}), and
|
|
207
234
|
* markers alone on one key are one deletion — neither is a duplicate. Two LIVE rows on one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alter-migration.d.ts","sourceRoot":"","sources":["../../src/alter-migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAA8B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"alter-migration.d.ts","sourceRoot":"","sources":["../../src/alter-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,10 +34,11 @@ export function assertColumnNameNotTombstone(host, schemaName, tableName, change
|
|
|
34
34
|
* schema.table and the offending column so the owning connection's eventual
|
|
35
35
|
* read/write/commit error is self-explanatory. Poison arises on the addColumn NOT NULL
|
|
36
36
|
* path (a new NOT-NULL column with no usable default), the `set not null` tightening
|
|
37
|
-
* path (a staged NULL with no usable default
|
|
38
|
-
*
|
|
39
|
-
* staged
|
|
40
|
-
*
|
|
37
|
+
* path (a staged NULL with no usable default, or — on a primary-key member — two staged
|
|
38
|
+
* live rows converging on one key under the DEFAULT backfill), the `set data type` path
|
|
39
|
+
* (a staged value that cannot be converted to the new type), and the primary-key
|
|
40
|
+
* `set collate` path (two staged live rows colliding under the new collation); other
|
|
41
|
+
* change types never reach here but are handled defensively.
|
|
41
42
|
*/
|
|
42
43
|
export function buildAlterPoisonMessage(schemaName, tableName, change) {
|
|
43
44
|
if (change.type === 'addColumn') {
|
|
@@ -50,7 +51,7 @@ export function buildAlterPoisonMessage(schemaName, tableName, change) {
|
|
|
50
51
|
if (change.setCollation !== undefined) {
|
|
51
52
|
return `ALTER on '${schemaName}.${tableName}' changed the collation of primary-key column '${change.columnName}', under which this connection's uncommitted rows collide; roll back this transaction.`;
|
|
52
53
|
}
|
|
53
|
-
return `ALTER on '${schemaName}.${tableName}' tightened column '${change.columnName}' to NOT NULL, which this connection's uncommitted
|
|
54
|
+
return `ALTER on '${schemaName}.${tableName}' tightened column '${change.columnName}' to NOT NULL, which this connection's uncommitted rows cannot satisfy (a NULL with no usable default, or two rows converging on one primary key under the backfill); roll back this transaction.`;
|
|
54
55
|
}
|
|
55
56
|
if (change.type === 'alterPrimaryKey') {
|
|
56
57
|
return `ALTER on '${schemaName}.${tableName}' changed the table's primary key, which this connection's uncommitted rows cannot follow; roll back this transaction.`;
|
|
@@ -66,13 +67,20 @@ export function buildAlterPoisonMessage(schemaName, tableName, change) {
|
|
|
66
67
|
* attribute contexts are probed from `toMigrate[0]`'s schema, never from a skipped poisoned
|
|
67
68
|
* overlay whose schema may be a stale pre-alter layout; with no overlays to migrate there is
|
|
68
69
|
* nothing to backfill, convert or re-key, so those arms stay undefined.
|
|
70
|
+
*
|
|
71
|
+
* `underlyingRows` is the row stream the underlying's own data-dependent decisions read: the
|
|
72
|
+
* effective rows it is handed when the ISSUING transaction has staged work, else its committed
|
|
73
|
+
* rows (`IsolationModule.committedRowsOf`). The `set not null` re-key arm reads it (see
|
|
74
|
+
* {@link derivePkRekey}) because whether the underlying backfills at all — and so whether the
|
|
75
|
+
* committed keys move — is decided over exactly that stream. Async for that one scan only.
|
|
69
76
|
*/
|
|
70
|
-
export function deriveAlterMigrationPlan(change, db, tableName, toMigrate) {
|
|
77
|
+
export async function deriveAlterMigrationPlan(change, db, tableName, toMigrate, underlyingRows) {
|
|
78
|
+
const setNotNull = deriveSetNotNullBackfill(change, toMigrate);
|
|
71
79
|
return {
|
|
72
80
|
addColumn: deriveAddColumnBackfill(change, db, tableName),
|
|
73
|
-
setNotNull
|
|
81
|
+
setNotNull,
|
|
74
82
|
setDataType: deriveSetDataTypeConvert(change, toMigrate),
|
|
75
|
-
pkRekey: derivePkRekey(change, db, tableName, toMigrate),
|
|
83
|
+
pkRekey: await derivePkRekey(change, db, tableName, toMigrate, setNotNull, underlyingRows),
|
|
76
84
|
};
|
|
77
85
|
}
|
|
78
86
|
/**
|
|
@@ -199,21 +207,35 @@ function deriveSetDataTypeConvert(change, toMigrate) {
|
|
|
199
207
|
return { colIndex, convert };
|
|
200
208
|
}
|
|
201
209
|
/**
|
|
202
|
-
* Precomputes the per-ALTER constants a primary-key re-keying `alter column
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
* committed rows re-key
|
|
212
|
-
*
|
|
213
|
-
*
|
|
210
|
+
* Precomputes the per-ALTER constants a primary-key re-keying `alter column` overlay migration
|
|
211
|
+
* needs: the PK column positions and a serializer that keys a PK tuple as the POST-change key.
|
|
212
|
+
* Two attributes re-key:
|
|
213
|
+
*
|
|
214
|
+
* - `set collate` on a PK member: the serializer is built over the PRE-alter overlay schema
|
|
215
|
+
* with the named column's collation replaced. The overlay's PK definition mirrors the base's
|
|
216
|
+
* (the tombstone flag is appended after the data columns), so the synthesized schema keys
|
|
217
|
+
* exactly as the re-keyed base will. Undefined when the normalized collation equals the
|
|
218
|
+
* column's current one — mirroring the underlying's metadata-only gate
|
|
219
|
+
* (`MemoryTableManager.alterColumn`'s `nameMatches`), so overlay and committed rows re-key
|
|
220
|
+
* together or not at all. `validateCollationForType` can throw for an unknown collation, but
|
|
221
|
+
* the engine already validated the name before dispatching the ALTER, and a direct module
|
|
222
|
+
* caller gets the same pre-mutation rejection the underlying would give.
|
|
223
|
+
* - `set not null` on a PK member with a usable DEFAULT: the serializer keys the BACKFILLED
|
|
224
|
+
* tuple — NULL at the tightened column replaced by the folded DEFAULT — under the unchanged
|
|
225
|
+
* collations. Undefined unless the underlying will actually rewrite, which both underlyings
|
|
226
|
+
* decide the same way: a NULL is visible in the rows they read (`underlyingRows` — the
|
|
227
|
+
* issuer's effective rows when it has staged work, else the committed rows). When none is,
|
|
228
|
+
* the tightening is metadata-only there, the committed keys do not move, and a staged
|
|
229
|
+
* deletion marker at a NULL key must keep pointing at the still-NULL committed row — so the
|
|
230
|
+
* overlay must not re-key either. This is the isolation-layer counterpart of
|
|
231
|
+
* `TransactionLayer.convertColumn`'s deletion re-key: without it a marker minted for a
|
|
232
|
+
* NULL-keyed committed row would delete nothing at flush, and the row the transaction
|
|
233
|
+
* deleted would come back with the backfilled value.
|
|
234
|
+
*
|
|
235
|
+
* Returns undefined for every other change, and whenever there is no overlay to migrate.
|
|
214
236
|
*/
|
|
215
|
-
function derivePkRekey(change, db, tableName, toMigrate) {
|
|
216
|
-
if (change.type !== 'alterColumn'
|
|
237
|
+
async function derivePkRekey(change, db, tableName, toMigrate, setNotNull, underlyingRows) {
|
|
238
|
+
if (change.type !== 'alterColumn')
|
|
217
239
|
return undefined;
|
|
218
240
|
const overlaySchema = probeOverlaySchema(toMigrate);
|
|
219
241
|
if (!overlaySchema)
|
|
@@ -226,18 +248,43 @@ function derivePkRekey(change, db, tableName, toMigrate) {
|
|
|
226
248
|
const oldCol = overlaySchema.columns[colIndex];
|
|
227
249
|
if (!oldCol)
|
|
228
250
|
return undefined;
|
|
229
|
-
const
|
|
230
|
-
if (
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
keyOf: makePkKeySerializer(db, postChangeSchema),
|
|
239
|
-
|
|
240
|
-
|
|
251
|
+
const pkIndices = overlaySchema.primaryKeyDefinition.map(def => def.index);
|
|
252
|
+
if (change.setCollation !== undefined) {
|
|
253
|
+
const normalized = validateCollationForType(change.setCollation, oldCol.logicalType, change.columnName, (n) => db.isCollationRegistered(n));
|
|
254
|
+
if (normalized === (oldCol.collation || 'BINARY'))
|
|
255
|
+
return undefined; // metadata-only — the underlying re-keys nothing
|
|
256
|
+
const postChangeSchema = {
|
|
257
|
+
...overlaySchema,
|
|
258
|
+
columns: overlaySchema.columns.map((c, i) => (i === colIndex ? { ...c, collation: normalized } : c)),
|
|
259
|
+
};
|
|
260
|
+
return { pkIndices, keyOf: makePkKeySerializer(db, postChangeSchema), forwardedViaAlterSchema: true, tableName };
|
|
261
|
+
}
|
|
262
|
+
if (setNotNull?.hasDefault && setNotNull.colIndex === colIndex) {
|
|
263
|
+
// NOTE: one extra scan of the underlying's rows per key-member `set not null` with open
|
|
264
|
+
// overlays (the underlying repeats it for its own gate; a stream is single-shot and the
|
|
265
|
+
// answer is not handed down). Fine for DDL this rare; if it ever shows up, thread the
|
|
266
|
+
// answer to the underlying instead of re-deriving it here.
|
|
267
|
+
if (!underlyingRows || !await anyRowNullAt(underlyingRows, colIndex))
|
|
268
|
+
return undefined; // metadata-only tightening — keys stay
|
|
269
|
+
const keyPos = pkIndices.indexOf(colIndex);
|
|
270
|
+
const fill = setNotNull.foldedDefault;
|
|
271
|
+
const serialize = makePkKeySerializer(db, overlaySchema);
|
|
272
|
+
return {
|
|
273
|
+
pkIndices,
|
|
274
|
+
keyOf: (pk) => serialize(pk[keyPos] === null ? pk.map((v, i) => (i === keyPos ? fill : v)) : pk),
|
|
275
|
+
forwardedViaAlterSchema: false,
|
|
276
|
+
tableName,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
return undefined;
|
|
280
|
+
}
|
|
281
|
+
/** True when any row of the effective stream holds NULL at `colIndex` — the underlyings' backfill gate. */
|
|
282
|
+
async function anyRowNullAt(rows, colIndex) {
|
|
283
|
+
for await (const row of rows()) {
|
|
284
|
+
if (row[colIndex] === null)
|
|
285
|
+
return true;
|
|
286
|
+
}
|
|
287
|
+
return false;
|
|
241
288
|
}
|
|
242
289
|
/**
|
|
243
290
|
* Buckets an overlay's staged rows by their PRIMARY KEY as the pending `set collate` will
|
|
@@ -295,7 +342,9 @@ async function collectPkRekeyGroups(overlay, tombstoneIdx, ctx) {
|
|
|
295
342
|
* those rows, and it must run before the migration so a failure becomes poison rather than a
|
|
296
343
|
* half-migrated overlay.
|
|
297
344
|
*
|
|
298
|
-
* For a primary-key re-
|
|
345
|
+
* For a primary-key re-key (`plan.pkRekey` — `set collate` on a PK member, or a `set not null`
|
|
346
|
+
* backfill that moves a PK member's values; the tightening arm above deliberately does NOT
|
|
347
|
+
* return early when a DEFAULT exists, so it reaches this block), the staged rows are grouped by
|
|
299
348
|
* their POST-change key: a deletion marker sharing a key with one live row is that row's
|
|
300
349
|
* before-image (the migrate step discards it — {@link dropCollapsedPkRekeyMarkers}), and
|
|
301
350
|
* markers alone on one key are one deletion — neither is a duplicate. Two LIVE rows on one
|
|
@@ -327,7 +376,9 @@ export async function validateOverlayMigration(host, oldState, plan) {
|
|
|
327
376
|
return;
|
|
328
377
|
}
|
|
329
378
|
// SET NOT NULL with no usable DEFAULT: reject a staged NULL the forward could not fill.
|
|
330
|
-
// (With a DEFAULT there is nothing to reject — backfillStagedNotNull fills instead
|
|
379
|
+
// (With a DEFAULT there is nothing to reject here — backfillStagedNotNull fills instead —
|
|
380
|
+
// and control falls through to the re-key block below, which the backfill of a PK member
|
|
381
|
+
// populates.)
|
|
331
382
|
if (plan.setNotNull && !plan.setNotNull.hasDefault) {
|
|
332
383
|
const setNotNullCtx = plan.setNotNull;
|
|
333
384
|
for await (const oldRow of stagedLiveRows(oldOverlay, oldTombstoneIdx)) {
|
|
@@ -348,17 +399,20 @@ export async function validateOverlayMigration(host, oldState, plan) {
|
|
|
348
399
|
}
|
|
349
400
|
return;
|
|
350
401
|
}
|
|
351
|
-
//
|
|
352
|
-
// key are a real duplicate — refuse before the
|
|
353
|
-
// poison for a foreign overlay via the caller).
|
|
354
|
-
// collapse cleanly and are handled by the migrate step,
|
|
402
|
+
// A PRIMARY-KEY re-key (SET COLLATE, or the SET NOT NULL backfill of a key member): two
|
|
403
|
+
// staged LIVE rows landing on one post-change key are a real duplicate — refuse before the
|
|
404
|
+
// underlying re-keys (atomic for the issuer, poison for a foreign overlay via the caller).
|
|
405
|
+
// Marker/live and marker/marker groups collapse cleanly and are handled by the migrate step,
|
|
406
|
+
// not rejected here.
|
|
355
407
|
if (plan.pkRekey) {
|
|
356
408
|
const pkRekeyCtx = plan.pkRekey;
|
|
357
409
|
for (const group of (await collectPkRekeyGroups(oldOverlay, oldTombstoneIdx, pkRekeyCtx)).values()) {
|
|
358
410
|
if (group.livePks.length < 2)
|
|
359
411
|
continue;
|
|
412
|
+
// Name the colliding key by the second row's OLD tuple — what the user staged; the
|
|
413
|
+
// underlyings name it by the post-change tuple. Same message shape either way.
|
|
360
414
|
const keyDesc = group.livePks[1].map(formatKeyValue).join(', ');
|
|
361
|
-
throw new QuereusError(`UNIQUE constraint failed: ${pkRekeyCtx.tableName} primary key collides under new
|
|
415
|
+
throw new QuereusError(`UNIQUE constraint failed: ${pkRekeyCtx.tableName} primary key collides under the new key definition (key: ${keyDesc})`, StatusCode.CONSTRAINT);
|
|
362
416
|
}
|
|
363
417
|
}
|
|
364
418
|
}
|
|
@@ -531,7 +585,11 @@ function buildOverlayAddColumnChange(host, change, addColumnCtx, overlayTable) {
|
|
|
531
585
|
* is not a row) or reject it outright when no usable DEFAULT exists. The base's NOT NULL
|
|
532
586
|
* is enforced where it belongs — by the underlying over the issuer's effective rows, and
|
|
533
587
|
* per overlay by {@link validateOverlayMigration} — and the staged LIVE rows' NULLs are
|
|
534
|
-
* filled here via {@link backfillStagedNotNull}.
|
|
588
|
+
* filled here via {@link backfillStagedNotNull}. When the tightened column is a PRIMARY-KEY
|
|
589
|
+
* member whose backfill the underlying applies (`pkRekeyCtx`), the backfill IS a re-key: the
|
|
590
|
+
* collapsed deletion markers are dropped first (exactly as for `set collate`), and the
|
|
591
|
+
* backfill then also fills the markers' own key value — a marker carries the REAL key of the
|
|
592
|
+
* committed row it deletes, and that row's key has just moved under it in the underlying.
|
|
535
593
|
* - **Relaxing (`drop not null`).** Nothing to do: the overlay never enforced the flag, and
|
|
536
594
|
* the rows it stages are written with `preCoerced: true` through the overlay module's own
|
|
537
595
|
* write path, which does not consult column nullability at all.
|
|
@@ -552,7 +610,12 @@ function buildOverlayAddColumnChange(host, change, addColumnCtx, overlayTable) {
|
|
|
552
610
|
async function forwardAlterColumnToOverlay(host, overlayState, change, setNotNullCtx, pkRekeyCtx) {
|
|
553
611
|
if (change.setNotNull !== undefined) {
|
|
554
612
|
if (change.setNotNull === true && setNotNullCtx?.hasDefault) {
|
|
555
|
-
|
|
613
|
+
// Key-member backfill: drop the markers the backfill collapses onto a live row BEFORE
|
|
614
|
+
// the rewrites — the overlay's PK covers markers, so the update moving a live row onto
|
|
615
|
+
// a marker's post-backfill key would otherwise be refused as a PK collision.
|
|
616
|
+
if (pkRekeyCtx)
|
|
617
|
+
await dropCollapsedPkRekeyMarkers(host, overlayState, pkRekeyCtx);
|
|
618
|
+
await backfillStagedNotNull(host, overlayState, setNotNullCtx, pkRekeyCtx !== undefined);
|
|
556
619
|
}
|
|
557
620
|
return;
|
|
558
621
|
}
|
|
@@ -571,8 +634,9 @@ async function forwardAlterColumnToOverlay(host, overlayState, change, setNotNul
|
|
|
571
634
|
* are one deletion, so all but the first are dropped. A group holding two live rows was
|
|
572
635
|
* already refused by {@link validateOverlayMigration} before the underlying mutated.
|
|
573
636
|
*
|
|
574
|
-
* Runs BEFORE the re-key
|
|
575
|
-
*
|
|
637
|
+
* Runs BEFORE the re-key reaches the overlay (the `set collate` forward, or the `set not null`
|
|
638
|
+
* backfill's rewrites), and deletes by each marker's OLD primary key — the overlay is still
|
|
639
|
+
* keyed under the old collation / the pre-backfill values at that moment.
|
|
576
640
|
*
|
|
577
641
|
* NOTE: like {@link backfillStagedNotNull}'s rewrites, the drops land in the overlay's
|
|
578
642
|
* CURRENT savepoint frame. A later `rollback to savepoint` taken BEFORE this ALTER restores
|
|
@@ -668,8 +732,17 @@ function requireTombstoneIndex(host, overlaySchema) {
|
|
|
668
732
|
* non-tombstone row holding NULL at the tightened column is rewritten with the column's
|
|
669
733
|
* folded literal DEFAULT through the overlay's ordinary write path, so the overlay's layer
|
|
670
734
|
* chain and savepoint snapshots stay intact — the overlay-side mirror of the value rewrite
|
|
671
|
-
* the underlying applies to its committed rows. Tombstone rows are never touched
|
|
672
|
-
* ({@link stagedLiveRows}).
|
|
735
|
+
* the underlying applies to its committed rows. Tombstone rows are normally never touched
|
|
736
|
+
* ({@link stagedLiveRows}): their non-key columns hold placeholder NULLs, not values.
|
|
737
|
+
*
|
|
738
|
+
* `rekeysMarkers` — set when the tightened column is a PRIMARY-KEY member whose backfill the
|
|
739
|
+
* underlying applies (a `PkRekeyContext` exists) — widens the pass to the tombstone rows too.
|
|
740
|
+
* At a KEY column a marker's value is not a placeholder but the real key of the committed row
|
|
741
|
+
* it deletes, and the underlying has just backfilled that row's key under it; a marker left at
|
|
742
|
+
* the NULL key would delete nothing at flush and the row the transaction deleted would come
|
|
743
|
+
* back with the backfilled value. The caller has already dropped every marker that collapses
|
|
744
|
+
* onto a live row ({@link dropCollapsedPkRekeyMarkers}), and both underlyings refuse a pair of
|
|
745
|
+
* committed rows converging on one key, so no two rewritten rows can land on one key here.
|
|
673
746
|
*
|
|
674
747
|
* Only called with a usable DEFAULT ({@link SetNotNullBackfillContext.hasDefault}); the
|
|
675
748
|
* no-DEFAULT case rejects (issuer) or poisons (foreign) in {@link validateOverlayMigration}
|
|
@@ -682,7 +755,7 @@ function requireTombstoneIndex(host, overlaySchema) {
|
|
|
682
755
|
* row un-inserted past an ADD CONSTRAINT, say — tracked by the backlog ticket
|
|
683
756
|
* `bug-rolled-back-rows-violate-surviving-ddl`, not a new hole opened by this forward.
|
|
684
757
|
*/
|
|
685
|
-
async function backfillStagedNotNull(host, overlayState, ctx) {
|
|
758
|
+
async function backfillStagedNotNull(host, overlayState, ctx, rekeysMarkers) {
|
|
686
759
|
const overlay = overlayState.overlayTable;
|
|
687
760
|
const overlaySchema = overlay.tableSchema;
|
|
688
761
|
if (!overlaySchema || !overlay.query)
|
|
@@ -692,7 +765,8 @@ async function backfillStagedNotNull(host, overlayState, ctx) {
|
|
|
692
765
|
// Materialize before writing: the rewrites mutate the overlay's pending layer the
|
|
693
766
|
// scan is reading through.
|
|
694
767
|
const toFill = [];
|
|
695
|
-
|
|
768
|
+
const candidates = rekeysMarkers ? overlay.query(makeFullScanFilterInfo()) : stagedLiveRows(overlay, tombstoneIdx);
|
|
769
|
+
for await (const row of candidates) {
|
|
696
770
|
if (row[ctx.colIndex] === null)
|
|
697
771
|
toFill.push(row);
|
|
698
772
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alter-migration.js","sourceRoot":"","sources":["../../src/alter-migration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alter-migration.js","sourceRoot":"","sources":["../../src/alter-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,12 +41,6 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
41
41
|
* database registry.
|
|
42
42
|
*/
|
|
43
43
|
private readonly collationResolver;
|
|
44
|
-
/**
|
|
45
|
-
* `db.getKeyNormalizerResolver()`, bound once at connect beside {@link collationResolver}
|
|
46
|
-
* for the same reason: the modified-PK set's key encoding and the comparators above must
|
|
47
|
-
* agree on which rows are equal, or a staged row fails to shadow the base row it replaces.
|
|
48
|
-
*/
|
|
49
|
-
private readonly keyNormalizerResolver;
|
|
50
44
|
/**
|
|
51
45
|
* The PK key shape (per-column comparison functions and sort directions) and the
|
|
52
46
|
* equality test derived from it, memoized against the `TableSchema` object identity —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,QAAQ,EAAoB,YAAY,EAAE,GAAG,EAAY,gBAAgB,IAAI,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAe,eAAe,EAA6C,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAA+C,MAAM,kBAAkB,CAAC;AAC1V,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,QAAQ,EAAoB,YAAY,EAAE,GAAG,EAAY,gBAAgB,IAAI,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAe,eAAe,EAA6C,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAA+C,MAAM,kBAAkB,CAAC;AAC1V,OAAO,EAAE,YAAY,EAAga,MAAM,kBAAkB,CAAC;AAC9c,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AA2B1F;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,qBAAqB;IAC/E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC,OAAO,CAAC,oBAAoB,CAAmC;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqE;IAEpG;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,CAAC,CAA+D;IAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;IAClG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;OAcG;IACH,OAAO,KAAK,uBAAuB,GAElC;IAED;;;;;;;;;;;OAWG;gBAEF,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,YAAY,EAC7B,aAAa,GAAE,OAAe;IAiB/B;;OAEG;IACH,OAAO,KAAK,eAAe,GAE1B;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IACH,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;;;;;OAQG;YACW,aAAa;IAoD3B;;;;;;;;;;;;;;;;;;;;OAoBG;YACW,gBAAgB;IAY9B;;;;;;;;;;;;OAYG;YACW,eAAe;IAsC7B;;;;;;;;;;;OAWG;IACH,gBAAgB,IAAI,YAAY,CAAC,sBAAsB,CAAC;YAyB1C,qBAAqB;IAanC;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC;IAqBjD;;OAEG;YACY,yBAAyB;IAKxC;;;;;;;;;OASG;YACY,WAAW;IAsB1B;;;;;;;;;;;;;;;;;;OAkBG;YACY,yBAAyB;IA2FxC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,gBAAgB;IA6CxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,sBAAsB;IAiE9B;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IA6CpC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;;;;;;;;;;;OAkBG;YACY,0BAA0B;IAgCzC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAIrB,uFAAuF;IACvF,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,YAAY;IA8BpB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAMhC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAMjB;;;;;OAKG;IACG,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IA8QrD;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;;;;;;OASG;YACW,aAAa;IAI3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,SAAS;YAIH,gBAAgB;IAI9B;;;;;;;;;;;;;;;;OAgBG;YACW,iBAAiB;YA0BjB,oBAAoB;IAiBlC;;;;;;;;;;;OAWG;YACW,qBAAqB;IA0BnC;;;;;;;;;;;;;;;;;;;;OAoBG;YACW,wBAAwB;IAyBtC;;;;;;;OAOG;YACW,yBAAyB;IAyBvC;;;;;;;OAOG;YACW,4BAA4B;IAiC1C;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAiBlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;;;;;;;OASG;YACW,4BAA4B;IA+CpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;;;;;OAMG;YACW,YAAY;IASpB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D;;;;;;;;;;OAUG;IACG,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7E,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjD;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAc5B;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAczC;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3C;;;;;;;;;;;OAWG;IACG,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD;;OAEG;IACG,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;;;;;OAMG;IACG,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAanE"}
|