@quereus/isolation 0.3.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -191,8 +191,9 @@ console.log(caps.persistent); // (from underlying module)
191
191
  The isolation layer adds minimal overhead:
192
192
 
193
193
  - **Fast path** — No overlay merging if no writes have occurred
194
- - **Point lookups** — Currently O(n) full scan (PK point lookup optimization planned)
194
+ - **Point lookups** — O(log n) via PK index seek on the overlay
195
195
  - **Range scans** — Streaming merge of sorted results
196
+ - **Commit flush** — O(log n) per-row existence check against the underlying table
196
197
 
197
198
  For performance-critical applications, consider:
198
199
  - Using memory overlay for small transactions
@@ -169,20 +169,30 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
169
169
  */
170
170
  update(args: UpdateArgs): Promise<UpdateResult>;
171
171
  /**
172
- * Checks if a row with the given primary key exists in the overlay.
172
+ * Strips the tombstone column from an overlay update result.
173
173
  */
174
- private rowExistsInOverlay;
174
+ private stripTombstoneFromResult;
175
175
  /**
176
- * Gets a row from the overlay by primary key.
176
+ * Gets a row from the overlay by primary key using O(log n) point lookup.
177
177
  */
178
178
  private getOverlayRow;
179
179
  /**
180
180
  * Creates a FilterInfo for a full table scan (no constraints).
181
181
  */
182
182
  private createFullScanFilterInfo;
183
+ /**
184
+ * Creates a FilterInfo for a primary key point lookup (equality on all PK columns).
185
+ * This produces O(log n) lookups instead of O(n) full scans.
186
+ */
187
+ private buildPKPointLookupFilter;
183
188
  begin(): Promise<void>;
184
189
  sync(): Promise<void>;
185
190
  commit(): Promise<void>;
191
+ /**
192
+ * Flushes overlay changes to underlying (if any) and discards the overlay.
193
+ * Shared by commit() and onConnectionCommit().
194
+ */
195
+ private flushAndClearOverlay;
186
196
  /**
187
197
  * Flushes all overlay changes to the underlying table.
188
198
  * Called during commit to persist changes.
@@ -194,11 +204,15 @@ export declare class IsolatedTable extends VirtualTable implements IsolatedTable
194
204
  private flushOverlayToUnderlying;
195
205
  /**
196
206
  * Checks if a row with the given primary key exists in the underlying table.
207
+ * Uses O(log n) point lookup via the PK index.
197
208
  */
198
209
  private rowExistsInUnderlying;
199
210
  rollback(): Promise<void>;
200
211
  /**
201
- * Clears the connection-scoped overlay and resets state.
212
+ * Discards the connection-scoped overlay entirely.
213
+ * The overlay table is per-connection and ephemeral, so simply removing
214
+ * the reference allows GC to reclaim it. A fresh overlay will be created
215
+ * lazily via ensureOverlay() on the next write.
202
216
  */
203
217
  private clearOverlay;
204
218
  savepoint(index: number): Promise<void>;
@@ -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,4 +1,4 @@
1
- import { VirtualTable, compareSqlValues, isUpdateOk } from '@quereus/quereus';
1
+ import { VirtualTable, compareSqlValues, isUpdateOk, IndexConstraintOp } from '@quereus/quereus';
2
2
  import { IsolatedConnection } from './isolated-connection.js';
3
3
  import { mergeStreams, createMergeEntry, createTombstone } from './merge-iterator.js';
