@quereus/isolation 4.12.1 → 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.
@@ -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
- * The built `constraints` carry an EQ per key column, so a module that ignores the
30
- * `idxStr` index hint still applies the equalities as a residual filter rather than
31
- * returning the whole table.
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;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,UAAU,CAQvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,UAAU,CAU/G"}
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"}
@@ -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
- * The built `constraints` carry an EQ per key column, so a module that ignores the
37
- * `idxStr` index hint still applies the equalities as a residual filter rather than
38
- * returning the whole table.
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;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAmB,EAAE,EAAc;IAC1E,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;;;;;;;;;;;;GAYG;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"}
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"}
@@ -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,CAwEf;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOlH"}
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 { makePkPointLookupFilter } from './filter-info.js';
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
- * Uses an O(log n) point lookup via the PK index.
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
- if (!underlyingTable.query)
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.
@@ -1 +1 @@
1
- {"version":3,"file":"flush.js","sourceRoot":"","sources":["../../src/flush.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flush.js","sourceRoot":"","sources":["../../src/flush.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Database, MaybePromise, Row, TableIndexSchema as IndexSchema, FilterInfo, SchemaChangeInfo, UpdateArgs, VirtualTableConnection, UpdateResult } from '@quereus/quereus';
1
+ import type { Database, MaybePromise, Row, TableIndexSchema as IndexSchema, FilterInfo, SchemaChangeInfo, TableStatistics, UpdateArgs, VirtualTableConnection, UpdateResult } from '@quereus/quereus';
2
2
  import { VirtualTable } from '@quereus/quereus';
3
3
  import type { EffectiveRowSource } from '@quereus/quereus';
4
4
  import type { IsolationModule } from './isolation-module.js';
@@ -48,22 +48,43 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
48
48
  */
49
49
  private readonly keyNormalizerResolver;
50
50
  /**
51
- * Per-PK-column comparison functions and sort directions, resolved from the PK
52
- * columns' declared collations and memoized against the `TableSchema` object
53
- * identity — an `alter table` hands this instance a fresh (frozen) schema object,
54
- * which invalidates the entry.
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 pkCollationCache?;
58
+ private pkShapeCache?;
57
59
  /**
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}.
60
+ * The `VirtualTable` statistics pair, forwarded to the wrapped table.
61
+ *
62
+ * Declared as optional FIELDS and wired in the constructor only when the underlying
63
+ * implements the corresponding hook, so "this module reports no statistics" / "this
64
+ * module cannot store statistics" survives the wrapping. A plain delegating method
65
+ * would always be present, and `ANALYZE` reads a present `getStatistics` as a real
66
+ * report (see `collectTableStatistics` in runtime/emit/analyze.ts) and a present
67
+ * `saveStatistics` as durable storage — so an unconditional wrapper would answer for a
68
+ * module that declined to.
69
+ *
70
+ * Neither is overlay-aware, and the underlying answers for the COMMITTED base alone. That
71
+ * is the right answer while this connection's overlay is clean, and the wrong one the
72
+ * moment it is dirty: every other read through this table merges the overlay, so an
73
+ * `ANALYZE` inside the transaction that reported the committed size would be the one read
74
+ * that does not see this connection's own writes. So `getStatistics` DECLINES (returns
75
+ * `undefined`, which the contract reads as "collect it yourself") whenever the overlay has
76
+ * changes, and `ANALYZE` falls back to the merged scan — which folds the delta in for free,
77
+ * since it is the same scan it would have run had the underlying reported nothing.
78
+ *
79
+ * The decline is scoped to the dirty window on purpose: outside a transaction — the case
80
+ * `ANALYZE` is actually run in — the cheap exact report still wins and nothing scans.
81
+ *
82
+ * Without the `saveStatistics` half in particular, an isolated store table could never
83
+ * persist what `ANALYZE` collected for it, and nothing would say so: the hook is
84
+ * optional, so a dropped delegation is indistinguishable from a module that cannot store.
64
85
  */
65
- private pkSemanticCache?;
66
- private getPkSemanticComparators;
86
+ readonly getStatistics?: () => Promise<TableStatistics | undefined> | TableStatistics | undefined;
87
+ readonly saveStatistics?: (stats: TableStatistics) => Promise<void>;
67
88
  /**
68
89
  * Returns the connection-scoped set of savepoint depths that pre-date the overlay.
69
90
  * Stored in IsolationModule (keyed by db+schema+table) so all IsolatedTable instances
@@ -257,12 +278,17 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
257
278
  */
258
279
  private adaptFilterInfoForOverlay;
259
280
  /**
260
- * Builds the window predicate for the overlay side of a merged secondary-index read.
281
+ * Builds the window predicate for the overlay side of a merged read.
282
+ *
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.
261
289
  *
262
- * The overlay is full-scanned there (it cannot resolve an underlying-minted index
263
- * name), so every staged row surfaces — including rows outside the query's window.
264
- * This predicate re-applies the pushed constraints that the underlying's index seek
265
- * enforces on its own stream.
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.
266
292
  *
267
293
  * Interpretation follows the plan kind:
268
294
  * - `scan` pushes no window — everything matches.
@@ -320,6 +346,19 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
320
346
  *
321
347
  * Uses the same FilterInfo as the underlying query so both streams are in the same order.
322
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.
323
362
  */
324
363
  private queryOverlayAsMergeEntries;
325
364
  /**
@@ -339,33 +378,18 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
339
378
  */
340
379
  private buildMergeConfig;
341
380
  /**
342
- * Per-PK-column comparison functions for this table's current schema, resolved
343
- * against THIS database's collation registry (so `db.registerCollation` names
344
- * participate) rather than the process-global built-in trio.
345
- *
346
- * A PK column with no declared `COLLATE` resolves to BINARY; a PK definition
347
- * shorter than the key being compared (or absent entirely) yields BINARY for the
348
- * 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.
349
385
  *
350
386
  * Memoized on the schema object so comparator construction — and the per-call
351
- * {@link keysEqual} — never re-resolves per row. Resolution is not retroactive: a
352
- * collation registered *after* a comparator was built is not picked up, the same
353
- * contract `Database.registerCollation` documents engine-wide.
354
- *
355
- * NOTE: this is the *comparison* collation only. The store's physical key bytes are
356
- * produced by the key NORMALIZER of the same collation, resolved through the same
357
- * connection's registry (`bug-store-key-encoder-ignores-database-collations`, landed),
358
- * so the two agree on equality — but only on ORDER for a collation asserting
359
- * `orderPreserving` (see docs/store.md § Order preservation).
387
+ * {@link keysEqual} — never re-resolves per row.
360
388
  */
361
- private getPkCollations;
362
- /**
363
- * Per-PK-column sort directions (`true` ⇒ DESC), positionally aligned with
364
- * {@link getPkCollations}. Only the ordering comparator needs them; `keysEqual`
365
- * asks about equality, which direction cannot change.
366
- */
367
- private getPkDirections;
368
389
  private getPkKeyShape;
390
+ /** The collation-aware / semantic-ordering "same logical key" test for this schema. */
391
+ private getPkEquals;
392
+ private getPkShapeEntry;
369
393
  /**
370
394
  * Gets the primary key comparator, preferring the underlying table's comparator.
371
395
  */
@@ -439,24 +463,38 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
439
463
  */
440
464
  private attachEvicted;
441
465
  /**
442
- * Gets a row from the overlay by primary key using O(log n) point lookup.
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`.
443
474
  */
444
475
  private getOverlayRow;
445
476
  /**
446
477
  * Creates a FilterInfo for a full table scan (no constraints).
447
478
  */
448
479
  private createFullScanFilterInfo;
449
- /**
450
- * Creates a FilterInfo for a primary key point lookup (equality on all PK columns).
451
- * This produces O(log n) lookups instead of O(n) full scans.
452
- */
453
- private buildPKPointLookupFilter;
454
480
  /**
455
481
  * Returns the compiled predicate for a partial-UNIQUE constraint, or undefined
456
482
  * when the constraint covers the full table. Compilation is memoized per
457
483
  * UniqueConstraintSchema instance so the hot UNIQUE-check path doesn't recompile.
458
484
  */
459
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
+ */
460
498
  private keysEqual;
461
499
  private getUnderlyingRow;
462
500
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"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"}
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, resolveCollationFunctions, 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';
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, makePkPointLookupFilter, makeSecondaryIndexEqSeekFilter } from './filter-info.js';
5
- /** Returned when the schema has not been populated yet; never mutated. */
6
- const EMPTY_PK_KEY_SHAPE = { functions: [], directions: [] };
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,36 +59,43 @@ export class IsolatedTable extends VirtualTable {
49
59
  */
50
60
  keyNormalizerResolver;
51
61
  /**
52
- * Per-PK-column comparison functions and sort directions, resolved from the PK
53
- * columns' declared collations and memoized against the `TableSchema` object
54
- * identity — an `alter table` hands this instance a fresh (frozen) schema object,
55
- * which invalidates the entry.
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
- pkCollationCache;
69
+ pkShapeCache;
58
70
  /**
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}.
71
+ * The `VirtualTable` statistics pair, forwarded to the wrapped table.
72
+ *
73
+ * Declared as optional FIELDS and wired in the constructor only when the underlying
74
+ * implements the corresponding hook, so "this module reports no statistics" / "this
75
+ * module cannot store statistics" survives the wrapping. A plain delegating method
76
+ * would always be present, and `ANALYZE` reads a present `getStatistics` as a real
77
+ * report (see `collectTableStatistics` in runtime/emit/analyze.ts) and a present
78
+ * `saveStatistics` as durable storage — so an unconditional wrapper would answer for a
79
+ * module that declined to.
80
+ *
81
+ * Neither is overlay-aware, and the underlying answers for the COMMITTED base alone. That
82
+ * is the right answer while this connection's overlay is clean, and the wrong one the
83
+ * moment it is dirty: every other read through this table merges the overlay, so an
84
+ * `ANALYZE` inside the transaction that reported the committed size would be the one read
85
+ * that does not see this connection's own writes. So `getStatistics` DECLINES (returns
86
+ * `undefined`, which the contract reads as "collect it yourself") whenever the overlay has
87
+ * changes, and `ANALYZE` falls back to the merged scan — which folds the delta in for free,
88
+ * since it is the same scan it would have run had the underlying reported nothing.
89
+ *
90
+ * The decline is scoped to the dirty window on purpose: outside a transaction — the case
91
+ * `ANALYZE` is actually run in — the cheap exact report still wins and nothing scans.
92
+ *
93
+ * Without the `saveStatistics` half in particular, an isolated store table could never
94
+ * persist what `ANALYZE` collected for it, and nothing would say so: the hook is
95
+ * optional, so a dropped delegation is indistinguishable from a module that cannot store.
65
96
  */
66
- pkSemanticCache;
67
- getPkSemanticComparators() {
68
- const schema = this.tableSchema;
69
- if (!schema)
70
- return [];
71
- if (this.pkSemanticCache?.schema !== schema) {
72
- this.pkSemanticCache = {
73
- schema,
74
- comparators: (schema.primaryKeyDefinition ?? []).map(pk => {
75
- const logicalType = schema.columns[pk.index]?.logicalType;
76
- return hasSemanticOrdering(logicalType) ? createTypedComparator(logicalType) : undefined;
77
- }),
78
- };
79
- }
80
- return this.pkSemanticCache.comparators;
81
- }
97
+ getStatistics;
98
+ saveStatistics;
82
99
  /**
83
100
  * Returns the connection-scoped set of savepoint depths that pre-date the overlay.
84
101
  * Stored in IsolationModule (keyed by db+schema+table) so all IsolatedTable instances
@@ -119,6 +136,13 @@ export class IsolatedTable extends VirtualTable {
119
136
  this.keyNormalizerResolver = db.getKeyNormalizerResolver();
120
137
  // Schema comes from underlying - may be populated lazily by the underlying module
121
138
  this.tableSchema = underlyingTable.tableSchema;
139
+ // Statistics delegation — present iff the underlying implements it (see the fields).
140
+ const reportStats = underlyingTable.getStatistics;
141
+ if (reportStats)
142
+ this.getStatistics = () => this.hasChanges ? undefined : reportStats.call(underlyingTable);
143
+ const persistStats = underlyingTable.saveStatistics;
144
+ if (persistStats)
145
+ this.saveStatistics = stats => persistStats.call(underlyingTable, stats);
122
146
  }
123
147
  /**
124
148
  * Gets the tombstone column name from the module.
@@ -573,12 +597,17 @@ export class IsolatedTable extends VirtualTable {
573
597
  return filterInfo;
574
598
  }
575
599
  /**
576
- * Builds the window predicate for the overlay side of a merged secondary-index read.
600
+ * Builds the window predicate for the overlay side of a merged read.
601
+ *
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.
577
608
  *
578
- * The overlay is full-scanned there (it cannot resolve an underlying-minted index
579
- * name), so every staged row surfaces — including rows outside the query's window.
580
- * This predicate re-applies the pushed constraints that the underlying's index seek
581
- * enforces on its own stream.
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.
582
611
  *
583
612
  * Interpretation follows the plan kind:
584
613
  * - `scan` pushes no window — everything matches.
@@ -604,7 +633,7 @@ export class IsolatedTable extends VirtualTable {
604
633
  // Only 'index' paths reach the merged secondary read (resolveScanIndex gates on
605
634
  // the access path first); an ordering-only walk pushes no window.
606
635
  if (path?.kind !== 'index' || path.plan === 'scan') {
607
- return () => true;
636
+ return MATCH_ALL_ROWS;
608
637
  }
609
638
  if (path.plan === 'multiRangeSeek') {
610
639
  return this.buildMultiRangeWindowMatcher(filterInfo, path.index);
@@ -637,7 +666,7 @@ export class IsolatedTable extends VirtualTable {
637
666
  }
638
667
  }
639
668
  if (windows.size === 0)
640
- return () => true;
669
+ return MATCH_ALL_ROWS;
641
670
  const entries = [...windows.entries()];
642
671
  return (row) => {
643
672
  for (const [columnIndex, window] of entries) {
@@ -749,6 +778,19 @@ export class IsolatedTable extends VirtualTable {
749
778
  *
750
779
  * Uses the same FilterInfo as the underlying query so both streams are in the same order.
751
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.
752
794
  */
753
795
  async *queryOverlayAsMergeEntries(overlay, filterInfo, indexInfo) {
754
796
  if (!overlay.query) {
@@ -756,6 +798,7 @@ export class IsolatedTable extends VirtualTable {
756
798
  }
757
799
  const pkIndices = this.getPrimaryKeyIndices();
758
800
  const tombstoneIndex = this.getTombstoneColumnIndex(overlay);
801
+ const matchesWindow = this.buildConstraintMatcher(filterInfo);
759
802
  // Query overlay with the same filter constraints
760
803
  for await (const overlayRow of overlay.query(filterInfo)) {
761
804
  const isTombstone = overlayRow[tombstoneIndex] === 1;
@@ -768,6 +811,8 @@ export class IsolatedTable extends VirtualTable {
768
811
  else {
769
812
  // Remove the tombstone column from the row before yielding
770
813
  const dataRow = overlayRow.slice(0, tombstoneIndex);
814
+ if (matchesWindow !== MATCH_ALL_ROWS && !matchesWindow(dataRow))
815
+ continue;
771
816
  yield createMergeEntry(dataRow, pk, sortKey);
772
817
  }
773
818
  }
@@ -840,49 +885,30 @@ export class IsolatedTable extends VirtualTable {
840
885
  };
841
886
  }
842
887
  /**
843
- * Per-PK-column comparison functions for this table's current schema, resolved
844
- * against THIS database's collation registry (so `db.registerCollation` names
845
- * participate) rather than the process-global built-in trio.
846
- *
847
- * A PK column with no declared `COLLATE` resolves to BINARY; a PK definition
848
- * shorter than the key being compared (or absent entirely) yields BINARY for the
849
- * 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.
850
892
  *
851
893
  * Memoized on the schema object so comparator construction — and the per-call
852
- * {@link keysEqual} — never re-resolves per row. Resolution is not retroactive: a
853
- * collation registered *after* a comparator was built is not picked up, the same
854
- * contract `Database.registerCollation` documents engine-wide.
855
- *
856
- * NOTE: this is the *comparison* collation only. The store's physical key bytes are
857
- * produced by the key NORMALIZER of the same collation, resolved through the same
858
- * connection's registry (`bug-store-key-encoder-ignores-database-collations`, landed),
859
- * so the two agree on equality — but only on ORDER for a collation asserting
860
- * `orderPreserving` (see docs/store.md § Order preservation).
894
+ * {@link keysEqual} — never re-resolves per row.
861
895
  */
862
- getPkCollations() {
863
- return this.getPkKeyShape().functions;
896
+ getPkKeyShape() {
897
+ return this.getPkShapeEntry().shape;
864
898
  }
865
- /**
866
- * Per-PK-column sort directions (`true` ⇒ DESC), positionally aligned with
867
- * {@link getPkCollations}. Only the ordering comparator needs them; `keysEqual`
868
- * asks about equality, which direction cannot change.
869
- */
870
- getPkDirections() {
871
- return this.getPkKeyShape().directions;
899
+ /** The collation-aware / semantic-ordering "same logical key" test for this schema. */
900
+ getPkEquals() {
901
+ return this.getPkShapeEntry().equals;
872
902
  }
873
- getPkKeyShape() {
903
+ getPkShapeEntry() {
874
904
  const schema = this.tableSchema;
875
905
  if (!schema)
876
- return EMPTY_PK_KEY_SHAPE;
877
- if (this.pkCollationCache?.schema !== schema) {
878
- const pkDef = schema.primaryKeyDefinition ?? [];
879
- this.pkCollationCache = {
880
- schema,
881
- functions: resolveCollationFunctions(this.collationResolver, pkDef.map(pk => schema.columns[pk.index]?.collation)),
882
- directions: pkDef.map(pk => !!pk.desc),
883
- };
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) };
884
910
  }
885
- return this.pkCollationCache;
911
+ return this.pkShapeCache;
886
912
  }
887
913
  /**
888
914
  * Gets the primary key comparator, preferring the underlying table's comparator.
@@ -903,14 +929,13 @@ export class IsolatedTable extends VirtualTable {
903
929
  // A semantic-ordering member compares through its type's `compare` — both the
904
930
  // memory table's typed BTree and the store's groupKey-transformed key bytes
905
931
  // emit in that order, and its equality is what shadowing needs ('PT1H' ≡ 'PT60M').
906
- const collations = this.getPkCollations();
907
- const directions = this.getPkDirections();
908
- const semantic = this.getPkSemanticComparators();
932
+ const { compares, directions } = this.getPkKeyShape();
909
933
  return (a, b) => {
910
934
  for (let i = 0; i < a.length; i++) {
911
- const cmp = semantic[i]
912
- ? semantic[i](a[i], b[i])
913
- : compareSqlValuesFast(a[i], b[i], collations[i] ?? BINARY_COLLATION);
935
+ const compare = compares[i];
936
+ const cmp = compare
937
+ ? compare(a[i], b[i])
938
+ : compareSqlValuesFast(a[i], b[i], BINARY_COLLATION);
914
939
  if (cmp !== 0)
915
940
  return directions[i] ? -cmp : cmp;
916
941
  }
@@ -1310,15 +1335,17 @@ export class IsolatedTable extends VirtualTable {
1310
1335
  return { ...result, evictedRows };
1311
1336
  }
1312
1337
  /**
1313
- * Gets a row from the overlay by primary key using O(log n) point lookup.
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`.
1314
1346
  */
1315
1347
  async getOverlayRow(overlay, pk) {
1316
- if (!overlay.query)
1317
- return undefined;
1318
- for await (const row of overlay.query(this.buildPKPointLookupFilter(pk))) {
1319
- return row;
1320
- }
1321
- return undefined;
1348
+ return probeRowByPk(overlay, this.getPrimaryKeyIndices(), pk, this.getPkEquals());
1322
1349
  }
1323
1350
  /**
1324
1351
  * Creates a FilterInfo for a full table scan (no constraints).
@@ -1326,13 +1353,6 @@ export class IsolatedTable extends VirtualTable {
1326
1353
  createFullScanFilterInfo() {
1327
1354
  return makeFullScanFilterInfo();
1328
1355
  }
1329
- /**
1330
- * Creates a FilterInfo for a primary key point lookup (equality on all PK columns).
1331
- * This produces O(log n) lookups instead of O(n) full scans.
1332
- */
1333
- buildPKPointLookupFilter(pk) {
1334
- return makePkPointLookupFilter(this.getPrimaryKeyIndices(), pk);
1335
- }
1336
1356
  // ==================== Merged-View Conflict Detection ====================
1337
1357
  /**
1338
1358
  * Returns the compiled predicate for a partial-UNIQUE constraint, or undefined
@@ -1349,34 +1369,23 @@ export class IsolatedTable extends VirtualTable {
1349
1369
  }
1350
1370
  return compiled;
1351
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
+ */
1352
1384
  keysEqual(a, b) {
1353
- if (a.length !== b.length)
1354
- return false;
1355
- // Compare under each PK column's declared collation, not BINARY. The underlying
1356
- // store keys rows collation-aware (e.g. a NOCASE text PK), so a case-only PK
1357
- // rewrite ('apple' → 'APPLE') is the SAME logical key. A binary comparison here
1358
- // would mis-classify it as a PK relocation, then resolve the "new" key back to the
1359
- // same physical underlying row and raise a false UNIQUE PK conflict. A
1360
- // semantic-ordering member compares through its type's `compare` for the same
1361
- // reason: both backends key 'PT1H' and 'PT60M' as one row.
1362
- const collations = this.getPkCollations();
1363
- const semantic = this.getPkSemanticComparators();
1364
- for (let i = 0; i < a.length; i++) {
1365
- const cmp = semantic[i]
1366
- ? semantic[i](a[i], b[i])
1367
- : compareSqlValuesFast(a[i], b[i], collations[i] ?? BINARY_COLLATION);
1368
- if (cmp !== 0)
1369
- return false;
1370
- }
1371
- return true;
1385
+ return this.getPkEquals()(a, b);
1372
1386
  }
1373
1387
  async getUnderlyingRow(pk) {
1374
- if (!this.underlyingTable.query)
1375
- return undefined;
1376
- for await (const row of this.underlyingTable.query(this.buildPKPointLookupFilter(pk))) {
1377
- return row;
1378
- }
1379
- return undefined;
1388
+ return probeRowByPk(this.underlyingTable, this.getPrimaryKeyIndices(), pk, this.getPkEquals());
1380
1389
  }
1381
1390
  /**
1382
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.12.1",
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.12.1"
44
+ "@quereus/quereus": "^4.13.1"
45
45
  },
46
46
  "dependencies": {
47
- "@quereus/quereus": "^4.12.1"
47
+ "@quereus/quereus": "^4.13.1"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/mocha": "^10.0.10",