@quereus/store 2.4.1 → 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 +208 -13
- package/dist/src/common/store-module.js.map +1 -1
- package/dist/src/common/store-table.d.ts +86 -1
- package/dist/src/common/store-table.d.ts.map +1 -1
- package/dist/src/common/store-table.js +323 -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,91 @@ 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;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Scan every row, checking whether the column at `colIndex` ever holds NULL.
|
|
84
|
+
* Used by ALTER COLUMN SET NOT NULL to decide whether the tightening is safe.
|
|
85
|
+
*/
|
|
86
|
+
async rowsWithNullAtIndex(colIndex) {
|
|
87
|
+
const store = await this.ensureStore();
|
|
88
|
+
const bounds = buildFullScanBounds();
|
|
89
|
+
let count = 0;
|
|
90
|
+
for await (const entry of store.iterate(bounds)) {
|
|
91
|
+
const row = deserializeRow(entry.value);
|
|
92
|
+
if (row[colIndex] === null)
|
|
93
|
+
count++;
|
|
94
|
+
}
|
|
95
|
+
return count;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Apply a per-row mapping function to every stored row, in place (re-writing
|
|
99
|
+
* the same key). The mapper may throw QuereusError — propagated to the caller.
|
|
100
|
+
*/
|
|
101
|
+
async mapRowsAtIndex(colIndex, mapper) {
|
|
102
|
+
const store = await this.ensureStore();
|
|
103
|
+
const bounds = buildFullScanBounds();
|
|
104
|
+
const batch = store.batch();
|
|
105
|
+
for await (const entry of store.iterate(bounds)) {
|
|
106
|
+
const row = deserializeRow(entry.value);
|
|
107
|
+
const oldVal = row[colIndex];
|
|
108
|
+
const newVal = mapper(oldVal);
|
|
109
|
+
if (newVal === oldVal)
|
|
110
|
+
continue;
|
|
111
|
+
const newRow = row.slice();
|
|
112
|
+
newRow[colIndex] = newVal;
|
|
113
|
+
batch.put(entry.key, serializeRow(newRow));
|
|
114
|
+
}
|
|
115
|
+
await batch.write();
|
|
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();
|
|
63
154
|
}
|
|
64
155
|
/**
|
|
65
156
|
* Migrate all stored rows from the old column layout to a new one.
|
|
@@ -201,12 +292,25 @@ export class StoreTable extends VirtualTable {
|
|
|
201
292
|
const schema = this.tableSchema;
|
|
202
293
|
return schema.primaryKeyDefinition.map(pk => row[pk.index]);
|
|
203
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
|
+
}
|
|
204
308
|
/** Query the table with optional filters. */
|
|
205
309
|
async *query(filterInfo) {
|
|
206
310
|
const store = await this.ensureStore();
|
|
207
311
|
const pkAccess = this.analyzePKAccess(filterInfo);
|
|
208
312
|
if (pkAccess.type === 'point') {
|
|
209
|
-
const key = buildDataKey(pkAccess.values, this.encodeOptions);
|
|
313
|
+
const key = buildDataKey(pkAccess.values, this.encodeOptions, this.pkDirections);
|
|
210
314
|
const value = await store.get(key);
|
|
211
315
|
if (value) {
|
|
212
316
|
const row = deserializeRow(value);
|
|
@@ -327,8 +431,9 @@ export class StoreTable extends VirtualTable {
|
|
|
327
431
|
case 'insert': {
|
|
328
432
|
if (!values)
|
|
329
433
|
throw new QuereusError('INSERT requires values', StatusCode.MISUSE);
|
|
330
|
-
const
|
|
331
|
-
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);
|
|
332
437
|
// Check for existing row (for conflict handling)
|
|
333
438
|
const existing = await store.get(key);
|
|
334
439
|
if (existing) {
|
|
@@ -345,8 +450,12 @@ export class StoreTable extends VirtualTable {
|
|
|
345
450
|
};
|
|
346
451
|
}
|
|
347
452
|
}
|
|
453
|
+
// Enforce non-PK UNIQUE constraints
|
|
454
|
+
const ucResult = await this.checkUniqueConstraints(inTransaction, coerced, [pk], args.onConflict);
|
|
455
|
+
if (ucResult)
|
|
456
|
+
return ucResult;
|
|
348
457
|
const oldRow = existing ? deserializeRow(existing) : null;
|
|
349
|
-
const serializedRow = serializeRow(
|
|
458
|
+
const serializedRow = serializeRow(coerced);
|
|
350
459
|
if (inTransaction) {
|
|
351
460
|
coordinator.put(key, serializedRow);
|
|
352
461
|
}
|
|
@@ -354,7 +463,7 @@ export class StoreTable extends VirtualTable {
|
|
|
354
463
|
await store.put(key, serializedRow);
|
|
355
464
|
}
|
|
356
465
|
// Update secondary indexes
|
|
357
|
-
await this.updateSecondaryIndexes(inTransaction, oldRow,
|
|
466
|
+
await this.updateSecondaryIndexes(inTransaction, oldRow, coerced, pk);
|
|
358
467
|
// Track statistics (only count as new if not replacing)
|
|
359
468
|
if (!existing) {
|
|
360
469
|
this.trackMutation(+1, inTransaction);
|
|
@@ -368,7 +477,7 @@ export class StoreTable extends VirtualTable {
|
|
|
368
477
|
tableName: schema.name,
|
|
369
478
|
key: pk,
|
|
370
479
|
oldRow,
|
|
371
|
-
newRow:
|
|
480
|
+
newRow: coerced,
|
|
372
481
|
};
|
|
373
482
|
if (inTransaction) {
|
|
374
483
|
coordinator.queueEvent(updateEvent);
|
|
@@ -383,7 +492,7 @@ export class StoreTable extends VirtualTable {
|
|
|
383
492
|
schemaName: schema.schemaName,
|
|
384
493
|
tableName: schema.name,
|
|
385
494
|
key: pk,
|
|
386
|
-
newRow:
|
|
495
|
+
newRow: coerced,
|
|
387
496
|
};
|
|
388
497
|
if (inTransaction) {
|
|
389
498
|
coordinator.queueEvent(insertEvent);
|
|
@@ -392,20 +501,52 @@ export class StoreTable extends VirtualTable {
|
|
|
392
501
|
this.eventEmitter?.emitDataChange(insertEvent);
|
|
393
502
|
}
|
|
394
503
|
}
|
|
395
|
-
return { status: 'ok', row:
|
|
504
|
+
return { status: 'ok', row: coerced, replacedRow: oldRow ?? undefined };
|
|
396
505
|
}
|
|
397
506
|
case 'update': {
|
|
398
507
|
if (!values || !oldKeyValues)
|
|
399
508
|
throw new QuereusError('UPDATE requires values and oldKeyValues', StatusCode.MISUSE);
|
|
509
|
+
const coerced = args.preCoerced ? values : this.coerceRow(values);
|
|
400
510
|
const oldPk = this.extractPK(oldKeyValues);
|
|
401
|
-
const newPk = this.extractPK(
|
|
402
|
-
const oldKey = buildDataKey(oldPk, this.encodeOptions);
|
|
403
|
-
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);
|
|
404
514
|
// Get old row for index updates
|
|
405
515
|
const oldRowData = await store.get(oldKey);
|
|
406
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
|
+
}
|
|
407
548
|
// Delete old key if PK changed
|
|
408
|
-
if (
|
|
549
|
+
if (pkChanged) {
|
|
409
550
|
if (inTransaction) {
|
|
410
551
|
coordinator.delete(oldKey);
|
|
411
552
|
}
|
|
@@ -413,7 +554,7 @@ export class StoreTable extends VirtualTable {
|
|
|
413
554
|
await store.delete(oldKey);
|
|
414
555
|
}
|
|
415
556
|
}
|
|
416
|
-
const serializedRow = serializeRow(
|
|
557
|
+
const serializedRow = serializeRow(coerced);
|
|
417
558
|
if (inTransaction) {
|
|
418
559
|
coordinator.put(newKey, serializedRow);
|
|
419
560
|
}
|
|
@@ -421,7 +562,7 @@ export class StoreTable extends VirtualTable {
|
|
|
421
562
|
await store.put(newKey, serializedRow);
|
|
422
563
|
}
|
|
423
564
|
// Update secondary indexes
|
|
424
|
-
await this.updateSecondaryIndexes(inTransaction, oldRow,
|
|
565
|
+
await this.updateSecondaryIndexes(inTransaction, oldRow, coerced, newPk);
|
|
425
566
|
// Queue or emit event
|
|
426
567
|
const updateEvent = {
|
|
427
568
|
type: 'update',
|
|
@@ -429,7 +570,7 @@ export class StoreTable extends VirtualTable {
|
|
|
429
570
|
tableName: schema.name,
|
|
430
571
|
key: newPk,
|
|
431
572
|
oldRow: oldRow || undefined,
|
|
432
|
-
newRow:
|
|
573
|
+
newRow: coerced,
|
|
433
574
|
};
|
|
434
575
|
if (inTransaction) {
|
|
435
576
|
coordinator.queueEvent(updateEvent);
|
|
@@ -437,13 +578,13 @@ export class StoreTable extends VirtualTable {
|
|
|
437
578
|
else {
|
|
438
579
|
this.eventEmitter?.emitDataChange(updateEvent);
|
|
439
580
|
}
|
|
440
|
-
return { status: 'ok', row:
|
|
581
|
+
return { status: 'ok', row: coerced };
|
|
441
582
|
}
|
|
442
583
|
case 'delete': {
|
|
443
584
|
if (!oldKeyValues)
|
|
444
585
|
throw new QuereusError('DELETE requires oldKeyValues', StatusCode.MISUSE);
|
|
445
586
|
const pk = this.extractPK(oldKeyValues);
|
|
446
|
-
const key = buildDataKey(pk, this.encodeOptions);
|
|
587
|
+
const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
|
|
447
588
|
// Get old row for index cleanup
|
|
448
589
|
const oldRowData = await store.get(key);
|
|
449
590
|
const oldRow = oldRowData ? deserializeRow(oldRowData) : null;
|
|
@@ -485,10 +626,11 @@ export class StoreTable extends VirtualTable {
|
|
|
485
626
|
for (const index of indexes) {
|
|
486
627
|
const indexStore = await this.ensureIndexStore(index.name);
|
|
487
628
|
const indexCols = index.columns.map(c => c.index);
|
|
629
|
+
const indexDirections = index.columns.map(c => !!c.desc);
|
|
488
630
|
// Remove old index entry
|
|
489
631
|
if (oldRow) {
|
|
490
632
|
const oldIndexValues = indexCols.map(i => oldRow[i]);
|
|
491
|
-
const oldIndexKey = buildIndexKey(oldIndexValues, pk, this.encodeOptions);
|
|
633
|
+
const oldIndexKey = buildIndexKey(oldIndexValues, pk, this.encodeOptions, indexDirections, this.pkDirections);
|
|
492
634
|
if (inTransaction && this.coordinator) {
|
|
493
635
|
this.coordinator.delete(oldIndexKey, indexStore);
|
|
494
636
|
}
|
|
@@ -499,7 +641,7 @@ export class StoreTable extends VirtualTable {
|
|
|
499
641
|
// Add new index entry
|
|
500
642
|
if (newRow) {
|
|
501
643
|
const newIndexValues = indexCols.map(i => newRow[i]);
|
|
502
|
-
const newIndexKey = buildIndexKey(newIndexValues, pk, this.encodeOptions);
|
|
644
|
+
const newIndexKey = buildIndexKey(newIndexValues, pk, this.encodeOptions, indexDirections, this.pkDirections);
|
|
503
645
|
// Index value is empty - we just need the key for lookups
|
|
504
646
|
const emptyValue = new Uint8Array(0);
|
|
505
647
|
if (inTransaction && this.coordinator) {
|
|
@@ -521,6 +663,167 @@ export class StoreTable extends VirtualTable {
|
|
|
521
663
|
}
|
|
522
664
|
return true;
|
|
523
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
|
+
}
|
|
524
827
|
/** Disconnect from the store. */
|
|
525
828
|
async disconnect() {
|
|
526
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"}
|