@quereus/isolation 4.5.0 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/src/alter-migration.d.ts +261 -0
- package/dist/src/alter-migration.d.ts.map +1 -0
- package/dist/src/alter-migration.js +827 -0
- package/dist/src/alter-migration.js.map +1 -0
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/isolated-table.d.ts +69 -26
- package/dist/src/isolated-table.d.ts.map +1 -1
- package/dist/src/isolated-table.js +102 -38
- package/dist/src/isolated-table.js.map +1 -1
- package/dist/src/isolation-module.d.ts +34 -433
- package/dist/src/isolation-module.d.ts.map +1 -1
- package/dist/src/isolation-module.js +84 -845
- package/dist/src/isolation-module.js.map +1 -1
- package/dist/src/isolation-types.d.ts +41 -1
- package/dist/src/isolation-types.d.ts.map +1 -1
- package/dist/src/overlay-rows.d.ts +5 -20
- package/dist/src/overlay-rows.d.ts.map +1 -1
- package/dist/src/overlay-rows.js +7 -31
- package/dist/src/overlay-rows.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alter-migration.js","sourceRoot":"","sources":["../../src/alter-migration.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type { MergeEntry, MergeConfig, PKComparator, PKExtractor, SortKeyComparator, SortKeyExtractor } from './merge-types.js';
|
|
2
2
|
export { mergeStreams, createMergeEntry, createTombstone } from './merge-iterator.js';
|
|
3
|
-
export type { IsolationModuleConfig } from './isolation-types.js';
|
|
4
|
-
export type { UnderlyingTableState, ConnectionOverlayState } from './isolation-module.js';
|
|
3
|
+
export type { IsolationModuleConfig, UnderlyingTableState, ConnectionOverlayState } from './isolation-types.js';
|
|
5
4
|
export { IsolationModule } from './isolation-module.js';
|
|
6
5
|
export { IsolatedTable } from './isolated-table.js';
|
|
7
6
|
export { IsolatedConnection } from './isolated-connection.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtF,YAAY,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtF,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGhH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtF,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -269,11 +269,12 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
269
269
|
* stamped GE); the real OR-of-ranges lives in the idxStr `rangeOps` parameters,
|
|
270
270
|
* decoded by {@link buildMultiRangeWindowMatcher}.
|
|
271
271
|
*
|
|
272
|
-
* Comparisons run
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
272
|
+
* Comparisons run through {@link constraintComparator} — the index key column's
|
|
273
|
+
* collation, or the declared type's `compare` for a semantic-ordering column — with
|
|
274
|
+
* seek semantics for NULL: a NULL operand or a NULL row value never matches,
|
|
275
|
+
* mirroring what an index seek returns. Operators the matcher does not interpret
|
|
276
|
+
* (LIKE, MATCH, ...) are ignored — that can only let through rows a residual Filter
|
|
277
|
+
* above still removes, never drop rows.
|
|
277
278
|
*/
|
|
278
279
|
private buildConstraintMatcher;
|
|
279
280
|
/**
|
|
@@ -284,12 +285,29 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
284
285
|
*/
|
|
285
286
|
private buildMultiRangeWindowMatcher;
|
|
286
287
|
/**
|
|
287
|
-
* Comparison
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
|
|
292
|
-
|
|
288
|
+
* Comparison function for a window-matcher column, matching the comparison the
|
|
289
|
+
* scanned module applies to its OWN stream (`StoreTableScan.matchesFilters`, the
|
|
290
|
+
* memory backend's typed BTree): a column whose declared logical type carries
|
|
291
|
+
* SEMANTIC ordering (TIMESPAN, JSON — see docs/types.md "Semantic ordering") ranks
|
|
292
|
+
* by the type's `compare`; every other column by storage class + collation. The
|
|
293
|
+
* collation is the index key column's declared one when the column is part of the
|
|
294
|
+
* scanned index (the seek's own window follows the index collation), else the table
|
|
295
|
+
* column's declared collation, else BINARY.
|
|
296
|
+
*
|
|
297
|
+
* The typed arm is a CORRECTNESS requirement, not a refinement: the underlying
|
|
298
|
+
* claimed the window's filters HANDLED, so no residual Filter survives above this
|
|
299
|
+
* merge to re-check an overlay row it lets through or drops. Under a plain text
|
|
300
|
+
* compare a `d > 'PT1H'` window admits a staged 'PT1M' and rejects a staged
|
|
301
|
+
* 'PT180M' — both inversions the type's `compare` exists to remove
|
|
302
|
+
* (`store-semantic-index-window-overlay` in isolation-layer.spec.ts).
|
|
303
|
+
*
|
|
304
|
+
* NOTE: this restates, in a second package, the rule `StoreTableScan.matchesFilters`
|
|
305
|
+
* applies to committed rows — "semantic-ordering type ⇒ the type's compare, else
|
|
306
|
+
* storage class + collation". Two comparison dimensions keep the duplication cheap; if
|
|
307
|
+
* a third ever appears, promote the pair to one shared helper in the engine rather than
|
|
308
|
+
* adding a third arm here.
|
|
309
|
+
*/
|
|
310
|
+
private constraintComparator;
|
|
293
311
|
/**
|
|
294
312
|
* Queries the overlay table and converts rows to MergeEntry format.
|
|
295
313
|
*
|
|
@@ -327,9 +345,11 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
327
345
|
* collation registered *after* a comparator was built is not picked up, the same
|
|
328
346
|
* contract `Database.registerCollation` documents engine-wide.
|
|
329
347
|
*
|
|
330
|
-
* NOTE: this is the *comparison* collation only. The store's physical key bytes
|
|
331
|
-
*
|
|
332
|
-
* `
|
|
348
|
+
* NOTE: this is the *comparison* collation only. The store's physical key bytes are
|
|
349
|
+
* produced by the key NORMALIZER of the same collation, resolved through the same
|
|
350
|
+
* connection's registry (`bug-store-key-encoder-ignores-database-collations`, landed),
|
|
351
|
+
* so the two agree on equality — but only on ORDER for a collation asserting
|
|
352
|
+
* `orderPreserving` (see docs/store.md § Order preservation).
|
|
333
353
|
*/
|
|
334
354
|
private getPkCollations;
|
|
335
355
|
/**
|
|
@@ -346,9 +366,14 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
346
366
|
/**
|
|
347
367
|
* Per-column comparators derived from an index descriptor's key columns — the
|
|
348
368
|
* fallback when the underlying exposes no `getIndexComparator` for the index
|
|
349
|
-
* (always the case for a module-minted synthetic name
|
|
369
|
+
* (always the case for a module-minted synthetic name; a store-backed index scan
|
|
370
|
+
* now supplies its own comparators via `StoreTableScan.getIndexComparator`, so
|
|
371
|
+
* this fallback no longer decides its merge order). Honors each key column's
|
|
350
372
|
* declared direction and collation so the merge walks the underlying's emission
|
|
351
|
-
* order.
|
|
373
|
+
* order. NOTE: a key column with no descriptor collation falls back to BINARY,
|
|
374
|
+
* not the table column's declared collation — widening that would also change
|
|
375
|
+
* merge order for memory-backed tables, whose index BTrees genuinely order by
|
|
376
|
+
* `specCol.collation ?? BINARY`.
|
|
352
377
|
*/
|
|
353
378
|
private buildDescriptorComparators;
|
|
354
379
|
/**
|
|
@@ -518,16 +543,34 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
|
|
|
518
543
|
*
|
|
519
544
|
* Seek only when the constraint was synthesized from a `CREATE UNIQUE INDEX`
|
|
520
545
|
* (`derivedFromIndex` names a live entry in `tableSchema.indexes`) AND every key
|
|
521
|
-
* column's
|
|
522
|
-
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
525
|
-
*
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
546
|
+
* column's index bytes are keyed under the collation this check ENFORCES under. A
|
|
547
|
+
* table-level `unique(a, b)` still falls back to the full scan: it has no index in the
|
|
548
|
+
* engine-facing schema at all (the store's `_uc_*` is enforcement-only and invisible
|
|
549
|
+
* here), so there is nothing to name in the seek.
|
|
550
|
+
*
|
|
551
|
+
* The collation half of the gate is what makes the seek sound rather than merely fast:
|
|
552
|
+
* the seek REPLACES the full scan, so a window narrower than the enforcement-equal set
|
|
553
|
+
* silently loses a UNIQUE violation. It used to demand BINARY outright, because the
|
|
554
|
+
* store keyed every index column under the table-wide key collation and ignored the
|
|
555
|
+
* connection's collation registry. Index bytes now encode under the index column's own
|
|
556
|
+
* effective collation, which for an index-derived UNIQUE IS the enforcement collation
|
|
557
|
+
* — so a collated index is seekable, and this asks per column:
|
|
558
|
+
*
|
|
559
|
+
* - never-text column (`integer`, `real`, `blob`) → seekable; its key bytes are
|
|
560
|
+
* type-native and no collation is involved.
|
|
561
|
+
* - enforcement collation BINARY → seekable; BINARY equality is byte identity, which
|
|
562
|
+
* every backend's index key preserves.
|
|
563
|
+
* - otherwise seekable only when a key-encoding backend keys the column under that
|
|
564
|
+
* same collation, which is exactly what `pkKeyCollationName` answers: a
|
|
565
|
+
* collation-aware column (`text`, `any` — `compare` honors the handed collation)
|
|
566
|
+
* keys under its own collation (seekable), while a collation-blind text-capable
|
|
567
|
+
* column — `json`, the temporal types — keys hard-`BINARY` while this check still
|
|
568
|
+
* compares under the declared name (NOT seekable; a probe for `'B@X'` would
|
|
569
|
+
* byte-miss the committed `'b@x'`).
|
|
570
|
+
*
|
|
571
|
+
* Equality is all the seek needs — order preservation is a RANGE concern and no range
|
|
572
|
+
* is built here (`makeSecondaryIndexEqSeekFilter` emits one EQ per key column and
|
|
573
|
+
* nothing else), so a custom equality-only collation is fine.
|
|
531
574
|
*/
|
|
532
575
|
private canSeekForConstraint;
|
|
533
576
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwC,QAAQ,EAAoB,YAAY,EAAE,GAAG,EAAY,gBAAgB,IAAI,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAA0D,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAA+C,MAAM,kBAAkB,CAAC;AAC5V,OAAO,EAAE,YAAY,EAA+d,MAAM,kBAAkB,CAAC;AAC7gB,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"isolated-table.d.ts","sourceRoot":"","sources":["../../src/isolated-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -414,10 +414,13 @@ export class IsolatedTable extends VirtualTable {
|
|
|
414
414
|
// string values, so the collation cannot affect how such a key buckets. Asking
|
|
415
415
|
// the resolver for it would reject `n integer collate mycoll` under a
|
|
416
416
|
// comparator-only collation, which the engine's own hash sites accept (they gate
|
|
417
|
-
// through `hashKeyCollationName`, the same predicate). A
|
|
418
|
-
// `
|
|
419
|
-
//
|
|
420
|
-
//
|
|
417
|
+
// through `hashKeyCollationName`, the same predicate). A collation-aware column
|
|
418
|
+
// (`text`, `any` — types whose `compare` honors the collation it is handed) keys
|
|
419
|
+
// under its own declared collation; a collation-blind text-capable column
|
|
420
|
+
// (`json`, the temporal types) is keyed under `'BINARY'` regardless, since PK
|
|
421
|
+
// equality compares those types through `logicalType.compare`, which is not the
|
|
422
|
+
// generic collation comparison (the temporals ignore the argument; JSON ranks
|
|
423
|
+
// structurally).
|
|
421
424
|
const pkNormalizers = pkIndices.map(i => {
|
|
422
425
|
const column = this.tableSchema.columns[i];
|
|
423
426
|
return this.keyNormalizerResolver(pkKeyCollationName(column));
|
|
@@ -578,11 +581,12 @@ export class IsolatedTable extends VirtualTable {
|
|
|
578
581
|
* stamped GE); the real OR-of-ranges lives in the idxStr `rangeOps` parameters,
|
|
579
582
|
* decoded by {@link buildMultiRangeWindowMatcher}.
|
|
580
583
|
*
|
|
581
|
-
* Comparisons run
|
|
582
|
-
*
|
|
583
|
-
*
|
|
584
|
-
*
|
|
585
|
-
*
|
|
584
|
+
* Comparisons run through {@link constraintComparator} — the index key column's
|
|
585
|
+
* collation, or the declared type's `compare` for a semantic-ordering column — with
|
|
586
|
+
* seek semantics for NULL: a NULL operand or a NULL row value never matches,
|
|
587
|
+
* mirroring what an index seek returns. Operators the matcher does not interpret
|
|
588
|
+
* (LIKE, MATCH, ...) are ignored — that can only let through rows a residual Filter
|
|
589
|
+
* above still removes, never drop rows.
|
|
586
590
|
*/
|
|
587
591
|
buildConstraintMatcher(filterInfo) {
|
|
588
592
|
const path = filterInfo.accessPath;
|
|
@@ -598,7 +602,7 @@ export class IsolatedTable extends VirtualTable {
|
|
|
598
602
|
const windowFor = (columnIndex) => {
|
|
599
603
|
let window = windows.get(columnIndex);
|
|
600
604
|
if (!window) {
|
|
601
|
-
window = {
|
|
605
|
+
window = { compare: this.constraintComparator(columnIndex, path.index), eqValues: [], ranges: [] };
|
|
602
606
|
windows.set(columnIndex, window);
|
|
603
607
|
}
|
|
604
608
|
return window;
|
|
@@ -630,11 +634,11 @@ export class IsolatedTable extends VirtualTable {
|
|
|
630
634
|
if (rowValue === null)
|
|
631
635
|
return false;
|
|
632
636
|
if (window.eqValues.length > 0
|
|
633
|
-
&& !window.eqValues.some(v => v !== null &&
|
|
637
|
+
&& !window.eqValues.some(v => v !== null && window.compare(rowValue, v) === 0)) {
|
|
634
638
|
return false;
|
|
635
639
|
}
|
|
636
640
|
for (const { op, value } of window.ranges) {
|
|
637
|
-
if (value === null || !satisfiesBound(
|
|
641
|
+
if (value === null || !satisfiesBound(window.compare(rowValue, value), op)) {
|
|
638
642
|
return false;
|
|
639
643
|
}
|
|
640
644
|
}
|
|
@@ -673,7 +677,7 @@ export class IsolatedTable extends VirtualTable {
|
|
|
673
677
|
if (ranges.length === 0)
|
|
674
678
|
return () => true;
|
|
675
679
|
const columnIndex = keyColumn.columnIndex;
|
|
676
|
-
const
|
|
680
|
+
const compare = this.constraintComparator(columnIndex, index);
|
|
677
681
|
return (row) => {
|
|
678
682
|
const rowValue = row[columnIndex];
|
|
679
683
|
if (rowValue === null)
|
|
@@ -682,14 +686,14 @@ export class IsolatedTable extends VirtualTable {
|
|
|
682
686
|
if (lower) {
|
|
683
687
|
if (lower.value === null)
|
|
684
688
|
return false;
|
|
685
|
-
const cmp =
|
|
689
|
+
const cmp = compare(rowValue, lower.value);
|
|
686
690
|
if (lower.strict ? cmp <= 0 : cmp < 0)
|
|
687
691
|
return false;
|
|
688
692
|
}
|
|
689
693
|
if (upper) {
|
|
690
694
|
if (upper.value === null)
|
|
691
695
|
return false;
|
|
692
|
-
const cmp =
|
|
696
|
+
const cmp = compare(rowValue, upper.value);
|
|
693
697
|
if (upper.strict ? cmp >= 0 : cmp > 0)
|
|
694
698
|
return false;
|
|
695
699
|
}
|
|
@@ -698,15 +702,36 @@ export class IsolatedTable extends VirtualTable {
|
|
|
698
702
|
};
|
|
699
703
|
}
|
|
700
704
|
/**
|
|
701
|
-
* Comparison
|
|
702
|
-
*
|
|
703
|
-
*
|
|
704
|
-
*
|
|
705
|
+
* Comparison function for a window-matcher column, matching the comparison the
|
|
706
|
+
* scanned module applies to its OWN stream (`StoreTableScan.matchesFilters`, the
|
|
707
|
+
* memory backend's typed BTree): a column whose declared logical type carries
|
|
708
|
+
* SEMANTIC ordering (TIMESPAN, JSON — see docs/types.md "Semantic ordering") ranks
|
|
709
|
+
* by the type's `compare`; every other column by storage class + collation. The
|
|
710
|
+
* collation is the index key column's declared one when the column is part of the
|
|
711
|
+
* scanned index (the seek's own window follows the index collation), else the table
|
|
712
|
+
* column's declared collation, else BINARY.
|
|
713
|
+
*
|
|
714
|
+
* The typed arm is a CORRECTNESS requirement, not a refinement: the underlying
|
|
715
|
+
* claimed the window's filters HANDLED, so no residual Filter survives above this
|
|
716
|
+
* merge to re-check an overlay row it lets through or drops. Under a plain text
|
|
717
|
+
* compare a `d > 'PT1H'` window admits a staged 'PT1M' and rejects a staged
|
|
718
|
+
* 'PT180M' — both inversions the type's `compare` exists to remove
|
|
719
|
+
* (`store-semantic-index-window-overlay` in isolation-layer.spec.ts).
|
|
720
|
+
*
|
|
721
|
+
* NOTE: this restates, in a second package, the rule `StoreTableScan.matchesFilters`
|
|
722
|
+
* applies to committed rows — "semantic-ordering type ⇒ the type's compare, else
|
|
723
|
+
* storage class + collation". Two comparison dimensions keep the duplication cheap; if
|
|
724
|
+
* a third ever appears, promote the pair to one shared helper in the engine rather than
|
|
725
|
+
* adding a third arm here.
|
|
705
726
|
*/
|
|
706
|
-
|
|
727
|
+
constraintComparator(columnIndex, index) {
|
|
707
728
|
const name = index.keyColumns.find(kc => kc.columnIndex === columnIndex)?.collation
|
|
708
729
|
?? this.tableSchema?.columns[columnIndex]?.collation;
|
|
709
|
-
|
|
730
|
+
const collation = name ? this.collationResolver(name) : BINARY_COLLATION;
|
|
731
|
+
const logicalType = this.tableSchema?.columns[columnIndex]?.logicalType;
|
|
732
|
+
return hasSemanticOrdering(logicalType)
|
|
733
|
+
? createTypedComparator(logicalType, collation)
|
|
734
|
+
: (a, b) => compareSqlValuesFast(a, b, collation);
|
|
710
735
|
}
|
|
711
736
|
/**
|
|
712
737
|
* Queries the overlay table and converts rows to MergeEntry format.
|
|
@@ -778,7 +803,9 @@ export class IsolatedTable extends VirtualTable {
|
|
|
778
803
|
const pk = pkIndices.map(i => row[i]);
|
|
779
804
|
return [...indexKey, ...pk];
|
|
780
805
|
};
|
|
781
|
-
// Prefer the underlying table's per-column index comparators
|
|
806
|
+
// Prefer the underlying table's per-column index comparators — both the memory
|
|
807
|
+
// and store backends supply them, each stating its own physical index order
|
|
808
|
+
// (the store's per-column key collations included). When the underlying exposes
|
|
782
809
|
// none for this index (always the case for a module-minted synthetic name),
|
|
783
810
|
// derive them from the descriptor's key columns so a DESC or collated key
|
|
784
811
|
// column still merges in the underlying's emission order rather than a
|
|
@@ -815,9 +842,11 @@ export class IsolatedTable extends VirtualTable {
|
|
|
815
842
|
* collation registered *after* a comparator was built is not picked up, the same
|
|
816
843
|
* contract `Database.registerCollation` documents engine-wide.
|
|
817
844
|
*
|
|
818
|
-
* NOTE: this is the *comparison* collation only. The store's physical key bytes
|
|
819
|
-
*
|
|
820
|
-
* `
|
|
845
|
+
* NOTE: this is the *comparison* collation only. The store's physical key bytes are
|
|
846
|
+
* produced by the key NORMALIZER of the same collation, resolved through the same
|
|
847
|
+
* connection's registry (`bug-store-key-encoder-ignores-database-collations`, landed),
|
|
848
|
+
* so the two agree on equality — but only on ORDER for a collation asserting
|
|
849
|
+
* `orderPreserving` (see docs/store.md § Order preservation).
|
|
821
850
|
*/
|
|
822
851
|
getPkCollations() {
|
|
823
852
|
return this.getPkKeyShape().functions;
|
|
@@ -880,9 +909,14 @@ export class IsolatedTable extends VirtualTable {
|
|
|
880
909
|
/**
|
|
881
910
|
* Per-column comparators derived from an index descriptor's key columns — the
|
|
882
911
|
* fallback when the underlying exposes no `getIndexComparator` for the index
|
|
883
|
-
* (always the case for a module-minted synthetic name
|
|
912
|
+
* (always the case for a module-minted synthetic name; a store-backed index scan
|
|
913
|
+
* now supplies its own comparators via `StoreTableScan.getIndexComparator`, so
|
|
914
|
+
* this fallback no longer decides its merge order). Honors each key column's
|
|
884
915
|
* declared direction and collation so the merge walks the underlying's emission
|
|
885
|
-
* order.
|
|
916
|
+
* order. NOTE: a key column with no descriptor collation falls back to BINARY,
|
|
917
|
+
* not the table column's declared collation — widening that would also change
|
|
918
|
+
* merge order for memory-backed tables, whose index BTrees genuinely order by
|
|
919
|
+
* `specCol.collation ?? BINARY`.
|
|
886
920
|
*/
|
|
887
921
|
buildDescriptorComparators(keyColumns) {
|
|
888
922
|
return keyColumns.map(kc => {
|
|
@@ -1544,16 +1578,34 @@ export class IsolatedTable extends VirtualTable {
|
|
|
1544
1578
|
*
|
|
1545
1579
|
* Seek only when the constraint was synthesized from a `CREATE UNIQUE INDEX`
|
|
1546
1580
|
* (`derivedFromIndex` names a live entry in `tableSchema.indexes`) AND every key
|
|
1547
|
-
* column's
|
|
1581
|
+
* column's index bytes are keyed under the collation this check ENFORCES under. A
|
|
1582
|
+
* table-level `unique(a, b)` still falls back to the full scan: it has no index in the
|
|
1583
|
+
* engine-facing schema at all (the store's `_uc_*` is enforcement-only and invisible
|
|
1584
|
+
* here), so there is nothing to name in the seek.
|
|
1585
|
+
*
|
|
1586
|
+
* The collation half of the gate is what makes the seek sound rather than merely fast:
|
|
1587
|
+
* the seek REPLACES the full scan, so a window narrower than the enforcement-equal set
|
|
1588
|
+
* silently loses a UNIQUE violation. It used to demand BINARY outright, because the
|
|
1589
|
+
* store keyed every index column under the table-wide key collation and ignored the
|
|
1590
|
+
* connection's collation registry. Index bytes now encode under the index column's own
|
|
1591
|
+
* effective collation, which for an index-derived UNIQUE IS the enforcement collation
|
|
1592
|
+
* — so a collated index is seekable, and this asks per column:
|
|
1593
|
+
*
|
|
1594
|
+
* - never-text column (`integer`, `real`, `blob`) → seekable; its key bytes are
|
|
1595
|
+
* type-native and no collation is involved.
|
|
1596
|
+
* - enforcement collation BINARY → seekable; BINARY equality is byte identity, which
|
|
1597
|
+
* every backend's index key preserves.
|
|
1598
|
+
* - otherwise seekable only when a key-encoding backend keys the column under that
|
|
1599
|
+
* same collation, which is exactly what `pkKeyCollationName` answers: a
|
|
1600
|
+
* collation-aware column (`text`, `any` — `compare` honors the handed collation)
|
|
1601
|
+
* keys under its own collation (seekable), while a collation-blind text-capable
|
|
1602
|
+
* column — `json`, the temporal types — keys hard-`BINARY` while this check still
|
|
1603
|
+
* compares under the declared name (NOT seekable; a probe for `'B@X'` would
|
|
1604
|
+
* byte-miss the committed `'b@x'`).
|
|
1548
1605
|
*
|
|
1549
|
-
*
|
|
1550
|
-
*
|
|
1551
|
-
*
|
|
1552
|
-
* (backlog/debt-store-index-keys-use-column-collation, see the comment at
|
|
1553
|
-
* getPkKeyShape above). Seeking a NOCASE index for 'B@X' would miss the committed
|
|
1554
|
-
* 'b@x' that the full scan catches, turning this perf fix into a LOST UNIQUE
|
|
1555
|
-
* violation. Widen this gate (to per-column enforcement collations generally) only
|
|
1556
|
-
* once that encoder defect is fixed.
|
|
1606
|
+
* Equality is all the seek needs — order preservation is a RANGE concern and no range
|
|
1607
|
+
* is built here (`makeSecondaryIndexEqSeekFilter` emits one EQ per key column and
|
|
1608
|
+
* nothing else), so a custom equality-only collation is fine.
|
|
1557
1609
|
*/
|
|
1558
1610
|
canSeekForConstraint(uc) {
|
|
1559
1611
|
if (!uc.derivedFromIndex)
|
|
@@ -1564,8 +1616,20 @@ export class IsolatedTable extends VirtualTable {
|
|
|
1564
1616
|
// Enforcement collation per constrained column, positionally aligned with the
|
|
1565
1617
|
// index key columns (appendIndexToTableSchema guarantees the alignment).
|
|
1566
1618
|
const enforcement = uniqueEnforcementCollations(this.tableSchema, uc);
|
|
1567
|
-
const
|
|
1568
|
-
|
|
1619
|
+
const seekable = uc.columns.every((colIdx, i) => {
|
|
1620
|
+
const column = this.tableSchema.columns[colIdx];
|
|
1621
|
+
const name = normalizeCollationName(enforcement[i] ?? 'BINARY');
|
|
1622
|
+
if (name === 'BINARY')
|
|
1623
|
+
return true;
|
|
1624
|
+
const keyed = pkKeyCollationName(column === undefined ? undefined : {
|
|
1625
|
+
logicalType: column.logicalType,
|
|
1626
|
+
collation: name,
|
|
1627
|
+
});
|
|
1628
|
+
if (keyed === undefined)
|
|
1629
|
+
return true; // never-text: key bytes are type-native
|
|
1630
|
+
return normalizeCollationName(keyed || 'BINARY') === name;
|
|
1631
|
+
});
|
|
1632
|
+
return seekable ? index : null;
|
|
1569
1633
|
}
|
|
1570
1634
|
/**
|
|
1571
1635
|
* Checks all non-PK UNIQUE constraints against the merged view.
|