4
4
  /**
@@ -490,65 +490,46 @@ export class IsolatedTable extends VirtualTable {
490
490
  oldKeyValues: pk,
491
491
  onConflict: args.onConflict,
492
492
  });
493
- if (isUpdateOk(result) && result.row) {
494
- return { status: 'ok', row: result.row.slice(0, tombstoneIndex) };
495
- }
496
- return result;
493
+ return this.stripTombstoneFromResult(result, tombstoneIndex);
497
494
  }
498
495
  }
499
496
  // Normal insert into overlay with tombstone = 0
500
- const overlayRow = [...(values ?? []), 0]; // Append tombstone = 0
497
+ const overlayRow = [...(values ?? []), 0];
501
498
  const result = await overlay.update({
502
499
  ...args,
503
500
  values: overlayRow,
504
501
  });
505
- // Strip tombstone from result
506
- if (isUpdateOk(result) && result.row) {
507
- return { status: 'ok', row: result.row.slice(0, tombstoneIndex) };
508
- }
509
- return result;
502
+ return this.stripTombstoneFromResult(result, tombstoneIndex);
510
503
  }
511
504
  case 'update': {
512
505
  // For updates, we need to handle the case where the row exists in:
513
506
  // 1. Overlay only (previous insert) - update the overlay row
514
507
  // 2. Underlying only - insert into overlay with new values
515
508
  // 3. Both (previous update) - update the overlay row
516
- // First, try to find in overlay
517
509
  const pkIndices = this.getPrimaryKeyIndices();
518
510
  const targetPK = oldKeyValues ?? (values ? pkIndices.map(i => values[i]) : undefined);
519
511
  if (!targetPK || !values) {
520
512
  throw new Error('UPDATE requires oldKeyValues or values with primary key');
521
513
  }
522
- // Check if row exists in overlay
523
- const existsInOverlay = await this.rowExistsInOverlay(overlay, targetPK);
524
- if (existsInOverlay) {
514
+ const existingOverlayRow = await this.getOverlayRow(overlay, targetPK);
515
+ const overlayRow = [...values, 0]; // tombstone = 0
516
+ if (existingOverlayRow) {
525
517
  // Update existing overlay row
526
- const overlayRow = [...values, 0]; // tombstone = 0
527
- // oldKeyValues should only contain PK columns, not tombstone
528
518
  const result = await overlay.update({
529
519
  ...args,
530
520
  values: overlayRow,
531
521
  oldKeyValues: targetPK,
532
522
  });
533
- // Strip tombstone from result
534
- if (isUpdateOk(result) && result.row) {
535
- return { status: 'ok', row: result.row.slice(0, tombstoneIndex) };
536
- }
537
- return result;
523
+ return this.stripTombstoneFromResult(result, tombstoneIndex);
538
524
  }
539
525
  else {
540
526
  // Insert new overlay row (shadows underlying)
541
- const overlayRow = [...values, 0];
542
527
  const result = await overlay.update({
543
528
  operation: 'insert',
544
529
  values: overlayRow,
545
530
  onConflict: args.onConflict,
546
531
  });
547
- // Strip tombstone from result
548
- if (isUpdateOk(result) && result.row) {
549
- return { status: 'ok', row: result.row.slice(0, tombstoneIndex) };
550
- }
551
- return result;
532
+ return this.stripTombstoneFromResult(result, tombstoneIndex);
552
533
  }
553
534
  }
554
535
  case 'delete': {
@@ -558,27 +539,20 @@ export class IsolatedTable extends VirtualTable {
558
539
  if (!targetPK) {
559
540
  throw new Error('DELETE requires oldKeyValues or values with primary key');
560
541
  }
561
- // Check if row exists in overlay
562
- const existsInOverlay = await this.rowExistsInOverlay(overlay, targetPK);
563
- if (existsInOverlay) {
564
- // Check if it's already a tombstone
565
- const overlayRow = await this.getOverlayRow(overlay, targetPK);
566
- if (overlayRow) {
567
- const isTombstone = overlayRow[tombstoneIndex] === 1;
568
- if (isTombstone) {
569
- // Already deleted, nothing to do
570
- return { status: 'ok' };
571
- }
572
- // Convert to tombstone by updating the tombstone flag
573
- const tombstoneRow = [...overlayRow.slice(0, tombstoneIndex), 1];
574
- // oldKeyValues should only contain PK columns, not the full row
575
- await overlay.update({
576
- operation: 'update',
577
- values: tombstoneRow,
578
- oldKeyValues: targetPK,
579
- onConflict: args.onConflict,
580
- });
542
+ const existingOverlayRow = await this.getOverlayRow(overlay, targetPK);
543
+ if (existingOverlayRow) {
544
+ if (existingOverlayRow[tombstoneIndex] === 1) {
545
+ // Already deleted, nothing to do
546
+ return { status: 'ok' };
581
547
  }
548
+ // Convert to tombstone by updating the tombstone flag
549
+ const tombstoneRow = [...existingOverlayRow.slice(0, tombstoneIndex), 1];
550
+ await overlay.update({
551
+ operation: 'update',
552
+ values: tombstoneRow,
553
+ oldKeyValues: targetPK,
554
+ onConflict: args.onConflict,
555
+ });
582
556
  }
583
557
  else {
584
558
  // Insert tombstone to shadow underlying row
@@ -604,27 +578,22 @@ export class IsolatedTable extends VirtualTable {
604
578
  }
605
579
  }
606
580
  /**
607
- * Checks if a row with the given primary key exists in the overlay.
581
+ * Strips the tombstone column from an overlay update result.
608
582
  */
