@quereus/store 2.5.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common/encoding.d.ts +6 -1
- package/dist/src/common/encoding.d.ts.map +1 -1
- package/dist/src/common/encoding.js +15 -2
- package/dist/src/common/encoding.js.map +1 -1
- package/dist/src/common/key-builder.d.ts +16 -6
- package/dist/src/common/key-builder.d.ts.map +1 -1
- package/dist/src/common/key-builder.js +21 -10
- package/dist/src/common/key-builder.js.map +1 -1
- package/dist/src/common/kv-store.d.ts +12 -0
- package/dist/src/common/kv-store.d.ts.map +1 -1
- package/dist/src/common/store-module.d.ts +11 -0
- package/dist/src/common/store-module.d.ts.map +1 -1
- package/dist/src/common/store-module.js +131 -12
- package/dist/src/common/store-module.js.map +1 -1
- package/dist/src/common/store-table.d.ts +76 -1
- package/dist/src/common/store-table.d.ts.map +1 -1
- package/dist/src/common/store-table.js +288 -20
- package/dist/src/common/store-table.js.map +1 -1
- package/dist/src/common/transaction.d.ts +18 -0
- package/dist/src/common/transaction.d.ts.map +1 -1
- package/dist/src/common/transaction.js +29 -0
- package/dist/src/common/transaction.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,12 +9,16 @@
|
|
|
9
9
|
* - Index stores: {schema}.{table}_idx_{name} - one per secondary index
|
|
10
10
|
* - Stats store: __stats__ - unified store for all table statistics, keyed by {schema}.{table}
|
|
11
11
|
*/
|
|
12
|
-
import { VirtualTable, IndexConstraintOp, ConflictResolution, QuereusError, StatusCode, } from '@quereus/quereus';
|
|
12
|
+
import { VirtualTable, IndexConstraintOp, ConflictResolution, QuereusError, StatusCode, compareSqlValues, validateAndParse, } from '@quereus/quereus';
|
|
13
13
|
import { StoreConnection } from './store-connection.js';
|
|
14
14
|
import { buildDataKey, buildIndexKey, buildFullScanBounds, buildStatsKey, } from './key-builder.js';
|
|
15
15
|
import { serializeRow, deserializeRow, serializeStats, deserializeStats, } from './serialization.js';
|
|
16
16
|
/** Number of mutations before persisting statistics. */
|
|
17
17
|
const STATS_FLUSH_INTERVAL = 100;
|
|
18
|
+
/** Hex-encode a key for use as a Map/Set lookup. */
|
|
19
|
+
function bytesToHex(key) {
|
|
20
|
+
return Array.from(key).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
21
|
+
}
|
|
18
22
|
/**
|
|
19
23
|
* Generic KVStore-backed virtual table.
|
|
20
24
|
*
|
|
@@ -33,6 +37,7 @@ export class StoreTable extends VirtualTable {
|
|
|
33
37
|
connection = null;
|
|
34
38
|
eventEmitter;
|
|
35
39
|
encodeOptions;
|
|
40
|
+
pkDirections;
|
|
36
41
|
ddlSaved = false;
|
|
37
42
|
// Statistics tracking
|
|
38
43
|
cachedStats = null;
|
|
@@ -47,6 +52,7 @@ export class StoreTable extends VirtualTable {
|
|
|
47
52
|
this.config = config;
|
|
48
53
|
this.eventEmitter = eventEmitter;
|
|
49
54
|
this.encodeOptions = { collation: config.collation || 'NOCASE' };
|
|
55
|
+
this.pkDirections = tableSchema.primaryKeyDefinition.map(pk => !!pk.desc);
|
|
50
56
|
this.ddlSaved = isConnected;
|
|
51
57
|
}
|
|
52
58
|
/** Get the table configuration. */
|
|
@@ -60,6 +66,18 @@ export class StoreTable extends VirtualTable {
|
|
|
60
66
|
/** Update the table schema after an ALTER TABLE operation. */
|
|
61
67
|
updateSchema(newSchema) {
|
|
62
68
|
this.tableSchema = newSchema;
|
|
69
|
+
this.pkDirections = newSchema.primaryKeyDefinition.map(pk => !!pk.desc);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns true if the table has at least one stored row. Stops after the first hit.
|
|
73
|
+
*/
|
|
74
|
+
async hasAnyRows() {
|
|
75
|
+
const store = await this.ensureStore();
|
|
76
|
+
const bounds = buildFullScanBounds();
|
|
77
|
+
for await (const _entry of store.iterate(bounds)) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
63
81
|
}
|
|
64
82
|
/**
|
|
65
83
|
* Scan every row, checking whether the column at `colIndex` ever holds NULL.
|
|
@@ -96,6 +114,44 @@ export class StoreTable extends VirtualTable {
|
|
|
96
114
|
}
|
|
97
115
|
await batch.write();
|
|
98
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Re-key every stored row under a new primary-key definition.
|
|
119
|
+
*
|
|
120
|
+
* Two-pass: the first pass reads every row and computes the new data keys,
|
|
121
|
+
* tracking duplicates. On collision we throw `CONSTRAINT` without touching
|
|
122
|
+
* the store. The second pass batches deletes of displaced old keys and puts
|
|
123
|
+
* of new (key, row) pairs. Rows whose new key matches the old key are no-ops.
|
|
124
|
+
*
|
|
125
|
+
* Only the data store is rewritten — secondary indexes are rebuilt by the
|
|
126
|
+
* caller (the keys embed the PK suffix, so they must be rebuilt whenever
|
|
127
|
+
* the PK changes).
|
|
128
|
+
*/
|
|
129
|
+
async rekeyRows(newPkDef) {
|
|
130
|
+
const store = await this.ensureStore();
|
|
131
|
+
const bounds = buildFullScanBounds();
|
|
132
|
+
const pending = new Map();
|
|
133
|
+
const newPkDirections = newPkDef.map(pk => !!pk.desc);
|
|
134
|
+
for await (const entry of store.iterate(bounds)) {
|
|
135
|
+
const row = deserializeRow(entry.value);
|
|
136
|
+
const newPkValues = newPkDef.map(pk => row[pk.index]);
|
|
137
|
+
const newKey = buildDataKey(newPkValues, this.encodeOptions, newPkDirections);
|
|
138
|
+
const hex = bytesToHex(newKey);
|
|
139
|
+
if (pending.has(hex)) {
|
|
140
|
+
throw new QuereusError(`UNIQUE constraint failed: duplicate primary key on rekey of '${this.schemaName}.${this.tableName}'`, StatusCode.CONSTRAINT);
|
|
141
|
+
}
|
|
142
|
+
pending.set(hex, { newKey, oldKey: entry.key, row });
|
|
143
|
+
}
|
|
144
|
+
const batch = store.batch();
|
|
145
|
+
for (const { newKey, oldKey, row } of pending.values()) {
|
|
146
|
+
const oldHex = bytesToHex(oldKey);
|
|
147
|
+
const newHex = bytesToHex(newKey);
|
|
148
|
+
if (oldHex !== newHex) {
|
|
149
|
+
batch.delete(oldKey);
|
|
150
|
+
batch.put(newKey, serializeRow(row));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
await batch.write();
|
|
154
|
+
}
|
|
99
155
|
/**
|
|
100
156
|
* Migrate all stored rows from the old column layout to a new one.
|
|
101
157
|
* The remap array maps newColumnIndex -> oldColumnIndex | -1.
|
|
@@ -236,12 +292,25 @@ export class StoreTable extends VirtualTable {
|
|
|
236
292
|
const schema = this.tableSchema;
|
|
237
293
|
return schema.primaryKeyDefinition.map(pk => row[pk.index]);
|
|
238
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Coerce each cell in `row` to its declared column logical type.
|
|
297
|
+
* Mirrors the memory-table path (MemoryTableManager.performInsert/performUpdate)
|
|
298
|
+
* so INTEGER/REAL affinity is applied and JSON columns are parsed into native
|
|
299
|
+
* objects before PK extraction, serialization, and index-key construction.
|
|
300
|
+
*/
|
|
301
|
+
coerceRow(row) {
|
|
302
|
+
const cols = this.tableSchema.columns;
|
|
303
|
+
if (row.length > cols.length) {
|
|
304
|
+
throw new QuereusError(`Too many values for ${this.schemaName}.${this.tableName}: expected ${cols.length}, got ${row.length}`, StatusCode.ERROR);
|
|
305
|
+
}
|
|
306
|
+
return row.map((v, i) => validateAndParse(v, cols[i].logicalType, cols[i].name));
|
|
307
|
+
}
|
|
239
308
|
/** Query the table with optional filters. */
|
|
240
309
|
async *query(filterInfo) {
|
|
241
310
|
const store = await this.ensureStore();
|
|
242
311
|
const pkAccess = this.analyzePKAccess(filterInfo);
|
|
243
312
|
if (pkAccess.type === 'point') {
|
|
244
|
-
const key = buildDataKey(pkAccess.values, this.encodeOptions);
|
|
313
|
+
const key = buildDataKey(pkAccess.values, this.encodeOptions, this.pkDirections);
|
|
245
314
|
const value = await store.get(key);
|
|
246
315
|
if (value) {
|
|
247
316
|
const row = deserializeRow(value);
|
|
@@ -362,8 +431,9 @@ export class StoreTable extends VirtualTable {
|
|
|
362
431
|
case 'insert': {
|
|
363
432
|
if (!values)
|
|
364
433
|
throw new QuereusError('INSERT requires values', StatusCode.MISUSE);
|
|
365
|
-
const
|
|
366
|
-
const
|
|
434
|
+
const coerced = args.preCoerced ? values : this.coerceRow(values);
|
|
435
|
+
const pk = this.extractPK(coerced);
|
|
436
|
+
const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
|
|
367
437
|
// Check for existing row (for conflict handling)
|
|
368
438
|
const existing = await store.get(key);
|
|
369
439
|
if (existing) {
|
|
@@ -380,8 +450,12 @@ export class StoreTable extends VirtualTable {
|
|
|
380
450
|
};
|
|
381
451
|
}
|
|
382
452
|
}
|
|
453
|
+
// Enforce non-PK UNIQUE constraints
|
|
454
|
+
const ucResult = await this.checkUniqueConstraints(inTransaction, coerced, [pk], args.onConflict);
|
|
455
|
+
if (ucResult)
|
|
456
|
+
return ucResult;
|
|
383
457
|
const oldRow = existing ? deserializeRow(existing) : null;
|
|
384
|
-
const serializedRow = serializeRow(
|
|
458
|
+
const serializedRow = serializeRow(coerced);
|
|
385
459
|
if (inTransaction) {
|
|
386
460
|
coordinator.put(key, serializedRow);
|
|
387
461
|
}
|
|
@@ -389,7 +463,7 @@ export class StoreTable extends VirtualTable {
|
|
|
389
463
|
await store.put(key, serializedRow);
|
|
390
464
|
}
|
|
391
465
|
// Update secondary indexes
|
|
392
|
-
await this.updateSecondaryIndexes(inTransaction, oldRow,
|
|
466
|
+
await this.updateSecondaryIndexes(inTransaction, oldRow, coerced, pk);
|
|
393
467
|
// Track statistics (only count as new if not replacing)
|
|
394
468
|
if (!existing) {
|
|
395
469
|
this.trackMutation(+1, inTransaction);
|
|
@@ -403,7 +477,7 @@ export class StoreTable extends VirtualTable {
|
|
|
403
477
|
tableName: schema.name,
|
|
404
478
|
key: pk,
|
|
405
479
|
oldRow,
|
|
406
|
-
newRow:
|
|
480
|
+
newRow: coerced,
|
|
407
481
|
};
|
|
408
482
|
if (inTransaction) {
|
|
409
483
|
coordinator.queueEvent(updateEvent);
|
|
@@ -418,7 +492,7 @@ export class StoreTable extends VirtualTable {
|
|
|
418
492
|
schemaName: schema.schemaName,
|
|
419
493
|
tableName: schema.name,
|
|
420
494
|
key: pk,
|
|
421
|
-
newRow:
|
|
495
|
+
newRow: coerced,
|
|
422
496
|
};
|
|
423
497
|
if (inTransaction) {
|
|
424
498
|
coordinator.queueEvent(insertEvent);
|
|
@@ -427,20 +501,52 @@ export class StoreTable extends VirtualTable {
|
|
|
427
501
|
this.eventEmitter?.emitDataChange(insertEvent);
|
|
428
502
|
}
|
|
429
503
|
}
|
|
430
|
-
return { status: 'ok', row:
|
|
504
|
+
return { status: 'ok', row: coerced, replacedRow: oldRow ?? undefined };
|
|
431
505
|
}
|
|
432
506
|
case 'update': {
|
|
433
507
|
if (!values || !oldKeyValues)
|
|
434
508
|
throw new QuereusError('UPDATE requires values and oldKeyValues', StatusCode.MISUSE);
|
|
509
|
+
const coerced = args.preCoerced ? values : this.coerceRow(values);
|
|
435
510
|
const oldPk = this.extractPK(oldKeyValues);
|
|
436
|
-
const newPk = this.extractPK(
|
|
437
|
-
const oldKey = buildDataKey(oldPk, this.encodeOptions);
|
|
438
|
-
const newKey = buildDataKey(newPk, this.encodeOptions);
|
|
511
|
+
const newPk = this.extractPK(coerced);
|
|
512
|
+
const oldKey = buildDataKey(oldPk, this.encodeOptions, this.pkDirections);
|
|
513
|
+
const newKey = buildDataKey(newPk, this.encodeOptions, this.pkDirections);
|
|
439
514
|
// Get old row for index updates
|
|
440
515
|
const oldRowData = await store.get(oldKey);
|
|
441
516
|
const oldRow = oldRowData ? deserializeRow(oldRowData) : null;
|
|
517
|
+
const pkChanged = !this.keysEqual(oldPk, newPk);
|
|
518
|
+
// PK-change UPDATE collides like an INSERT at the new key
|
|
519
|
+
if (pkChanged) {
|
|
520
|
+
const existingAtNew = await store.get(newKey);
|
|
521
|
+
if (existingAtNew) {
|
|
522
|
+
if (args.onConflict === ConflictResolution.IGNORE) {
|
|
523
|
+
return { status: 'ok', row: undefined };
|
|
524
|
+
}
|
|
525
|
+
if (args.onConflict !== ConflictResolution.REPLACE) {
|
|
526
|
+
return {
|
|
527
|
+
status: 'constraint',
|
|
528
|
+
constraint: 'unique',
|
|
529
|
+
message: 'UNIQUE constraint failed: primary key',
|
|
530
|
+
existingRow: deserializeRow(existingAtNew),
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
// Enforce non-PK UNIQUE constraints. For same-PK UPDATE, only check
|
|
536
|
+
// constraints whose covered columns actually changed; pass [oldPk]
|
|
537
|
+
// (= newPk) to skip self. For PK-change UPDATE, treat as relocation:
|
|
538
|
+
// skip both old and new PK so we don't false-conflict against the
|
|
539
|
+
// row we're moving.
|
|
540
|
+
const selfPks = pkChanged ? [oldPk, newPk] : [oldPk];
|
|
541
|
+
const shouldCheckUniques = pkChanged
|
|
542
|
+
|| (oldRow ? this.uniqueColumnsChanged(oldRow, coerced) : true);
|
|
543
|
+
if (shouldCheckUniques) {
|
|
544
|
+
const ucResult = await this.checkUniqueConstraints(inTransaction, coerced, selfPks, args.onConflict);
|
|
545
|
+
if (ucResult)
|
|
546
|
+
return ucResult;
|
|
547
|
+
}
|
|
442
548
|
// Delete old key if PK changed
|
|
443
|
-
if (
|
|
549
|
+
if (pkChanged) {
|
|
444
550
|
if (inTransaction) {
|
|
445
551
|
coordinator.delete(oldKey);
|
|
446
552
|
}
|
|
@@ -448,7 +554,7 @@ export class StoreTable extends VirtualTable {
|
|
|
448
554
|
await store.delete(oldKey);
|
|
449
555
|
}
|
|
450
556
|
}
|
|
451
|
-
const serializedRow = serializeRow(
|
|
557
|
+
const serializedRow = serializeRow(coerced);
|
|
452
558
|
if (inTransaction) {
|
|
453
559
|
coordinator.put(newKey, serializedRow);
|
|
454
560
|
}
|
|
@@ -456,7 +562,7 @@ export class StoreTable extends VirtualTable {
|
|
|
456
562
|
await store.put(newKey, serializedRow);
|
|
457
563
|
}
|
|
458
564
|
// Update secondary indexes
|
|
459
|
-
await this.updateSecondaryIndexes(inTransaction, oldRow,
|
|
565
|
+
await this.updateSecondaryIndexes(inTransaction, oldRow, coerced, newPk);
|
|
460
566
|
// Queue or emit event
|
|
461
567
|
const updateEvent = {
|
|
462
568
|
type: 'update',
|
|
@@ -464,7 +570,7 @@ export class StoreTable extends VirtualTable {
|
|
|
464
570
|
tableName: schema.name,
|
|
465
571
|
key: newPk,
|
|
466
572
|
oldRow: oldRow || undefined,
|
|
467
|
-
newRow:
|
|
573
|
+
newRow: coerced,
|
|
468
574
|
};
|
|
469
575
|
if (inTransaction) {
|
|
470
576
|
coordinator.queueEvent(updateEvent);
|
|
@@ -472,13 +578,13 @@ export class StoreTable extends VirtualTable {
|
|
|
472
578
|
else {
|
|
473
579
|
this.eventEmitter?.emitDataChange(updateEvent);
|
|
474
580
|
}
|
|
475
|
-
return { status: 'ok', row:
|
|
581
|
+
return { status: 'ok', row: coerced };
|
|
476
582
|
}
|
|
477
583
|
case 'delete': {
|
|
478
584
|
if (!oldKeyValues)
|
|
479
585
|
throw new QuereusError('DELETE requires oldKeyValues', StatusCode.MISUSE);
|
|
480
586
|
const pk = this.extractPK(oldKeyValues);
|
|
481
|
-
const key = buildDataKey(pk, this.encodeOptions);
|
|
587
|
+
const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
|
|
482
588
|
// Get old row for index cleanup
|
|
483
589
|
const oldRowData = await store.get(key);
|
|
484
590
|
const oldRow = oldRowData ? deserializeRow(oldRowData) : null;
|
|
@@ -520,10 +626,11 @@ export class StoreTable extends VirtualTable {
|
|
|
520
626
|
for (const index of indexes) {
|
|
521
627
|
const indexStore = await this.ensureIndexStore(index.name);
|
|
522
628
|
const indexCols = index.columns.map(c => c.index);
|
|
629
|
+
const indexDirections = index.columns.map(c => !!c.desc);
|
|
523
630
|
// Remove old index entry
|
|
524
631
|
if (oldRow) {
|
|
525
632
|
const oldIndexValues = indexCols.map(i => oldRow[i]);
|
|
526
|
-
const oldIndexKey = buildIndexKey(oldIndexValues, pk, this.encodeOptions);
|
|
633
|
+
const oldIndexKey = buildIndexKey(oldIndexValues, pk, this.encodeOptions, indexDirections, this.pkDirections);
|
|
527
634
|
if (inTransaction && this.coordinator) {
|
|
528
635
|
this.coordinator.delete(oldIndexKey, indexStore);
|
|
529
636
|
}
|
|
@@ -534,7 +641,7 @@ export class StoreTable extends VirtualTable {
|
|
|
534
641
|
// Add new index entry
|
|
535
642
|
if (newRow) {
|
|
536
643
|
const newIndexValues = indexCols.map(i => newRow[i]);
|
|
537
|
-
const newIndexKey = buildIndexKey(newIndexValues, pk, this.encodeOptions);
|
|
644
|
+
const newIndexKey = buildIndexKey(newIndexValues, pk, this.encodeOptions, indexDirections, this.pkDirections);
|
|
538
645
|
// Index value is empty - we just need the key for lookups
|
|
539
646
|
const emptyValue = new Uint8Array(0);
|
|
540
647
|
if (inTransaction && this.coordinator) {
|
|
@@ -556,6 +663,167 @@ export class StoreTable extends VirtualTable {
|
|
|
556
663
|
}
|
|
557
664
|
return true;
|
|
558
665
|
}
|
|
666
|
+
/** Returns true if any column covered by a UNIQUE constraint differs between oldRow and newRow. */
|
|
667
|
+
uniqueColumnsChanged(oldRow, newRow) {
|
|
668
|
+
const ucs = this.tableSchema?.uniqueConstraints;
|
|
669
|
+
if (!ucs || ucs.length === 0)
|
|
670
|
+
return false;
|
|
671
|
+
for (const uc of ucs) {
|
|
672
|
+
for (const colIdx of uc.columns) {
|
|
673
|
+
if (compareSqlValues(oldRow[colIdx], newRow[colIdx]) !== 0)
|
|
674
|
+
return true;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return false;
|
|
678
|
+
}
|
|
679
|
+
/**
|
|
680
|
+
* Enforce table-level UNIQUE constraints against the prospective newRow.
|
|
681
|
+
* Honors `onConflict`: IGNORE returns an ok-with-undefined-row; REPLACE
|
|
682
|
+
* deletes the conflicting row(s) and continues; otherwise returns a
|
|
683
|
+
* constraint result. Returns null when all constraints pass.
|
|
684
|
+
*
|
|
685
|
+
* Rows whose PK is in `selfPks` are skipped (the row being inserted/updated).
|
|
686
|
+
* NULL in any covered column skips that constraint (multiple NULLs are allowed
|
|
687
|
+
* per SQL standard).
|
|
688
|
+
*
|
|
689
|
+
* Reads through the transaction coordinator's pending writes when active so
|
|
690
|
+
* intra-transaction duplicates are detected.
|
|
691
|
+
*/
|
|
692
|
+
async checkUniqueConstraints(inTransaction, newRow, selfPks, onConflict) {
|
|
693
|
+
const schema = this.tableSchema;
|
|
694
|
+
const uniqueConstraints = schema.uniqueConstraints;
|
|
695
|
+
if (!uniqueConstraints || uniqueConstraints.length === 0)
|
|
696
|
+
return null;
|
|
697
|
+
for (const uc of uniqueConstraints) {
|
|
698
|
+
if (uc.columns.some(idx => newRow[idx] === null))
|
|
699
|
+
continue;
|
|
700
|
+
const conflict = await this.findUniqueConflict(uc.columns, newRow, selfPks);
|
|
701
|
+
if (!conflict)
|
|
702
|
+
continue;
|
|
703
|
+
if (onConflict === ConflictResolution.IGNORE) {
|
|
704
|
+
return { status: 'ok', row: undefined };
|
|
705
|
+
}
|
|
706
|
+
if (onConflict === ConflictResolution.REPLACE) {
|
|
707
|
+
await this.deleteRowAt(inTransaction, conflict.pk, conflict.row);
|
|
708
|
+
continue;
|
|
709
|
+
}
|
|
710
|
+
const colNames = uc.columns.map(i => schema.columns[i].name).join(', ');
|
|
711
|
+
return {
|
|
712
|
+
status: 'constraint',
|
|
713
|
+
constraint: 'unique',
|
|
714
|
+
message: `UNIQUE constraint failed: ${schema.name} (${colNames})`,
|
|
715
|
+
existingRow: conflict.row,
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
return null;
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Scan committed + pending data rows for a row matching `newRow` on
|
|
722
|
+
* `constrainedCols` whose PK is not in `selfPks`. Returns the first match
|
|
723
|
+
* or null.
|
|
724
|
+
*/
|
|
725
|
+
async findUniqueConflict(constrainedCols, newRow, selfPks) {
|
|
726
|
+
const store = await this.ensureStore();
|
|
727
|
+
const pending = this.coordinator?.isInTransaction()
|
|
728
|
+
? this.coordinator.getPendingOpsForStore(store)
|
|
729
|
+
: null;
|
|
730
|
+
const matches = (candidate) => {
|
|
731
|
+
const pk = this.extractPK(candidate);
|
|
732
|
+
for (const skip of selfPks) {
|
|
733
|
+
if (this.keysEqual(pk, skip))
|
|
734
|
+
return null;
|
|
735
|
+
}
|
|
736
|
+
for (const idx of constrainedCols) {
|
|
737
|
+
if (compareSqlValues(newRow[idx], candidate[idx]) !== 0)
|
|
738
|
+
return null;
|
|
739
|
+
}
|
|
740
|
+
return { pk, row: candidate };
|
|
741
|
+
};
|
|
742
|
+
const seen = new Set();
|
|
743
|
+
const bounds = buildFullScanBounds();
|
|
744
|
+
for await (const entry of store.iterate(bounds)) {
|
|
745
|
+
const hex = bytesToHex(entry.key);
|
|
746
|
+
seen.add(hex);
|
|
747
|
+
if (pending?.deletes.has(hex))
|
|
748
|
+
continue;
|
|
749
|
+
const overlay = pending?.puts.get(hex);
|
|
750
|
+
const value = overlay ? overlay.value : entry.value;
|
|
751
|
+
const found = matches(deserializeRow(value));
|
|
752
|
+
if (found)
|
|
753
|
+
return found;
|
|
754
|
+
}
|
|
755
|
+
if (pending) {
|
|
756
|
+
for (const [hex, op] of pending.puts) {
|
|
757
|
+
if (seen.has(hex))
|
|
758
|
+
continue;
|
|
759
|
+
const found = matches(deserializeRow(op.value));
|
|
760
|
+
if (found)
|
|
761
|
+
return found;
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return null;
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Fully delete the row at `pk` (data + secondary indexes + stats + delete event).
|
|
768
|
+
* Used by REPLACE conflict resolution to evict a conflicting unique row before
|
|
769
|
+
* the caller's insert/update proceeds.
|
|
770
|
+
*/
|
|
771
|
+
async deleteRowAt(inTransaction, pk, oldRow) {
|
|
772
|
+
const store = await this.ensureStore();
|
|
773
|
+
const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
|
|
774
|
+
if (inTransaction && this.coordinator) {
|
|
775
|
+
this.coordinator.delete(key);
|
|
776
|
+
}
|
|
777
|
+
else {
|
|
778
|
+
await store.delete(key);
|
|
779
|
+
}
|
|
780
|
+
await this.updateSecondaryIndexes(inTransaction, oldRow, null, pk);
|
|
781
|
+
this.trackMutation(-1, inTransaction);
|
|
782
|
+
const schema = this.tableSchema;
|
|
783
|
+
const deleteEvent = {
|
|
784
|
+
type: 'delete',
|
|
785
|
+
schemaName: schema.schemaName,
|
|
786
|
+
tableName: schema.name,
|
|
787
|
+
key: pk,
|
|
788
|
+
oldRow,
|
|
789
|
+
};
|
|
790
|
+
if (inTransaction && this.coordinator) {
|
|
791
|
+
this.coordinator.queueEvent(deleteEvent);
|
|
792
|
+
}
|
|
793
|
+
else {
|
|
794
|
+
this.eventEmitter?.emitDataChange(deleteEvent);
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Begin a table-scoped transaction by ensuring the coordinator is active.
|
|
799
|
+
*
|
|
800
|
+
* Used by the isolation layer's flush path, which treats the underlying
|
|
801
|
+
* write as an independent mini-transaction. Idempotent: if the coordinator
|
|
802
|
+
* is already in a transaction (e.g. started by a registered connection),
|
|
803
|
+
* this is a no-op.
|
|
804
|
+
*/
|
|
805
|
+
async begin() {
|
|
806
|
+
const coordinator = await this.ensureCoordinator();
|
|
807
|
+
coordinator.begin();
|
|
808
|
+
}
|
|
809
|
+
/**
|
|
810
|
+
* Commits a table-scoped transaction, flushing any buffered writes to the KV store.
|
|
811
|
+
* No-op if the coordinator is not currently in a transaction.
|
|
812
|
+
*/
|
|
813
|
+
async commit() {
|
|
814
|
+
if (this.coordinator?.isInTransaction()) {
|
|
815
|
+
await this.coordinator.commit();
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
/**
|
|
819
|
+
* Rolls back a table-scoped transaction, discarding any buffered writes.
|
|
820
|
+
* No-op if the coordinator is not currently in a transaction.
|
|
821
|
+
*/
|
|
822
|
+
async rollback() {
|
|
823
|
+
if (this.coordinator?.isInTransaction()) {
|
|
824
|
+
this.coordinator.rollback();
|
|
825
|
+
}
|
|
826
|
+
}
|
|
559
827
|
/** Disconnect from the store. */
|
|
560
828
|
async disconnect() {
|
|
561
829
|
// Called by Quereus after each scan completes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-table.js","sourceRoot":"","sources":["../../../src/common/store-table.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store-table.js","sourceRoot":"","sources":["../../../src/common/store-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,18 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { DataChangeEvent, StoreEventEmitter } from './events.js';
|
|
8
8
|
import type { KVStore } from './kv-store.js';
|
|
9
|
+
/**
|
|
10
|
+
* View of buffered ops targeting a specific store, with last-write-wins semantics.
|
|
11
|
+
*/
|
|
12
|
+
export interface PendingStoreOps {
|
|
13
|
+
/** Pending puts (key/value) for this store, keyed by hex-encoded key. */
|
|
14
|
+
puts: Map<string, {
|
|
15
|
+
key: Uint8Array;
|
|
16
|
+
value: Uint8Array;
|
|
17
|
+
}>;
|
|
18
|
+
/** Hex-encoded keys with a pending delete for this store. */
|
|
19
|
+
deletes: Set<string>;
|
|
20
|
+
}
|
|
9
21
|
/** Callback for transaction lifecycle events. */
|
|
10
22
|
export interface TransactionCallbacks {
|
|
11
23
|
onCommit: () => void;
|
|
@@ -53,5 +65,11 @@ export declare class TransactionCoordinator {
|
|
|
53
65
|
private clearTransaction;
|
|
54
66
|
/** Get the underlying store for direct reads. */
|
|
55
67
|
getStore(): KVStore;
|
|
68
|
+
/**
|
|
69
|
+
* Snapshot pending ops targeting the given store (or the default if omitted),
|
|
70
|
+
* collapsed to last-write-wins. Used by reads that need to see
|
|
71
|
+
* intra-transaction writes (e.g. UNIQUE constraint checks).
|
|
72
|
+
*/
|
|
73
|
+
getPendingOpsForStore(store?: KVStore): PendingStoreOps;
|
|
56
74
|
}
|
|
57
75
|
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/common/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/common/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAe7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAC1D,6DAA6D;IAC7D,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB;AAQD,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,YAAY,CAAC,CAAoB;IAGzC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,SAAS,CAA8B;gBAEnC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,iBAAiB;IAK5D,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAIxD,wCAAwC;IACxC,eAAe,IAAI,OAAO;IAI1B,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAWb,8FAA8F;IAC9F,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAO9D,iGAAiG;IACjG,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAO9C,mDAAmD;IACnD,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IASxC,8BAA8B;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA4C7B,gCAAgC;IAChC,QAAQ,IAAI,IAAI;IAahB,6CAA6C;IAC7C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWrC,mDAAmD;IACnD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3C,6EAA6E;IAC7E,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAe9C,mCAAmC;IACnC,OAAO,CAAC,gBAAgB;IAOxB,iDAAiD;IACjD,QAAQ,IAAI,OAAO;IAInB;;;;OAIG;IACH,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,eAAe;CAkBxD"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* providing multi-table atomicity.
|
|
6
6
|
*/
|
|
7
7
|
import { QuereusError, StatusCode } from '@quereus/quereus';
|
|
8
|
+
/** Hex-encode a key for use as a Map key. */
|
|
9
|
+
function keyToHex(key) {
|
|
10
|
+
return Array.from(key).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
11
|
+
}
|
|
8
12
|
/**
|
|
9
13
|
* Coordinates transactions across multiple tables.
|
|
10
14
|
*
|
|
@@ -161,5 +165,30 @@ export class TransactionCoordinator {
|
|
|
161
165
|
getStore() {
|
|
162
166
|
return this.store;
|
|
163
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Snapshot pending ops targeting the given store (or the default if omitted),
|
|
170
|
+
* collapsed to last-write-wins. Used by reads that need to see
|
|
171
|
+
* intra-transaction writes (e.g. UNIQUE constraint checks).
|
|
172
|
+
*/
|
|
173
|
+
getPendingOpsForStore(store) {
|
|
174
|
+
const target = store ?? this.store;
|
|
175
|
+
const puts = new Map();
|
|
176
|
+
const deletes = new Set();
|
|
177
|
+
for (const op of this.pendingOps) {
|
|
178
|
+
const opStore = op.store ?? this.store;
|
|
179
|
+
if (opStore !== target)
|
|
180
|
+
continue;
|
|
181
|
+
const hex = keyToHex(op.key);
|
|
182
|
+
if (op.type === 'put') {
|
|
183
|
+
puts.set(hex, { key: op.key, value: op.value });
|
|
184
|
+
deletes.delete(hex);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
deletes.add(hex);
|
|
188
|
+
puts.delete(hex);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return { puts, deletes };
|
|
192
|
+
}
|
|
164
193
|
}
|
|
165
194
|
//# sourceMappingURL=transaction.js.map
|