@quereus/isolation 4.13.0 → 4.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/filter-info.d.ts +12 -4
- package/dist/src/filter-info.d.ts.map +1 -1
- package/dist/src/filter-info.js +11 -3
- package/dist/src/filter-info.js.map +1 -1
- package/dist/src/flush.d.ts.map +1 -1
- package/dist/src/flush.js +14 -10
- package/dist/src/flush.js.map +1 -1
- package/dist/src/isolated-table.d.ts +58 -49
- package/dist/src/isolated-table.d.ts.map +1 -1
- package/dist/src/isolated-table.js +93 -120
- package/dist/src/isolated-table.js.map +1 -1
- package/dist/src/pk-probe.d.ts +71 -0
- package/dist/src/pk-probe.d.ts.map +1 -0
- package/dist/src/pk-probe.js +73 -0
- package/dist/src/pk-probe.js.map +1 -0
- package/package.json +3 -3
|
@@ -15,8 +15,14 @@ export { makeFullScanFilterInfo };
|
|
|
15
15
|
*
|
|
16
16
|
* The overlay always names its primary-key index `_primary_`, so the descriptor is
|
|
17
17
|
* built here rather than resolved from a schema.
|
|
18
|
+
*
|
|
19
|
+
* This is a seek REQUEST, not a contract — the module never claimed these constraints
|
|
20
|
+
* through `getBestAccessPlan`, so it may answer with any superset of the requested rows,
|
|
21
|
+
* and no engine sits above a direct `query()` call to reapply them. Callers must verify
|
|
22
|
+
* each returned row's key; see {@link probeRowByPk} in `pk-probe.ts`, which is how every
|
|
23
|
+
* primary-key probe in this package consumes the answer.
|
|
18
24
|
*/
|
|
19
|
-
export declare function makePkPointLookupFilter(pkIndices: number[], pk: SqlValue[]): FilterInfo;
|
|
25
|
+
export declare function makePkPointLookupFilter(pkIndices: readonly number[], pk: readonly SqlValue[]): FilterInfo;
|
|
20
26
|
/**
|
|
21
27
|
* Creates a FilterInfo for an equality seek over a secondary `index`, binding each of
|
|
22
28
|
* the index's key columns to `newRow`'s value for that column. Produces an O(log n)
|
|
@@ -26,9 +32,11 @@ export declare function makePkPointLookupFilter(pkIndices: number[], pk: SqlValu
|
|
|
26
32
|
* not match the UNIQUE constraint's `columns` order — so read off the index, never
|
|
27
33
|
* assume the two arrays agree.
|
|
28
34
|
*
|
|
29
|
-
*
|
|
30
|
-
* `idxStr` index hint
|
|
31
|
-
*
|
|
35
|
+
* Like {@link makePkPointLookupFilter}, this is a seek REQUEST rather than a contract:
|
|
36
|
+
* a module that ignores the `idxStr` index hint may return the whole table, and nothing
|
|
37
|
+
* between here and the module reapplies the equalities as a residual. The one caller
|
|
38
|
+
* (`findUnderlyingUniqueConflict`) stays correct because it re-checks every returned row
|
|
39
|
+
* against the constraint's columns itself — not because the equalities are enforced.
|
|
32
40
|
*/
|
|
33
41
|
export declare function makeSecondaryIndexEqSeekFilter(index: TableIndexSchema, newRow: readonly SqlValue[]): FilterInfo;
|
|
34
42
|
//# sourceMappingURL=filter-info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-info.d.ts","sourceRoot":"","sources":["../../src/filter-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAsB,sBAAsB,EAA6B,MAAM,kBAAkB,CAAC;AAEzG;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"filter-info.d.ts","sourceRoot":"","sources":["../../src/filter-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAsB,sBAAsB,EAA6B,MAAM,kBAAkB,CAAC;AAEzG;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,QAAQ,EAAE,GAAG,UAAU,CAQzG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,UAAU,CAU/G"}
|
package/dist/src/filter-info.js
CHANGED
|
@@ -14,6 +14,12 @@ export { makeFullScanFilterInfo };
|
|
|
14
14
|
*
|
|
15
15
|
* The overlay always names its primary-key index `_primary_`, so the descriptor is
|
|
16
16
|
* built here rather than resolved from a schema.
|
|
17
|
+
*
|
|
18
|
+
* This is a seek REQUEST, not a contract — the module never claimed these constraints
|
|
19
|
+
* through `getBestAccessPlan`, so it may answer with any superset of the requested rows,
|
|
20
|
+
* and no engine sits above a direct `query()` call to reapply them. Callers must verify
|
|
21
|
+
* each returned row's key; see {@link probeRowByPk} in `pk-probe.ts`, which is how every
|
|
22
|
+
* primary-key probe in this package consumes the answer.
|
|
17
23
|
*/
|
|
18
24
|
export function makePkPointLookupFilter(pkIndices, pk) {
|
|
19
25
|
const index = {
|
|
@@ -33,9 +39,11 @@ export function makePkPointLookupFilter(pkIndices, pk) {
|
|
|
33
39
|
* not match the UNIQUE constraint's `columns` order — so read off the index, never
|
|
34
40
|
* assume the two arrays agree.
|
|
35
41
|
*
|
|
36
|
-
*
|
|
37
|
-
* `idxStr` index hint
|
|
38
|
-
*
|
|
42
|
+
* Like {@link makePkPointLookupFilter}, this is a seek REQUEST rather than a contract:
|
|
43
|
+
* a module that ignores the `idxStr` index hint may return the whole table, and nothing
|
|
44
|
+
* between here and the module reapplies the equalities as a residual. The one caller
|
|
45
|
+
* (`findUnderlyingUniqueConflict`) stays correct because it re-checks every returned row
|
|
46
|
+
* against the constraint's columns itself — not because the equalities are enforced.
|
|
39
47
|
*/
|
|
40
48
|
export function makeSecondaryIndexEqSeekFilter(index, newRow) {
|
|
41
49
|
const descriptor = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-info.js","sourceRoot":"","sources":["../../src/filter-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAEzG;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"filter-info.js","sourceRoot":"","sources":["../../src/filter-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAEzG;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAA4B,EAAE,EAAuB;IAC5F,MAAM,KAAK,GAAoB;QAC9B,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,IAAI;KACZ,CAAC;IACF,OAAO,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAAuB,EAAE,MAA2B;IAClG,MAAM,UAAU,GAAoB;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACtG,MAAM,EAAE,IAAI;KACZ,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,yBAAyB,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC"}
|
package/dist/src/flush.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flush.d.ts","sourceRoot":"","sources":["../../src/flush.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKpF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,wBAAwB,CAC7C,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"flush.d.ts","sourceRoot":"","sources":["../../src/flush.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKpF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,wBAAwB,CAC7C,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOlH"}
|
package/dist/src/flush.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QuereusError, StatusCode, isConstraintViolation } from '@quereus/quereus';
|
|
2
|
-
import {
|
|
2
|
+
import { makePkEquals, probeRowByPk } from './pk-probe.js';
|
|
3
3
|
import { collectOverlayEntries } from './overlay-rows.js';
|
|
4
4
|
/**
|
|
5
5
|
* Applies every staged overlay row to the underlying table WITHOUT committing.
|
|
@@ -55,11 +55,16 @@ export async function applyOverlayToUnderlying(underlyingTable, overlayTable, to
|
|
|
55
55
|
// staged drafts). Each PK appears at most once in the overlay, so no write in
|
|
56
56
|
// this flush can change another entry's existence answer — hoisting the
|
|
57
57
|
// probes is answer-preserving as well as one fewer read per written row.
|
|
58
|
+
//
|
|
59
|
+
// The equality test is built once per flush: the probe verifies each returned row's
|
|
60
|
+
// key rather than trusting the seek, and that comparison must be the collation-aware
|
|
61
|
+
// / semantic-ordering one the rest of the layer keys rows by.
|
|
62
|
+
const pkEquals = makePkEquals(underlyingSchema, underlyingTable.db.getCollationResolver());
|
|
58
63
|
const existsInUnderlying = new Map();
|
|
59
64
|
for (const entry of ordered) {
|
|
60
65
|
if (entry.isTombstone)
|
|
61
66
|
continue;
|
|
62
|
-
existsInUnderlying.set(entry, await rowExistsInUnderlying(underlyingTable, pkIndices, entry.pk));
|
|
67
|
+
existsInUnderlying.set(entry, await rowExistsInUnderlying(underlyingTable, pkIndices, entry.pk, pkEquals));
|
|
63
68
|
}
|
|
64
69
|
for (const entry of ordered) {
|
|
65
70
|
if (entry.isTombstone) {
|
|
@@ -96,15 +101,14 @@ export async function applyOverlayToUnderlying(underlyingTable, overlayTable, to
|
|
|
96
101
|
}
|
|
97
102
|
/**
|
|
98
103
|
* Checks if a row with the given primary key exists in the underlying table.
|
|
99
|
-
*
|
|
104
|
+
*
|
|
105
|
+
* Drives the PK index for an O(log n) lookup where the module can serve one, but
|
|
106
|
+
* verifies the key of every row it gets back — see {@link probeRowByPk}. Believing an
|
|
107
|
+
* unverified first row here classifies a fresh PK as an `update`, which writes against a
|
|
108
|
+
* key that does not exist and silently loses the row.
|
|
100
109
|
*/
|
|
101
|
-
async function rowExistsInUnderlying(underlyingTable, pkIndices, pk) {
|
|
102
|
-
|
|
103
|
-
return false;
|
|
104
|
-
for await (const _row of underlyingTable.query(makePkPointLookupFilter(pkIndices, pk))) {
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
return false;
|
|
110
|
+
async function rowExistsInUnderlying(underlyingTable, pkIndices, pk, pkEquals) {
|
|
111
|
+
return (await probeRowByPk(underlyingTable, pkIndices, pk, pkEquals)) !== undefined;
|
|
108
112
|
}
|
|
109
113
|
/**
|
|
110
114
|
* Asserts that an underlying write performed during the commit flush succeeded.
|
package/dist/src/flush.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flush.js","sourceRoot":"","sources":["../../src/flush.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"flush.js","sourceRoot":"","sources":["../../src/flush.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,21 +48,14 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
48
48
|
*/
|
|
49
49
|
private readonly keyNormalizerResolver;
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
51
|
+
* The PK key shape (per-column comparison functions and sort directions) and the
|
|
52
|
+
* equality test derived from it, memoized against the `TableSchema` object identity —
|
|
53
|
+
* an `alter table` hands this instance a fresh (frozen) schema object, which
|
|
54
|
+
* invalidates the entry. Both are built by `pk-probe.ts`, which is also what the
|
|
55
|
+
* commit flush uses, so the merge order, the write path's "same logical key" test,
|
|
56
|
+
* and the flush's existence probes cannot drift apart.
|
|
55
57
|
*/
|
|
56
|
-
private
|
|
57
|
-
/**
|
|
58
|
-
* Per-PK-column typed EQUALITY comparators for semantic-ordering members (TIMESPAN,
|
|
59
|
-
* JSON — see the engine's `hasSemanticOrdering`), `undefined` elsewhere. The
|
|
60
|
-
* underlying backends collapse semantically-equal PK spellings onto one row (the
|
|
61
|
-
* memory table's typed BTree; the store's `groupKey`-transformed key bytes), so
|
|
62
|
-
* shadowing and self-PK questions here must call 'PT1H' and 'PT60M' the same key
|
|
63
|
-
* too. Memoized against the schema object like {@link pkCollationCache}.
|
|
64
|
-
*/
|
|
65
|
-
private pkSemanticCache?;
|
|
58
|
+
private pkShapeCache?;
|
|
66
59
|
/**
|
|
67
60
|
* The `VirtualTable` statistics pair, forwarded to the wrapped table.
|
|
68
61
|
*
|
|
@@ -92,7 +85,6 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
92
85
|
*/
|
|
93
86
|
readonly getStatistics?: () => Promise<TableStatistics | undefined> | TableStatistics | undefined;
|
|
94
87
|
readonly saveStatistics?: (stats: TableStatistics) => Promise<void>;
|
|
95
|
-
private getPkSemanticComparators;
|
|
96
88
|
/**
|
|
97
89
|
* Returns the connection-scoped set of savepoint depths that pre-date the overlay.
|
|
98
90
|
* Stored in IsolationModule (keyed by db+schema+table) so all IsolatedTable instances
|
|
@@ -286,12 +278,17 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
286
278
|
*/
|
|
287
279
|
private adaptFilterInfoForOverlay;
|
|
288
280
|
/**
|
|
289
|
-
* Builds the window predicate for the overlay side of a merged
|
|
281
|
+
* Builds the window predicate for the overlay side of a merged read.
|
|
290
282
|
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
283
|
+
* Both merged paths need it, for the same reason: the overlay's stream is not bound by
|
|
284
|
+
* the constraints the underlying negotiated. A merged secondary read full-scans the
|
|
285
|
+
* overlay outright (it cannot resolve an underlying-minted index name); a merged primary
|
|
286
|
+
* read hands the overlay the underlying's FilterInfo, which the overlay module never
|
|
287
|
+
* claimed and may legally answer with a superset. Either way this predicate re-applies
|
|
288
|
+
* the pushed constraints that the underlying's index seek enforces on its own stream.
|
|
289
|
+
*
|
|
290
|
+
* Returns the shared {@link MATCH_ALL_ROWS} when the scan pushes no window, so callers
|
|
291
|
+
* can skip the per-row call entirely on the full-scan path.
|
|
295
292
|
*
|
|
296
293
|
* Interpretation follows the plan kind:
|
|
297
294
|
* - `scan` pushes no window — everything matches.
|
|
@@ -349,6 +346,19 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
349
346
|
*
|
|
350
347
|
* Uses the same FilterInfo as the underlying query so both streams are in the same order.
|
|
351
348
|
* For secondary index scans, the sort key includes both the index key and primary key.
|
|
349
|
+
*
|
|
350
|
+
* The window is re-applied here rather than trusted: `filterInfo` was negotiated with
|
|
351
|
+
* the UNDERLYING module, and the engine dropped the residual on the underlying's claim,
|
|
352
|
+
* but the OVERLAY module never claimed anything. A module is entitled to answer a seek
|
|
353
|
+
* it cannot serve with any superset of the requested rows — up to the whole table — so a
|
|
354
|
+
* host-supplied scan-only `IsolationConfig.overlay` would otherwise merge staged rows
|
|
355
|
+
* from outside the query's window into the answer. This is the same re-check
|
|
356
|
+
* {@link mergedSecondaryIndexQuery} already runs over its full overlay scan, and a no-op
|
|
357
|
+
* (the identity matcher) for the full-scan reads the default memory overlay serves.
|
|
358
|
+
*
|
|
359
|
+
* Tombstones bypass the window deliberately: a tombstone carries null non-PK columns, so
|
|
360
|
+
* a window over a non-key column would reject it, and an out-of-window tombstone is inert
|
|
361
|
+
* anyway — it can only shadow a PK the underlying stream does not carry.
|
|
352
362
|
*/
|
|
353
363
|
private queryOverlayAsMergeEntries;
|
|
354
364
|
/**
|
|
@@ -368,33 +378,18 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
368
378
|
*/
|
|
369
379
|
private buildMergeConfig;
|
|
370
380
|
/**
|
|
371
|
-
* Per-PK-column comparison functions for this table's current
|
|
372
|
-
* against THIS database's collation registry (so
|
|
373
|
-
* participate) rather than the process-global built-in
|
|
374
|
-
*
|
|
375
|
-
* A PK column with no declared `COLLATE` resolves to BINARY; a PK definition
|
|
376
|
-
* shorter than the key being compared (or absent entirely) yields BINARY for the
|
|
377
|
-
* trailing positions, matching the prior `collation === undefined` behaviour.
|
|
381
|
+
* Per-PK-column comparison functions and sort directions for this table's current
|
|
382
|
+
* schema, resolved against THIS database's collation registry (so
|
|
383
|
+
* `db.registerCollation` names participate) rather than the process-global built-in
|
|
384
|
+
* trio. See {@link makePkKeyShape} for what each comparator is.
|
|
378
385
|
*
|
|
379
386
|
* Memoized on the schema object so comparator construction — and the per-call
|
|
380
|
-
* {@link keysEqual} — never re-resolves per row.
|
|
381
|
-
* collation registered *after* a comparator was built is not picked up, the same
|
|
382
|
-
* contract `Database.registerCollation` documents engine-wide.
|
|
383
|
-
*
|
|
384
|
-
* NOTE: this is the *comparison* collation only. The store's physical key bytes are
|
|
385
|
-
* produced by the key NORMALIZER of the same collation, resolved through the same
|
|
386
|
-
* connection's registry (`bug-store-key-encoder-ignores-database-collations`, landed),
|
|
387
|
-
* so the two agree on equality — but only on ORDER for a collation asserting
|
|
388
|
-
* `orderPreserving` (see docs/store.md § Order preservation).
|
|
387
|
+
* {@link keysEqual} — never re-resolves per row.
|
|
389
388
|
*/
|
|
390
|
-
private getPkCollations;
|
|
391
|
-
/**
|
|
392
|
-
* Per-PK-column sort directions (`true` ⇒ DESC), positionally aligned with
|
|
393
|
-
* {@link getPkCollations}. Only the ordering comparator needs them; `keysEqual`
|
|
394
|
-
* asks about equality, which direction cannot change.
|
|
395
|
-
*/
|
|
396
|
-
private getPkDirections;
|
|
397
389
|
private getPkKeyShape;
|
|
390
|
+
/** The collation-aware / semantic-ordering "same logical key" test for this schema. */
|
|
391
|
+
private getPkEquals;
|
|
392
|
+
private getPkShapeEntry;
|
|
398
393
|
/**
|
|
399
394
|
* Gets the primary key comparator, preferring the underlying table's comparator.
|
|
400
395
|
*/
|
|
@@ -468,24 +463,38 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
468
463
|
*/
|
|
469
464
|
private attachEvicted;
|
|
470
465
|
/**
|
|
471
|
-
* Gets a row from the overlay by primary key
|
|
466
|
+
* Gets a row from the overlay by primary key, driving an O(log n) point lookup and
|
|
467
|
+
* verifying the key of whatever comes back (see {@link probeRowByPk}). The overlay
|
|
468
|
+
* schema appends the tombstone column AFTER the table's own columns, so the table's
|
|
469
|
+
* PK column indices address the overlay row unchanged.
|
|
470
|
+
*
|
|
471
|
+
* The default overlay is a memory table that serves the seek, so verification is a
|
|
472
|
+
* no-op there; it is load-bearing when a host supplies a scan-only module as
|
|
473
|
+
* `IsolationConfig.overlay`.
|
|
472
474
|
*/
|
|
473
475
|
private getOverlayRow;
|
|
474
476
|
/**
|
|
475
477
|
* Creates a FilterInfo for a full table scan (no constraints).
|
|
476
478
|
*/
|
|
477
479
|
private createFullScanFilterInfo;
|
|
478
|
-
/**
|
|
479
|
-
* Creates a FilterInfo for a primary key point lookup (equality on all PK columns).
|
|
480
|
-
* This produces O(log n) lookups instead of O(n) full scans.
|
|
481
|
-
*/
|
|
482
|
-
private buildPKPointLookupFilter;
|
|
483
480
|
/**
|
|
484
481
|
* Returns the compiled predicate for a partial-UNIQUE constraint, or undefined
|
|
485
482
|
* when the constraint covers the full table. Compilation is memoized per
|
|
486
483
|
* UniqueConstraintSchema instance so the hot UNIQUE-check path doesn't recompile.
|
|
487
484
|
*/
|
|
488
485
|
private compileFor;
|
|
486
|
+
/**
|
|
487
|
+
* "Same logical key?" — compared under each PK column's declared collation, not
|
|
488
|
+
* BINARY. The underlying store keys rows collation-aware (e.g. a NOCASE text PK), so
|
|
489
|
+
* a case-only PK rewrite ('apple' → 'APPLE') is the SAME logical key. A binary
|
|
490
|
+
* comparison here would mis-classify it as a PK relocation, then resolve the "new"
|
|
491
|
+
* key back to the same physical underlying row and raise a false UNIQUE PK conflict.
|
|
492
|
+
* A semantic-ordering member compares through its type's `compare` for the same
|
|
493
|
+
* reason: both backends key 'PT1H' and 'PT60M' as one row.
|
|
494
|
+
*
|
|
495
|
+
* This is the same function the PK probes verify their returned rows with — one
|
|
496
|
+
* definition, so the write path and the probes cannot disagree about key identity.
|
|
497
|
+
*/
|
|
489
498
|
private keysEqual;
|
|
490
499
|
private getUnderlyingRow;
|
|
491
500
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
import { VirtualTable, compareSqlValues, compareSqlValuesFast,
|
|
1
|
+
import { VirtualTable, compareSqlValues, compareSqlValuesFast, BINARY_COLLATION, isUpdateOk, ConflictResolution, compilePredicate, QuereusError, StatusCode, resolveUniqueEnforcementCollations, uniqueEnforcementCollations, uniqueEnforcementComparators, normalizeCollationName, serializeKey, pkKeyCollationName, retargetFilterInfoIndex, PRIMARY_INDEX_NAME, coerceRowToSchema, IndexConstraintOp, decodeIdxStr, createTypedComparator, hasSemanticOrdering, semanticKeyTransform } from '@quereus/quereus';
|
|
2
2
|
import { IsolatedConnection } from './isolated-connection.js';
|
|
3
3
|
import { mergeStreams, createMergeEntry, createTombstone } from './merge-iterator.js';
|
|
4
|
-
import { makeFullScanFilterInfo,
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { makeFullScanFilterInfo, makeSecondaryIndexEqSeekFilter } from './filter-info.js';
|
|
5
|
+
import { EMPTY_PK_KEY_SHAPE, makePkKeyShape, pkEqualsFromShape, probeRowByPk } from './pk-probe.js';
|
|
6
|
+
/** The cache entry served while `tableSchema` is still unpopulated; never mutated. */
|
|
7
|
+
const EMPTY_PK_SHAPE_ENTRY = {
|
|
8
|
+
shape: EMPTY_PK_KEY_SHAPE,
|
|
9
|
+
equals: pkEqualsFromShape(EMPTY_PK_KEY_SHAPE),
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The window matcher {@link IsolatedTable.buildConstraintMatcher} returns when the scan
|
|
13
|
+
* pushes no window at all. Shared (rather than a fresh closure per call) so a caller can
|
|
14
|
+
* identity-test it and skip the per-row call on the full-scan path.
|
|
15
|
+
*/
|
|
16
|
+
const MATCH_ALL_ROWS = (_row) => true;
|
|
7
17
|
/**
|
|
8
18
|
* A table wrapper that provides transaction isolation via an overlay.
|
|
9
19
|
*
|
|
@@ -49,21 +59,14 @@ export class IsolatedTable extends VirtualTable {
|
|
|
49
59
|
*/
|
|
50
60
|
keyNormalizerResolver;
|
|
51
61
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
62
|
+
* The PK key shape (per-column comparison functions and sort directions) and the
|
|
63
|
+
* equality test derived from it, memoized against the `TableSchema` object identity —
|
|
64
|
+
* an `alter table` hands this instance a fresh (frozen) schema object, which
|
|
65
|
+
* invalidates the entry. Both are built by `pk-probe.ts`, which is also what the
|
|
66
|
+
* commit flush uses, so the merge order, the write path's "same logical key" test,
|
|
67
|
+
* and the flush's existence probes cannot drift apart.
|
|
56
68
|
*/
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Per-PK-column typed EQUALITY comparators for semantic-ordering members (TIMESPAN,
|
|
60
|
-
* JSON — see the engine's `hasSemanticOrdering`), `undefined` elsewhere. The
|
|
61
|
-
* underlying backends collapse semantically-equal PK spellings onto one row (the
|
|
62
|
-
* memory table's typed BTree; the store's `groupKey`-transformed key bytes), so
|
|
63
|
-
* shadowing and self-PK questions here must call 'PT1H' and 'PT60M' the same key
|
|
64
|
-
* too. Memoized against the schema object like {@link pkCollationCache}.
|
|
65
|
-
*/
|
|
66
|
-
pkSemanticCache;
|
|
69
|
+
pkShapeCache;
|
|
67
70
|
/**
|
|
68
71
|
* The `VirtualTable` statistics pair, forwarded to the wrapped table.
|
|
69
72
|
*
|
|
@@ -93,21 +96,6 @@ export class IsolatedTable extends VirtualTable {
|
|
|
93
96
|
*/
|
|
94
97
|
getStatistics;
|
|
95
98
|
saveStatistics;
|
|
96
|
-
getPkSemanticComparators() {
|
|
97
|
-
const schema = this.tableSchema;
|
|
98
|
-
if (!schema)
|
|
99
|
-
return [];
|
|
100
|
-
if (this.pkSemanticCache?.schema !== schema) {
|
|
101
|
-
this.pkSemanticCache = {
|
|
102
|
-
schema,
|
|
103
|
-
comparators: (schema.primaryKeyDefinition ?? []).map(pk => {
|
|
104
|
-
const logicalType = schema.columns[pk.index]?.logicalType;
|
|
105
|
-
return hasSemanticOrdering(logicalType) ? createTypedComparator(logicalType) : undefined;
|
|
106
|
-
}),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
return this.pkSemanticCache.comparators;
|
|
110
|
-
}
|
|
111
99
|
/**
|
|
112
100
|
* Returns the connection-scoped set of savepoint depths that pre-date the overlay.
|
|
113
101
|
* Stored in IsolationModule (keyed by db+schema+table) so all IsolatedTable instances
|
|
@@ -609,12 +597,17 @@ export class IsolatedTable extends VirtualTable {
|
|
|
609
597
|
return filterInfo;
|
|
610
598
|
}
|
|
611
599
|
/**
|
|
612
|
-
* Builds the window predicate for the overlay side of a merged
|
|
600
|
+
* Builds the window predicate for the overlay side of a merged read.
|
|
613
601
|
*
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
*
|
|
602
|
+
* Both merged paths need it, for the same reason: the overlay's stream is not bound by
|
|
603
|
+
* the constraints the underlying negotiated. A merged secondary read full-scans the
|
|
604
|
+
* overlay outright (it cannot resolve an underlying-minted index name); a merged primary
|
|
605
|
+
* read hands the overlay the underlying's FilterInfo, which the overlay module never
|
|
606
|
+
* claimed and may legally answer with a superset. Either way this predicate re-applies
|
|
607
|
+
* the pushed constraints that the underlying's index seek enforces on its own stream.
|
|
608
|
+
*
|
|
609
|
+
* Returns the shared {@link MATCH_ALL_ROWS} when the scan pushes no window, so callers
|
|
610
|
+
* can skip the per-row call entirely on the full-scan path.
|
|
618
611
|
*
|
|
619
612
|
* Interpretation follows the plan kind:
|
|
620
613
|
* - `scan` pushes no window — everything matches.
|
|
@@ -640,7 +633,7 @@ export class IsolatedTable extends VirtualTable {
|
|
|
640
633
|
// Only 'index' paths reach the merged secondary read (resolveScanIndex gates on
|
|
641
634
|
// the access path first); an ordering-only walk pushes no window.
|
|
642
635
|
if (path?.kind !== 'index' || path.plan === 'scan') {
|
|
643
|
-
return
|
|
636
|
+
return MATCH_ALL_ROWS;
|
|
644
637
|
}
|
|
645
638
|
if (path.plan === 'multiRangeSeek') {
|
|
646
639
|
return this.buildMultiRangeWindowMatcher(filterInfo, path.index);
|
|
@@ -673,7 +666,7 @@ export class IsolatedTable extends VirtualTable {
|
|
|
673
666
|
}
|
|
674
667
|
}
|
|
675
668
|
if (windows.size === 0)
|
|
676
|
-
return
|
|
669
|
+
return MATCH_ALL_ROWS;
|
|
677
670
|
const entries = [...windows.entries()];
|
|
678
671
|
return (row) => {
|
|
679
672
|
for (const [columnIndex, window] of entries) {
|
|
@@ -785,6 +778,19 @@ export class IsolatedTable extends VirtualTable {
|
|
|
785
778
|
*
|
|
786
779
|
* Uses the same FilterInfo as the underlying query so both streams are in the same order.
|
|
787
780
|
* For secondary index scans, the sort key includes both the index key and primary key.
|
|
781
|
+
*
|
|
782
|
+
* The window is re-applied here rather than trusted: `filterInfo` was negotiated with
|
|
783
|
+
* the UNDERLYING module, and the engine dropped the residual on the underlying's claim,
|
|
784
|
+
* but the OVERLAY module never claimed anything. A module is entitled to answer a seek
|
|
785
|
+
* it cannot serve with any superset of the requested rows — up to the whole table — so a
|
|
786
|
+
* host-supplied scan-only `IsolationConfig.overlay` would otherwise merge staged rows
|
|
787
|
+
* from outside the query's window into the answer. This is the same re-check
|
|
788
|
+
* {@link mergedSecondaryIndexQuery} already runs over its full overlay scan, and a no-op
|
|
789
|
+
* (the identity matcher) for the full-scan reads the default memory overlay serves.
|
|
790
|
+
*
|
|
791
|
+
* Tombstones bypass the window deliberately: a tombstone carries null non-PK columns, so
|
|
792
|
+
* a window over a non-key column would reject it, and an out-of-window tombstone is inert
|
|
793
|
+
* anyway — it can only shadow a PK the underlying stream does not carry.
|
|
788
794
|
*/
|
|
789
795
|
async *queryOverlayAsMergeEntries(overlay, filterInfo, indexInfo) {
|
|
790
796
|
if (!overlay.query) {
|
|
@@ -792,6 +798,7 @@ export class IsolatedTable extends VirtualTable {
|
|
|
792
798
|
}
|
|
793
799
|
const pkIndices = this.getPrimaryKeyIndices();
|
|
794
800
|
const tombstoneIndex = this.getTombstoneColumnIndex(overlay);
|
|
801
|
+
const matchesWindow = this.buildConstraintMatcher(filterInfo);
|
|
795
802
|
// Query overlay with the same filter constraints
|
|
796
803
|
for await (const overlayRow of overlay.query(filterInfo)) {
|
|
797
804
|
const isTombstone = overlayRow[tombstoneIndex] === 1;
|
|
@@ -804,6 +811,8 @@ export class IsolatedTable extends VirtualTable {
|
|
|
804
811
|
else {
|
|
805
812
|
// Remove the tombstone column from the row before yielding
|
|
806
813
|
const dataRow = overlayRow.slice(0, tombstoneIndex);
|
|
814
|
+
if (matchesWindow !== MATCH_ALL_ROWS && !matchesWindow(dataRow))
|
|
815
|
+
continue;
|
|
807
816
|
yield createMergeEntry(dataRow, pk, sortKey);
|
|
808
817
|
}
|
|
809
818
|
}
|
|
@@ -876,49 +885,30 @@ export class IsolatedTable extends VirtualTable {
|
|
|
876
885
|
};
|
|
877
886
|
}
|
|
878
887
|
/**
|
|
879
|
-
* Per-PK-column comparison functions for this table's current
|
|
880
|
-
* against THIS database's collation registry (so
|
|
881
|
-
* participate) rather than the process-global built-in
|
|
882
|
-
*
|
|
883
|
-
* A PK column with no declared `COLLATE` resolves to BINARY; a PK definition
|
|
884
|
-
* shorter than the key being compared (or absent entirely) yields BINARY for the
|
|
885
|
-
* trailing positions, matching the prior `collation === undefined` behaviour.
|
|
888
|
+
* Per-PK-column comparison functions and sort directions for this table's current
|
|
889
|
+
* schema, resolved against THIS database's collation registry (so
|
|
890
|
+
* `db.registerCollation` names participate) rather than the process-global built-in
|
|
891
|
+
* trio. See {@link makePkKeyShape} for what each comparator is.
|
|
886
892
|
*
|
|
887
893
|
* Memoized on the schema object so comparator construction — and the per-call
|
|
888
|
-
* {@link keysEqual} — never re-resolves per row.
|
|
889
|
-
* collation registered *after* a comparator was built is not picked up, the same
|
|
890
|
-
* contract `Database.registerCollation` documents engine-wide.
|
|
891
|
-
*
|
|
892
|
-
* NOTE: this is the *comparison* collation only. The store's physical key bytes are
|
|
893
|
-
* produced by the key NORMALIZER of the same collation, resolved through the same
|
|
894
|
-
* connection's registry (`bug-store-key-encoder-ignores-database-collations`, landed),
|
|
895
|
-
* so the two agree on equality — but only on ORDER for a collation asserting
|
|
896
|
-
* `orderPreserving` (see docs/store.md § Order preservation).
|
|
894
|
+
* {@link keysEqual} — never re-resolves per row.
|
|
897
895
|
*/
|
|
898
|
-
|
|
899
|
-
return this.
|
|
896
|
+
getPkKeyShape() {
|
|
897
|
+
return this.getPkShapeEntry().shape;
|
|
900
898
|
}
|
|
901
|
-
/**
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
* asks about equality, which direction cannot change.
|
|
905
|
-
*/
|
|
906
|
-
getPkDirections() {
|
|
907
|
-
return this.getPkKeyShape().directions;
|
|
899
|
+
/** The collation-aware / semantic-ordering "same logical key" test for this schema. */
|
|
900
|
+
getPkEquals() {
|
|
901
|
+
return this.getPkShapeEntry().equals;
|
|
908
902
|
}
|
|
909
|
-
|
|
903
|
+
getPkShapeEntry() {
|
|
910
904
|
const schema = this.tableSchema;
|
|
911
905
|
if (!schema)
|
|
912
|
-
return
|
|
913
|
-
if (this.
|
|
914
|
-
const
|
|
915
|
-
this.
|
|
916
|
-
schema,
|
|
917
|
-
functions: resolveCollationFunctions(this.collationResolver, pkDef.map(pk => schema.columns[pk.index]?.collation)),
|
|
918
|
-
directions: pkDef.map(pk => !!pk.desc),
|
|
919
|
-
};
|
|
906
|
+
return EMPTY_PK_SHAPE_ENTRY;
|
|
907
|
+
if (this.pkShapeCache?.schema !== schema) {
|
|
908
|
+
const shape = makePkKeyShape(schema, this.collationResolver);
|
|
909
|
+
this.pkShapeCache = { schema, shape, equals: pkEqualsFromShape(shape) };
|
|
920
910
|
}
|
|
921
|
-
return this.
|
|
911
|
+
return this.pkShapeCache;
|
|
922
912
|
}
|
|
923
913
|
/**
|
|
924
914
|
* Gets the primary key comparator, preferring the underlying table's comparator.
|
|
@@ -939,14 +929,13 @@ export class IsolatedTable extends VirtualTable {
|
|
|
939
929
|
// A semantic-ordering member compares through its type's `compare` — both the
|
|
940
930
|
// memory table's typed BTree and the store's groupKey-transformed key bytes
|
|
941
931
|
// emit in that order, and its equality is what shadowing needs ('PT1H' ≡ 'PT60M').
|
|
942
|
-
const
|
|
943
|
-
const directions = this.getPkDirections();
|
|
944
|
-
const semantic = this.getPkSemanticComparators();
|
|
932
|
+
const { compares, directions } = this.getPkKeyShape();
|
|
945
933
|
return (a, b) => {
|
|
946
934
|
for (let i = 0; i < a.length; i++) {
|
|
947
|
-
const
|
|
948
|
-
|
|
949
|
-
|
|
935
|
+
const compare = compares[i];
|
|
936
|
+
const cmp = compare
|
|
937
|
+
? compare(a[i], b[i])
|
|
938
|
+
: compareSqlValuesFast(a[i], b[i], BINARY_COLLATION);
|
|
950
939
|
if (cmp !== 0)
|
|
951
940
|
return directions[i] ? -cmp : cmp;
|
|
952
941
|
}
|
|
@@ -1346,15 +1335,17 @@ export class IsolatedTable extends VirtualTable {
|
|
|
1346
1335
|
return { ...result, evictedRows };
|
|
1347
1336
|
}
|
|
1348
1337
|
/**
|
|
1349
|
-
* Gets a row from the overlay by primary key
|
|
1338
|
+
* Gets a row from the overlay by primary key, driving an O(log n) point lookup and
|
|
1339
|
+
* verifying the key of whatever comes back (see {@link probeRowByPk}). The overlay
|
|
1340
|
+
* schema appends the tombstone column AFTER the table's own columns, so the table's
|
|
1341
|
+
* PK column indices address the overlay row unchanged.
|
|
1342
|
+
*
|
|
1343
|
+
* The default overlay is a memory table that serves the seek, so verification is a
|
|
1344
|
+
* no-op there; it is load-bearing when a host supplies a scan-only module as
|
|
1345
|
+
* `IsolationConfig.overlay`.
|
|
1350
1346
|
*/
|
|
1351
1347
|
async getOverlayRow(overlay, pk) {
|
|
1352
|
-
|
|
1353
|
-
return undefined;
|
|
1354
|
-
for await (const row of overlay.query(this.buildPKPointLookupFilter(pk))) {
|
|
1355
|
-
return row;
|
|
1356
|
-
}
|
|
1357
|
-
return undefined;
|
|
1348
|
+
return probeRowByPk(overlay, this.getPrimaryKeyIndices(), pk, this.getPkEquals());
|
|
1358
1349
|
}
|
|
1359
1350
|
/**
|
|
1360
1351
|
* Creates a FilterInfo for a full table scan (no constraints).
|
|
@@ -1362,13 +1353,6 @@ export class IsolatedTable extends VirtualTable {
|
|
|
1362
1353
|
createFullScanFilterInfo() {
|
|
1363
1354
|
return makeFullScanFilterInfo();
|
|
1364
1355
|
}
|
|
1365
|
-
/**
|
|
1366
|
-
* Creates a FilterInfo for a primary key point lookup (equality on all PK columns).
|
|
1367
|
-
* This produces O(log n) lookups instead of O(n) full scans.
|
|
1368
|
-
*/
|
|
1369
|
-
buildPKPointLookupFilter(pk) {
|
|
1370
|
-
return makePkPointLookupFilter(this.getPrimaryKeyIndices(), pk);
|
|
1371
|
-
}
|
|
1372
1356
|
// ==================== Merged-View Conflict Detection ====================
|
|
1373
1357
|
/**
|
|
1374
1358
|
* Returns the compiled predicate for a partial-UNIQUE constraint, or undefined
|
|
@@ -1385,34 +1369,23 @@ export class IsolatedTable extends VirtualTable {
|
|
|
1385
1369
|
}
|
|
1386
1370
|
return compiled;
|
|
1387
1371
|
}
|
|
1372
|
+
/**
|
|
1373
|
+
* "Same logical key?" — compared under each PK column's declared collation, not
|
|
1374
|
+
* BINARY. The underlying store keys rows collation-aware (e.g. a NOCASE text PK), so
|
|
1375
|
+
* a case-only PK rewrite ('apple' → 'APPLE') is the SAME logical key. A binary
|
|
1376
|
+
* comparison here would mis-classify it as a PK relocation, then resolve the "new"
|
|
1377
|
+
* key back to the same physical underlying row and raise a false UNIQUE PK conflict.
|
|
1378
|
+
* A semantic-ordering member compares through its type's `compare` for the same
|
|
1379
|
+
* reason: both backends key 'PT1H' and 'PT60M' as one row.
|
|
1380
|
+
*
|
|
1381
|
+
* This is the same function the PK probes verify their returned rows with — one
|
|
1382
|
+
* definition, so the write path and the probes cannot disagree about key identity.
|
|
1383
|
+
*/
|
|
1388
1384
|
keysEqual(a, b) {
|
|
1389
|
-
|
|
1390
|
-
return false;
|
|
1391
|
-
// Compare under each PK column's declared collation, not BINARY. The underlying
|
|
1392
|
-
// store keys rows collation-aware (e.g. a NOCASE text PK), so a case-only PK
|
|
1393
|
-
// rewrite ('apple' → 'APPLE') is the SAME logical key. A binary comparison here
|
|
1394
|
-
// would mis-classify it as a PK relocation, then resolve the "new" key back to the
|
|
1395
|
-
// same physical underlying row and raise a false UNIQUE PK conflict. A
|
|
1396
|
-
// semantic-ordering member compares through its type's `compare` for the same
|
|
1397
|
-
// reason: both backends key 'PT1H' and 'PT60M' as one row.
|
|
1398
|
-
const collations = this.getPkCollations();
|
|
1399
|
-
const semantic = this.getPkSemanticComparators();
|
|
1400
|
-
for (let i = 0; i < a.length; i++) {
|
|
1401
|
-
const cmp = semantic[i]
|
|
1402
|
-
? semantic[i](a[i], b[i])
|
|
1403
|
-
: compareSqlValuesFast(a[i], b[i], collations[i] ?? BINARY_COLLATION);
|
|
1404
|
-
if (cmp !== 0)
|
|
1405
|
-
return false;
|
|
1406
|
-
}
|
|
1407
|
-
return true;
|
|
1385
|
+
return this.getPkEquals()(a, b);
|
|
1408
1386
|
}
|
|
1409
1387
|
async getUnderlyingRow(pk) {
|
|
1410
|
-
|
|
1411
|
-
return undefined;
|
|
1412
|
-
for await (const row of this.underlyingTable.query(this.buildPKPointLookupFilter(pk))) {
|
|
1413
|
-
return row;
|
|
1414
|
-
}
|
|
1415
|
-
return undefined;
|
|
1388
|
+
return probeRowByPk(this.underlyingTable, this.getPrimaryKeyIndices(), pk, this.getPkEquals());
|
|
1416
1389
|
}
|
|
1417
1390
|
/**
|
|
1418
1391
|
* Writes a relocated row at `newPK` in the overlay for a PK-changing UPDATE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolated-table.js","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"isolated-table.js","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { CollationResolver, Row, SqlValue, TableSchema, VirtualTable } from '@quereus/quereus';
|
|
2
|
+
/** Compares one primary-key column's values. Returns <0 / 0 / >0 like `compareSqlValues`. */
|
|
3
|
+
type ColumnCompare = (a: SqlValue, b: SqlValue) => number;
|
|
4
|
+
/**
|
|
5
|
+
* Per-primary-key-column comparison functions plus each column's declared sort direction.
|
|
6
|
+
*
|
|
7
|
+
* Each comparator is the type's own `compare` for a semantic-ordering column (TIMESPAN,
|
|
8
|
+
* JSON — see the engine's `hasSemanticOrdering`), else `compareSqlValuesFast` under the
|
|
9
|
+
* column's declared collation. Both backends collapse semantically-equal spellings onto
|
|
10
|
+
* one row (the memory table's typed BTree; the store's `groupKey`-transformed key bytes)
|
|
11
|
+
* and key rows collation-aware, so the isolation layer must call 'PT1H' and 'PT60M' — and
|
|
12
|
+
* 'apple' and 'APPLE' under NOCASE — the same key too.
|
|
13
|
+
*
|
|
14
|
+
* `directions` is the ORDERING half and is positionally aligned with `compares`; equality
|
|
15
|
+
* ignores it, since direction cannot change whether two values are equal.
|
|
16
|
+
*
|
|
17
|
+
* Build this ONCE per schema, above any row loop: the collation resolver throws on an
|
|
18
|
+
* unregistered name and is not inlinable. Resolution is not retroactive — a collation
|
|
19
|
+
* registered *after* the shape was built is not picked up, the same contract
|
|
20
|
+
* `Database.registerCollation` documents engine-wide.
|
|
21
|
+
*
|
|
22
|
+
* NOTE: these are the *comparison* collations only. The store's physical key bytes are
|
|
23
|
+
* produced by the key NORMALIZER of the same collation, resolved through the same
|
|
24
|
+
* connection's registry, so the two agree on equality — but only on ORDER for a collation
|
|
25
|
+
* asserting `orderPreserving` (see docs/store.md § Order preservation).
|
|
26
|
+
*/
|
|
27
|
+
export interface PkKeyShape {
|
|
28
|
+
readonly compares: ReadonlyArray<ColumnCompare>;
|
|
29
|
+
readonly directions: readonly boolean[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The shape of a schema that has not been populated yet; never mutated. An empty shape
|
|
33
|
+
* degrades every key position to BINARY, matching the "no PK definition" behaviour.
|
|
34
|
+
*/
|
|
35
|
+
export declare const EMPTY_PK_KEY_SHAPE: PkKeyShape;
|
|
36
|
+
/** Builds the {@link PkKeyShape} for `schema`'s primary key. */
|
|
37
|
+
export declare function makePkKeyShape(schema: TableSchema | undefined, resolveCollation: CollationResolver): PkKeyShape;
|
|
38
|
+
/**
|
|
39
|
+
* Equality over a primary-key tuple: each column under its declared collation, and a
|
|
40
|
+
* semantic-ordering type through its own comparator.
|
|
41
|
+
*/
|
|
42
|
+
export type PkEquals = (a: readonly SqlValue[], b: readonly SqlValue[]) => boolean;
|
|
43
|
+
/** Derives the equality test from an already-built {@link PkKeyShape}. */
|
|
44
|
+
export declare function pkEqualsFromShape(shape: PkKeyShape): PkEquals;
|
|
45
|
+
/**
|
|
46
|
+
* Builds a {@link PkEquals} for `schema`'s primary key. Memoize the result per schema —
|
|
47
|
+
* this sits on the per-write path.
|
|
48
|
+
*/
|
|
49
|
+
export declare function makePkEquals(schema: TableSchema | undefined, resolveCollation: CollationResolver): PkEquals;
|
|
50
|
+
/**
|
|
51
|
+
* Finds the row of `table` carrying `pk`, driving the primary-key index when the module
|
|
52
|
+
* can serve it.
|
|
53
|
+
*
|
|
54
|
+
* A hand-built FilterInfo is a REQUEST, not a contract: the module never negotiated these
|
|
55
|
+
* constraints through `getBestAccessPlan`, so it may legitimately answer with any superset
|
|
56
|
+
* of the requested rows — up to the whole table — and there is no engine above a direct
|
|
57
|
+
* `query()` call to reapply the constraints as a residual. Every yielded row is therefore
|
|
58
|
+
* checked against `pk` before it is believed.
|
|
59
|
+
*
|
|
60
|
+
* The check runs over the WHOLE iteration rather than stopping at row #1: stopping would
|
|
61
|
+
* turn a false positive ("some unrelated row exists ⇒ the key is taken") into a false
|
|
62
|
+
* negative ("row #1 is not it ⇒ the key is free"), which lets a genuine duplicate key
|
|
63
|
+
* through. For a module that actually seeks, the iteration is one row and nothing changes.
|
|
64
|
+
*
|
|
65
|
+
* NOTE: a module that cannot seek the primary key now pays a full scan per probe instead
|
|
66
|
+
* of returning a wrong answer. If a scan-only backend ever shows up as slow on
|
|
67
|
+
* write-heavy transactions, cache the probe per statement — do not restore the trust.
|
|
68
|
+
*/
|
|
69
|
+
export declare function probeRowByPk(table: VirtualTable, pkIndices: readonly number[], pk: readonly SqlValue[], pkEquals: PkEquals): Promise<Row | undefined>;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=pk-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-probe.d.ts","sourceRoot":"","sources":["../../src/pk-probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUvH,6FAA6F;AAC7F,KAAK,aAAa,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;AAK1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAA6C,CAAC;AAE/E,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,UAAU,CAc/G;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,QAAQ,EAAE,EAAE,CAAC,EAAE,SAAS,QAAQ,EAAE,KAAK,OAAO,CAAC;AAEnF,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAS7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,QAAQ,CAE3G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,EAAE,EAAE,SAAS,QAAQ,EAAE,EACvB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAM1B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BINARY_COLLATION, compareSqlValuesFast, createTypedComparator, hasSemanticOrdering, resolveCollationFunctions, } from '@quereus/quereus';
|
|
2
|
+
import { makePkPointLookupFilter } from './filter-info.js';
|
|
3
|
+
/** Fallback for a key position past the end of the primary-key definition. */
|
|
4
|
+
const BINARY_COMPARE = (a, b) => compareSqlValuesFast(a, b, BINARY_COLLATION);
|
|
5
|
+
/**
|
|
6
|
+
* The shape of a schema that has not been populated yet; never mutated. An empty shape
|
|
7
|
+
* degrades every key position to BINARY, matching the "no PK definition" behaviour.
|
|
8
|
+
*/
|
|
9
|
+
export const EMPTY_PK_KEY_SHAPE = { compares: [], directions: [] };
|
|
10
|
+
/** Builds the {@link PkKeyShape} for `schema`'s primary key. */
|
|
11
|
+
export function makePkKeyShape(schema, resolveCollation) {
|
|
12
|
+
if (!schema)
|
|
13
|
+
return EMPTY_PK_KEY_SHAPE;
|
|
14
|
+
const pkDef = schema.primaryKeyDefinition ?? [];
|
|
15
|
+
const collations = resolveCollationFunctions(resolveCollation, pkDef.map(pk => schema.columns[pk.index]?.collation));
|
|
16
|
+
const compares = pkDef.map((pk, i) => {
|
|
17
|
+
const logicalType = schema.columns[pk.index]?.logicalType;
|
|
18
|
+
if (hasSemanticOrdering(logicalType))
|
|
19
|
+
return createTypedComparator(logicalType);
|
|
20
|
+
const collation = collations[i] ?? BINARY_COLLATION;
|
|
21
|
+
return (a, b) => compareSqlValuesFast(a, b, collation);
|
|
22
|
+
});
|
|
23
|
+
return { compares, directions: pkDef.map(pk => !!pk.desc) };
|
|
24
|
+
}
|
|
25
|
+
/** Derives the equality test from an already-built {@link PkKeyShape}. */
|
|
26
|
+
export function pkEqualsFromShape(shape) {
|
|
27
|
+
const { compares } = shape;
|
|
28
|
+
return (a, b) => {
|
|
29
|
+
if (a.length !== b.length)
|
|
30
|
+
return false;
|
|
31
|
+
for (let i = 0; i < a.length; i++) {
|
|
32
|
+
if ((compares[i] ?? BINARY_COMPARE)(a[i], b[i]) !== 0)
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Builds a {@link PkEquals} for `schema`'s primary key. Memoize the result per schema —
|
|
40
|
+
* this sits on the per-write path.
|
|
41
|
+
*/
|
|
42
|
+
export function makePkEquals(schema, resolveCollation) {
|
|
43
|
+
return pkEqualsFromShape(makePkKeyShape(schema, resolveCollation));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Finds the row of `table` carrying `pk`, driving the primary-key index when the module
|
|
47
|
+
* can serve it.
|
|
48
|
+
*
|
|
49
|
+
* A hand-built FilterInfo is a REQUEST, not a contract: the module never negotiated these
|
|
50
|
+
* constraints through `getBestAccessPlan`, so it may legitimately answer with any superset
|
|
51
|
+
* of the requested rows — up to the whole table — and there is no engine above a direct
|
|
52
|
+
* `query()` call to reapply the constraints as a residual. Every yielded row is therefore
|
|
53
|
+
* checked against `pk` before it is believed.
|
|
54
|
+
*
|
|
55
|
+
* The check runs over the WHOLE iteration rather than stopping at row #1: stopping would
|
|
56
|
+
* turn a false positive ("some unrelated row exists ⇒ the key is taken") into a false
|
|
57
|
+
* negative ("row #1 is not it ⇒ the key is free"), which lets a genuine duplicate key
|
|
58
|
+
* through. For a module that actually seeks, the iteration is one row and nothing changes.
|
|
59
|
+
*
|
|
60
|
+
* NOTE: a module that cannot seek the primary key now pays a full scan per probe instead
|
|
61
|
+
* of returning a wrong answer. If a scan-only backend ever shows up as slow on
|
|
62
|
+
* write-heavy transactions, cache the probe per statement — do not restore the trust.
|
|
63
|
+
*/
|
|
64
|
+
export async function probeRowByPk(table, pkIndices, pk, pkEquals) {
|
|
65
|
+
if (!table.query)
|
|
66
|
+
return undefined;
|
|
67
|
+
for await (const row of table.query(makePkPointLookupFilter(pkIndices, pk))) {
|
|
68
|
+
if (pkEquals(pkIndices.map(i => row[i]), pk))
|
|
69
|
+
return row;
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=pk-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-probe.js","sourceRoot":"","sources":["../../src/pk-probe.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quereus/isolation",
|
|
3
|
-
"version": "4.13.
|
|
3
|
+
"version": "4.13.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Generic transaction isolation layer for Quereus virtual table modules",
|
|
6
6
|
"keywords": [
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
"test:single": "cd ../.. && node --import ./packages/quereus-isolation/register.mjs node_modules/mocha/bin/mocha.js --bail"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@quereus/quereus": "^4.13.
|
|
44
|
+
"@quereus/quereus": "^4.13.1"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@quereus/quereus": "^4.13.
|
|
47
|
+
"@quereus/quereus": "^4.13.1"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/mocha": "^10.0.10",
|