609
- async rowExistsInOverlay(overlay, pk) {
610
- const row = await this.getOverlayRow(overlay, pk);
611
- return row !== undefined;
583
+ stripTombstoneFromResult(result, tombstoneIndex) {
584
+ if (isUpdateOk(result) && result.row) {
585
+ return { status: 'ok', row: result.row.slice(0, tombstoneIndex) };
586
+ }
587
+ return result;
612
588
  }
613
589
  /**
614
- * Gets a row from the overlay by primary key.
590
+ * Gets a row from the overlay by primary key using O(log n) point lookup.
615
591
  */
616
592
  async getOverlayRow(overlay, pk) {
617
593
  if (!overlay.query)
618
594
  return undefined;
619
- const pkIndices = this.getPrimaryKeyIndices();
620
- const mergeConfig = this.buildMergeConfig();
621
- // Scan overlay looking for matching PK
622
- // This is inefficient but correct; optimization can use index later
623
- for await (const row of overlay.query(this.createFullScanFilterInfo())) {
624
- const rowPK = pkIndices.map(i => row[i]);
625
- if (mergeConfig.comparePK(rowPK, pk) === 0) {
626
- return row;
627
- }
595
+ for await (const row of overlay.query(this.buildPKPointLookupFilter(pk))) {
596
+ return row;
628
597
  }
629
598
  return undefined;
630
599
  }
@@ -653,6 +622,37 @@ export class IsolatedTable extends VirtualTable {
653
622
  },
654
623
  };
655
624
  }
625
+ /**
626
+ * Creates a FilterInfo for a primary key point lookup (equality on all PK columns).
627
+ * This produces O(log n) lookups instead of O(n) full scans.
628
+ */
629
+ buildPKPointLookupFilter(pk) {
630
+ const pkIndices = this.getPrimaryKeyIndices();
631
+ const constraints = pkIndices.map((colIdx, i) => ({
632
+ constraint: { iColumn: colIdx, op: IndexConstraintOp.EQ, usable: true },
633
+ argvIndex: i + 1,
634
+ }));
635
+ return {
636
+ idxNum: 0,
637
+ idxStr: 'idx=_primary_(0);plan=2',
638
+ constraints,
639
+ args: pk,
640
+ indexInfoOutput: {
641
+ nConstraint: constraints.length,
642
+ aConstraint: constraints.map(c => c.constraint),
643
+ nOrderBy: 0,
644
+ aOrderBy: [],
645
+ colUsed: 0n,
646
+ aConstraintUsage: constraints.map(c => ({ argvIndex: c.argvIndex, omit: true })),
647
+ idxNum: 0,
648
+ idxStr: 'idx=_primary_(0);plan=2',
649
+ orderByConsumed: false,
650
+ estimatedCost: 1,
651
+ estimatedRows: 1n,
652
+ idxFlags: 0,
653
+ },
654
+ };
655
+ }
656
656
  // ==================== Transaction Lifecycle ====================
657
657
  async begin() {
658
658
  await this.underlyingTable.begin?.();
@@ -663,12 +663,19 @@ export class IsolatedTable extends VirtualTable {
663
663
  await this.overlayTable?.sync?.();
664
664
  }
665
665
  async commit() {
666
+ await this.flushAndClearOverlay();
667
+ await this.underlyingTable.commit?.();
668
+ }
669
+ /**
670
+ * Flushes overlay changes to underlying (if any) and discards the overlay.
671
+ * Shared by commit() and onConnectionCommit().
672
+ */
673
+ async flushAndClearOverlay() {
666
674
  const overlay = this.overlayTable;
667
675
  if (this.hasChanges && overlay) {
668
676
  await this.flushOverlayToUnderlying(overlay);
669
677
  }
670
- await this.underlyingTable.commit?.();
671
- await this.clearOverlay();
678
+ this.clearOverlay();
672
679
  }
673
680
  /**
674
681
  * Flushes all overlay changes to the underlying table.
@@ -735,65 +742,41 @@ export class IsolatedTable extends VirtualTable {
735
742
  }
736
743
  /**
737
744
  * Checks if a row with the given primary key exists in the underlying table.
745
+ * Uses O(log n) point lookup via the PK index.
738
746
  */
739
747
  async rowExistsInUnderlying(pk) {
740
748
  if (!this.underlyingTable.query)
741
749
  return false;
742
- const pkIndices = this.getPrimaryKeyIndices();
743
- const mergeConfig = this.buildMergeConfig();
744
- for await (const row of this.underlyingTable.query(this.createFullScanFilterInfo())) {
745
- const rowPK = pkIndices.map(i => row[i]);
746
- if (mergeConfig.comparePK(rowPK, pk) === 0) {
747
- return true;
748
- }
750
+ for await (const _row of this.underlyingTable.query(this.buildPKPointLookupFilter(pk))) {
751
+ return true;
749
752
  }
750
753
  return false;
751
754
  }
752
755
  async rollback() {
753
756
  await this.underlyingTable.rollback?.();
754
- await this.clearOverlay();
757
+ this.clearOverlay();
755
758
  }
756
759
  /**
757
- * Clears the connection-scoped overlay and resets state.
760
+ * Discards the connection-scoped overlay entirely.
761
+ * The overlay table is per-connection and ephemeral, so simply removing
762
+ * the reference allows GC to reclaim it. A fresh overlay will be created
763
+ * lazily via ensureOverlay() on the next write.
758
764
  */
759
- async clearOverlay() {
760
- const state = this.getOverlayState();
761
- if (!state)
762
- return;
763
- const overlay = state.overlayTable;
764
- if (overlay.query) {
765
- const pkIndices = this.getPrimaryKeyIndices();
766
- // Collect all PKs first to avoid modifying while iterating
767
- const pksToDelete = [];
768
- for await (const row of overlay.query(this.createFullScanFilterInfo())) {
769
- // Extract just the PK values (same columns as underlying table)
770
- const pk = pkIndices.map(i => row[i]);
771
- pksToDelete.push(pk);
772
- }
773
- // Delete each row from overlay by PK
774
- for (const pk of pksToDelete) {
775
- await overlay.update({
776
- operation: 'delete',
777
- values: undefined,
778
- oldKeyValues: pk,
779
- });
780
- }
781
- }
782
- // Clear the connection overlay state
765
+ clearOverlay() {
783
766
  this.isolationModule.clearConnectionOverlay(this.db, this.schemaName, this.tableName);
784
767
  }
785
768
  // ==================== Savepoints ====================
769
+ // Overlay savepoints are managed by IsolatedConnection (which forwards
770
+ // to the overlay's own registered connection). The table-level methods
771
+ // only forward to the underlying table to avoid double-savepointing.
786
772
  async savepoint(index) {
787
773
  await this.underlyingTable.savepoint?.(index);
788
- await this.overlayTable?.savepoint?.(index);
789
774
  }
790
775
  async release(index) {
791
776
  await this.underlyingTable.release?.(index);
792
- await this.overlayTable?.release?.(index);
793
777
  }
794
778
  async rollbackTo(index) {
795
779
  await this.underlyingTable.rollbackTo?.(index);
796
- await this.overlayTable?.rollbackTo?.(index);
797
780
  }
798
781
  // ==================== Schema Operations ====================
799
782
  async disconnect() {
@@ -858,11 +841,7 @@ export class IsolatedTable extends VirtualTable {
858
841
  * Flushes overlay to underlying and clears overlay.
859
842
  */
860
843
  async onConnectionCommit() {
861
- const overlay = this.overlayTable;
862
- if (this.hasChanges && overlay) {
863
- await this.flushOverlayToUnderlying(overlay);
864
- }
865
- await this.clearOverlay();
844
+ await this.flushAndClearOverlay();
866
845
  this.savepointsBeforeOverlay.clear();
867
846
  }
868
847
  /**
@@ -870,7 +849,7 @@ export class IsolatedTable extends VirtualTable {
870
849
  * Clears overlay without flushing.
871
850
  */
872
851
  async onConnectionRollback() {
873
- await this.clearOverlay();
852
+ this.clearOverlay();
874
853
  this.savepointsBeforeOverlay.clear();
875
854
  }
876
855
  /**
@@ -908,7 +887,7 @@ export class IsolatedTable extends VirtualTable {
908
887
  async onConnectionRollbackToSavepoint(index) {
909
888
  if (this.savepointsBeforeOverlay.has(index)) {
910
889
  // Rolling back to before the overlay existed — discard all overlay changes
911
- await this.clearOverlay();
890
+ this.clearOverlay();
912
891
  // Remove savepoints above the target (they're implicitly gone)
913
892
  for (const depth of [...this.savepointsBeforeOverlay]) {
914
893
  if (depth > index) {
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { VirtualTableModule, VirtualTable } from '@quereus/quereus';
1
+ import type { VirtualTableModule } from '@quereus/quereus';
2
2
  /**
3
3
  * Configuration for creating an isolation-wrapped module.
4
4
  */
@@ -18,17 +18,4 @@ export interface IsolationModuleConfig {
18
18
  */
19
19
  tombstoneColumn?: string;
20
20
  }
21
- /**
22
- * Internal state for an isolated table instance.
23
- */
24
- export interface IsolatedTableState {
25
- /** The wrapped underlying table */
26
- underlyingTable: VirtualTable;
27
- /** The overlay table storing uncommitted changes */
28
- overlayTable: VirtualTable;
29
- /** Whether there are any pending changes in the overlay */
30
- hasChanges: boolean;
31
- /** Current savepoint depth */
32
- savepointDepth: number;
33
- }
34
21
  //# sourceMappingURL=isolation-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isolation-types.d.ts","sourceRoot":"","sources":["../../src/isolation-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzC;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,mCAAmC;IACnC,eAAe,EAAE,YAAY,CAAC;IAE9B,oDAAoD;IACpD,YAAY,EAAE,YAAY,CAAC;IAE3B,2DAA2D;IAC3D,UAAU,EAAE,OAAO,CAAC;IAEpB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"isolation-types.d.ts","sourceRoot":"","sources":["../../src/isolation-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzC;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quereus/isolation",
3
- "version": "0.3.0",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "description": "Generic transaction isolation layer for Quereus virtual table modules",
6
6
  "keywords": [
@@ -40,7 +40,7 @@
40
40
  "test:single": "cd ../.. && node --import ./packages/quereus-isolation/register.mjs node_modules/mocha/bin/mocha.js --bail"
41
41
  },
42
42
  "peerDependencies": {
43
- "@quereus/quereus": "^0.18.0"
43
+ "@quereus/quereus": "^1.0.2"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@quereus/quereus": "*",