@quereus/isolation 4.22.0 → 4.23.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
CHANGED
|
@@ -1,275 +1,275 @@
|
|
|
1
|
-
# @quereus/isolation
|
|
2
|
-
|
|
3
|
-
> **Stability: Beta** — complete and tested, but the surface is still being shaped; a
|
|
4
|
-
> breaking change may land in a minor release. See
|
|
5
|
-
> [Stability Tiers](../../docs/stability.md#tiers).
|
|
6
|
-
|
|
7
|
-
Generic transaction isolation layer for Quereus virtual table modules.
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
The `@quereus/isolation` package provides connection-level transaction isolation for any Quereus virtual table module. It wraps existing modules to add:
|
|
12
|
-
|
|
13
|
-
- **Read-your-own-writes** — See uncommitted changes within your transaction
|
|
14
|
-
- **Read-committed reads of shared state** — Reads merge against the *live* underlying table, so another connection's committed writes can become visible mid-transaction. This is **not** snapshot isolation — reads are not a stable point-in-time view. A stable snapshot, if needed, is the job of whatever module is layered beneath this one (see [Isolation Level](#isolation-level) below).
|
|
15
|
-
- **Savepoint support** — Nested transaction control
|
|
16
|
-
- **No write-write conflict detection** — Concurrent writers to the same row are not detected; the last connection to flush wins.
|
|
17
|
-
|
|
18
|
-
This allows module authors to focus on storage concerns while getting isolation "for free."
|
|
19
|
-
|
|
20
|
-
## Installation
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
yarn add @quereus/isolation @quereus/quereus
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Quick Start
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
import { Database, MemoryTableModule } from '@quereus/quereus';
|
|
30
|
-
import { IsolationModule } from '@quereus/isolation';
|
|
31
|
-
|
|
32
|
-
const db = new Database();
|
|
33
|
-
|
|
34
|
-
// Create any underlying module (memory, store, custom, etc.)
|
|
35
|
-
const memoryModule = new MemoryTableModule();
|
|
36
|
-
|
|
37
|
-
// Wrap it with the isolation layer
|
|
38
|
-
const isolatedModule = new IsolationModule({
|
|
39
|
-
underlying: memoryModule,
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
db.registerModule('isolated', isolatedModule);
|
|
43
|
-
|
|
44
|
-
// Use it like any other module, but with full isolation
|
|
45
|
-
await db.exec(`CREATE TABLE users (
|
|
46
|
-
id INTEGER PRIMARY KEY,
|
|
47
|
-
name TEXT
|
|
48
|
-
) USING isolated`);
|
|
49
|
-
|
|
50
|
-
await db.exec('BEGIN');
|
|
51
|
-
await db.exec(`INSERT INTO users VALUES (1, 'Alice')`);
|
|
52
|
-
|
|
53
|
-
// Reads see uncommitted changes
|
|
54
|
-
const user = await db.get('SELECT * FROM users WHERE id = 1');
|
|
55
|
-
console.log(user.name); // 'Alice'
|
|
56
|
-
|
|
57
|
-
await db.exec('COMMIT'); // Or ROLLBACK
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Architecture
|
|
61
|
-
|
|
62
|
-
The isolation layer operates at the **row level**, merging query results from two modules:
|
|
63
|
-
|
|
64
|
-
1. **Overlay module** — Stores uncommitted changes (inserts, updates, deletes as tombstones)
|
|
65
|
-
2. **Underlying module** — Stores committed data
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
┌─────────────────────────────────────────────────────────┐
|
|
69
|
-
│ IsolationModule │
|
|
70
|
-
│ │
|
|
71
|
-
│ ┌────────────────────────────────────────────────────┐ │
|
|
72
|
-
│ │ Overlay Module (e.g., memory vtab) │ │
|
|
73
|
-
│ │ - Stores pending inserts, updates, tombstones │ │
|
|
74
|
-
│ │ - Per-connection isolation │ │
|
|
75
|
-
│ └────────────────────────────────────────────────────┘ │
|
|
76
|
-
│ │ │
|
|
77
|
-
│ │ row-level merge │
|
|
78
|
-
│ ▼ │
|
|
79
|
-
│ ┌────────────────────────────────────────────────────┐ │
|
|
80
|
-
│ │ Underlying Module (any) │ │
|
|
81
|
-
│ │ - LevelDB / IndexedDB store │ │
|
|
82
|
-
│ │ - Custom module without isolation │ │
|
|
83
|
-
│ └────────────────────────────────────────────────────┘ │
|
|
84
|
-
└─────────────────────────────────────────────────────────┘
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Reading a pushed index window
|
|
88
|
-
|
|
89
|
-
When the underlying serves a read through an index seek, the overlay must be narrowed to
|
|
90
|
-
the same window — otherwise a staged row outside it would leak into the answer. The
|
|
91
|
-
overlay is full-scanned (it cannot resolve an index name the underlying minted for its own
|
|
92
|
-
plan), and `IsolatedTable`'s constraint matcher re-applies the pushed window itself. Several
|
|
93
|
-
equality constraints on the *same* column are read as an **IN set**, not as an AND: that is
|
|
94
|
-
how an `IN`-list seek is encoded — one equality per seek value — so an AND reading would
|
|
95
|
-
match nothing and silently drop every staged row.
|
|
96
|
-
|
|
97
|
-
This holds for a set of values that only exists at run time (`where v in (select …)`,
|
|
98
|
-
which the engine may materialize and push down as a seek) exactly as it does for a literal
|
|
99
|
-
`in (1, 2, 3)`: the pushed window has the same shape either way, and this layer cannot —
|
|
100
|
-
and need not — tell them apart.
|
|
101
|
-
|
|
102
|
-
One ordering caveat. The **primary-key** merge walks both streams in the primary key's own
|
|
103
|
-
declared order — ascending, or descending for a `primary key (… desc)`. The engine sorts a
|
|
104
|
-
run-time key set into that same order before pushing it, so that path arrives in order. A
|
|
105
|
-
**literal** list does not: `where pk in (3, 1, 2)` is visited in list order, and with rows
|
|
106
|
-
staged in the transaction the merge mis-pairs them — a staged update can surface alongside
|
|
107
|
-
the stale stored row, and a staged delete can reappear. That is tracked as
|
|
108
|
-
`backlog/bug-isolation-multiseek-merge-order`; the secondary-index merge is unaffected
|
|
109
|
-
(it sorts the overlay itself and excludes shadowed rows by primary key).
|
|
110
|
-
|
|
111
|
-
## Isolation Level
|
|
112
|
-
|
|
113
|
-
The guarantee this layer actually provides is closer to **read-committed with
|
|
114
|
-
read-your-own-writes** than to snapshot isolation:
|
|
115
|
-
|
|
116
|
-
- **Read-your-own-writes** — a connection always sees its own uncommitted overlay
|
|
117
|
-
changes.
|
|
118
|
-
- **Live reads of shared state** — the merged read path queries the *live* underlying
|
|
119
|
-
table on every read, not a point-in-time copy taken at `BEGIN`. If another
|
|
120
|
-
connection commits mid-transaction, the next read in this transaction can observe
|
|
121
|
-
that write. Reads are **not** isolated from concurrent commits.
|
|
122
|
-
- **No write-write conflict detection** — two connections that write the same row in
|
|
123
|
-
overlapping transactions are not detected as conflicting; whichever connection
|
|
124
|
-
flushes (commits) last overwrites the other.
|
|
125
|
-
- **Snapshotting is delegated downward** — if a consumer needs a stable, point-in-time
|
|
126
|
-
view of the data, that guarantee must come from the module wrapped *beneath* this
|
|
127
|
-
layer (the `underlying` module), not from `IsolationModule` itself. A future
|
|
128
|
-
optional snapshotting pass-through module may be added below the isolation layer
|
|
129
|
-
for consumers that need this; it does not exist today.
|
|
130
|
-
|
|
131
|
-
### Key Features
|
|
132
|
-
|
|
133
|
-
**Per-connection overlay** — Each database instance gets its own overlay storage, ensuring proper isolation between connections.
|
|
134
|
-
|
|
135
|
-
**Lazy overlay creation** — No memory overhead until the first write in a transaction.
|
|
136
|
-
|
|
137
|
-
**Transparent hook forwarding** — `IsolationModule` is a wrapper, so the engine/planner/lens machinery reaches *it* (the registered module) rather than the underlying. Optional `VirtualTableModule` hooks whose behavior is isolation-transparent are forwarded straight through to the underlying: `getMappingAdvertisements` (decomposition shape), `getBestAccessPlan` (index awareness), the `beginSchemaBatch` / `endSchemaBatch` APPLY SCHEMA batch hooks (single-substrate-commit batching of migration DDL), `onRegister` (the registration-time handoff of the `Database`, which a persisting underlying uses to subscribe to the schema-change notifier before any statement runs — which `Database` a module serves is isolation-transparent, and without the forward a wrapped store would fall back to subscribing at its first table hook and silently drop a view created ahead of that), `assertCatalogObjectPersistable` (the pre-flight veto that lets a persisting module refuse a view / materialized view — or a table a RENAME would rewrite — whose catalog entry it could not durably write; whether a definition is encodable is a property of the definition text, not of the overlay, and without the forward a wrapped store would silently keep dropping such views on reopen. The table arm also needs the underlying module to recognise its OWN tables through this wrapper, since a wrapped table's `vtabModule` is the `IsolationModule`: it does so by matching `underlying`), and `getBackingHost` (the materialized-view backing-host capability — assigned in the constructor only when the underlying implements it, so method *presence* mirrors the underlying; backing writes are privileged and bypass the per-connection overlay entirely, making the underlying host's pending state the right surface). Hooks whose underlying value would *misdescribe* the wrapped behavior are intentionally **not** forwarded: `getCapabilities` is augmented with `isolation`/`savepoints` rather than passed through verbatim; `supports` (full-query push-down) is suppressed so the overlay always sees every row to merge; and `concurrencyMode` / `expectedLatencyMs` are derived rather than passed through verbatim: `concurrencyMode` is the weaker of the underlying and overlay modes, capped at `reentrant-reads` (the wrapper's own write path mutates shared overlay-merge state non-atomically, so it is never `fully-reentrant`), while `expectedLatencyMs`
|
|
138
|
-
|
|
139
|
-
**Atomic ALTER (issuer-faithful) + cross-connection poison** — DDL through Quereus is not transaction-scoped and the shared underlying base auto-commits its mutation immediately, so a half-applied ALTER cannot be rolled back. The blast radius is isolation-faithful — an ALTER never depends on another connection's uncommitted data:
|
|
140
|
-
|
|
141
|
-
- **Issuer's own overlay** — `IsolationModule.alterTable` dry-run **validates the issuing connection's own affected overlay's backfill** (per-row `NOT NULL` checks — for a new `ADD COLUMN ... NOT NULL` and for tightening an existing column with `ALTER COLUMN ... SET NOT NULL` — and the tombstone-present guard) *before* mutating the underlying. A rejection fires while the underlying, the schema catalog, and every overlay are still untouched, so for the issuer the ALTER either fails clean or fully applies — base and catalog never diverge. (The issuer staged both the data and the DDL, so rejecting up front is the least-surprising behavior.)
|
|
142
|
-
- **`ALTER TABLE ... ALTER COLUMN ... SET COLLATE` on a primary-key column** — the change re-keys the table, so two staged rows can land on one new key. A deletion marker sharing its new key with a staged live row is that row's before-image (delete `'A'`, insert `'a'`, then switch to `NOCASE`), so the marker is discarded and the ALTER succeeds; two staged **live** rows on one key are a real duplicate and are refused. A shape the re-keyed overlay cannot physically hold — a savepoint that could restore both a marker and its replacement at one key — is refused as retryable (`BUSY`), the same answer a plain non-isolated table gives. Every refusal is surfaced *before* the shared underlying is touched, so the transaction survives intact.
|
|
143
|
-
- **`ALTER TABLE ... ALTER PRIMARY KEY`** — the one change no overlay can follow: an overlay's staged rows (and its deletion markers) are keyed by the *old* primary key. A connection that has uncommitted changes staged for the table is therefore rejected with `BUSY` (retryable — not `UNSUPPORTED`, which the engine would treat as "fall back to a shadow-table rebuild" and silently lose the staged writes) *before* the underlying is touched — commit or roll back first, then retry. Another connection's overlay holding staged rows is poisoned; one holding nothing is swapped for an empty overlay under the new key. (Both bundled underlyings — `MemoryTableModule` and the store — re-key in place, so these paths arise under either. The refusal above is about the *overlay's* representation, not the underlying's capability.)
|
|
144
|
-
- **Another connection's overlay** — the shared underlying and the catalog change regardless of any *other* connection's uncommitted state. A foreign overlay that *can* migrate is carried forward as usual (a staged `NULL` is backfilled when a usable literal `DEFAULT` exists); one that *cannot* (its staged row can't satisfy the new or newly-`NOT NULL` column) is left in place and marked **poisoned**. Its owning connection then raises a `CONSTRAINT` error the next time it reads (merged), writes, or commits that table, and recovers by rolling back (which discards the overlay and its poison). A committed-snapshot (`committed.<table>`) read bypasses the overlay and keeps working. A layer-invariant violation (e.g. a missing tombstone column, `INTERNAL`) still rethrows loud for everyone rather than poisoning.
|
|
145
|
-
- **`ALTER TABLE ... ADD COLUMN` position** — `SchemaChangeInfo`'s optional `insertAtIndex` names a slot instead of the end (there is no SQL syntax for it; only an in-process module wrapper can set one). A caller-named position is honored in the overlay too, for both the issuer's own overlay and every migrated foreign one; with none supplied, the new column lands ahead of the overlay's own deletion-marker column so that column stays last.
|
|
146
|
-
|
|
147
|
-
**Configurable overlay module** — Use memory for fast transactions, or persistent storage for large transactions:
|
|
148
|
-
|
|
149
|
-
```typescript
|
|
150
|
-
import { IsolationModule } from '@quereus/isolation';
|
|
151
|
-
import { MemoryTableModule } from '@quereus/quereus';
|
|
152
|
-
import { StoreModule } from '@quereus/store';
|
|
153
|
-
|
|
154
|
-
// Fast, ephemeral overlay (default)
|
|
155
|
-
const isolatedModule = new IsolationModule({
|
|
156
|
-
underlying: myStoreModule,
|
|
157
|
-
overlay: new MemoryTableModule(),
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
// Or use persistent overlay for large transactions
|
|
161
|
-
const isolatedModule = new IsolationModule({
|
|
162
|
-
underlying: myStoreModule,
|
|
163
|
-
overlay: new StoreModule(tempStoreProvider),
|
|
164
|
-
});
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## API
|
|
168
|
-
|
|
169
|
-
### `IsolationModule`
|
|
170
|
-
|
|
171
|
-
```typescript
|
|
172
|
-
class IsolationModule implements VirtualTableModule {
|
|
173
|
-
constructor(config: IsolationModuleConfig);
|
|
174
|
-
getCapabilities(): ModuleCapabilities;
|
|
175
|
-
}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
#### Configuration
|
|
179
|
-
|
|
180
|
-
```typescript
|
|
181
|
-
interface IsolationModuleConfig {
|
|
182
|
-
/** Module to wrap with isolation semantics */
|
|
183
|
-
underlying: VirtualTableModule<any, any>;
|
|
184
|
-
|
|
185
|
-
/** Optional overlay module (defaults to MemoryTableModule) */
|
|
186
|
-
overlay?: VirtualTableModule<any, any>;
|
|
187
|
-
|
|
188
|
-
/** Optional tombstone column name (defaults to '_tombstone') */
|
|
189
|
-
tombstoneColumn?: string;
|
|
190
|
-
}
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### Merge Utilities
|
|
194
|
-
|
|
195
|
-
The package also exports low-level utilities for merging sorted streams:
|
|
196
|
-
|
|
197
|
-
```typescript
|
|
198
|
-
import { mergeStreams, createMergeEntry, createTombstone } from '@quereus/isolation';
|
|
199
|
-
|
|
200
|
-
// Merge two sorted streams (overlay and underlying)
|
|
201
|
-
const merged = mergeStreams(overlayStream, underlyingStream, {
|
|
202
|
-
comparePK: (a, b) => /* compare primary keys */,
|
|
203
|
-
extractPK: (row) => /* extract PK from row */,
|
|
204
|
-
});
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
See the [design document](https://github.com/gotchoices/quereus/blob/main/docs/design-isolation-layer.md) for detailed architecture and implementation notes.
|
|
208
|
-
|
|
209
|
-
## Use Cases
|
|
210
|
-
|
|
211
|
-
### Store Module Isolation
|
|
212
|
-
|
|
213
|
-
The `@quereus/store` package provides a convenience function:
|
|
214
|
-
|
|
215
|
-
```typescript
|
|
216
|
-
import { createIsolatedStoreModule } from '@quereus/store';
|
|
217
|
-
import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
218
|
-
|
|
219
|
-
const provider = createLevelDBProvider({ basePath: './data' });
|
|
220
|
-
const module = createIsolatedStoreModule({ provider });
|
|
221
|
-
|
|
222
|
-
db.registerModule('store', module);
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Custom Module Isolation
|
|
226
|
-
|
|
227
|
-
Wrap any custom module:
|
|
228
|
-
|
|
229
|
-
```typescript
|
|
230
|
-
import { IsolationModule } from '@quereus/isolation';
|
|
231
|
-
import { MyCustomModule } from './my-module';
|
|
232
|
-
|
|
233
|
-
const isolatedModule = new IsolationModule({
|
|
234
|
-
underlying: new MyCustomModule(),
|
|
235
|
-
});
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## Checking Capabilities
|
|
239
|
-
|
|
240
|
-
```typescript
|
|
241
|
-
const caps = isolatedModule.getCapabilities();
|
|
242
|
-
console.log(caps.isolation); // true
|
|
243
|
-
console.log(caps.savepoints); // true
|
|
244
|
-
console.log(caps.persistent); // (from underlying module)
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
## Performance
|
|
248
|
-
|
|
249
|
-
The isolation layer adds minimal overhead:
|
|
250
|
-
|
|
251
|
-
- **Fast path** — No overlay merging if no writes have occurred
|
|
252
|
-
- **Point lookups** — O(log n) via PK index seek on the overlay
|
|
253
|
-
- **Range scans** — Streaming merge of sorted results
|
|
254
|
-
- **Commit flush** — O(log n) per-row existence check against the underlying table
|
|
255
|
-
|
|
256
|
-
For performance-critical applications, consider:
|
|
257
|
-
- Using memory overlay for small transactions
|
|
258
|
-
- The memory vtab uses integrated isolation (no separate layer)
|
|
259
|
-
|
|
260
|
-
## Testing
|
|
261
|
-
|
|
262
|
-
```bash
|
|
263
|
-
yarn test
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
## License
|
|
267
|
-
|
|
268
|
-
MIT
|
|
269
|
-
|
|
270
|
-
## Related Packages
|
|
271
|
-
|
|
272
|
-
- [@quereus/quereus](https://www.npmjs.com/package/@quereus/quereus) — Core SQL engine
|
|
273
|
-
- [@quereus/store](https://www.npmjs.com/package/@quereus/store) — Abstract key-value storage
|
|
274
|
-
- [@quereus/plugin-leveldb](https://www.npmjs.com/package/@quereus/plugin-leveldb) — LevelDB storage
|
|
275
|
-
- [@quereus/plugin-indexeddb](https://www.npmjs.com/package/@quereus/plugin-indexeddb) — IndexedDB storage
|
|
1
|
+
# @quereus/isolation
|
|
2
|
+
|
|
3
|
+
> **Stability: Beta** — complete and tested, but the surface is still being shaped; a
|
|
4
|
+
> breaking change may land in a minor release. See
|
|
5
|
+
> [Stability Tiers](../../docs/stability.md#tiers).
|
|
6
|
+
|
|
7
|
+
Generic transaction isolation layer for Quereus virtual table modules.
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
The `@quereus/isolation` package provides connection-level transaction isolation for any Quereus virtual table module. It wraps existing modules to add:
|
|
12
|
+
|
|
13
|
+
- **Read-your-own-writes** — See uncommitted changes within your transaction
|
|
14
|
+
- **Read-committed reads of shared state** — Reads merge against the *live* underlying table, so another connection's committed writes can become visible mid-transaction. This is **not** snapshot isolation — reads are not a stable point-in-time view. A stable snapshot, if needed, is the job of whatever module is layered beneath this one (see [Isolation Level](#isolation-level) below).
|
|
15
|
+
- **Savepoint support** — Nested transaction control
|
|
16
|
+
- **No write-write conflict detection** — Concurrent writers to the same row are not detected; the last connection to flush wins.
|
|
17
|
+
|
|
18
|
+
This allows module authors to focus on storage concerns while getting isolation "for free."
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
yarn add @quereus/isolation @quereus/quereus
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { Database, MemoryTableModule } from '@quereus/quereus';
|
|
30
|
+
import { IsolationModule } from '@quereus/isolation';
|
|
31
|
+
|
|
32
|
+
const db = new Database();
|
|
33
|
+
|
|
34
|
+
// Create any underlying module (memory, store, custom, etc.)
|
|
35
|
+
const memoryModule = new MemoryTableModule();
|
|
36
|
+
|
|
37
|
+
// Wrap it with the isolation layer
|
|
38
|
+
const isolatedModule = new IsolationModule({
|
|
39
|
+
underlying: memoryModule,
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
db.registerModule('isolated', isolatedModule);
|
|
43
|
+
|
|
44
|
+
// Use it like any other module, but with full isolation
|
|
45
|
+
await db.exec(`CREATE TABLE users (
|
|
46
|
+
id INTEGER PRIMARY KEY,
|
|
47
|
+
name TEXT
|
|
48
|
+
) USING isolated`);
|
|
49
|
+
|
|
50
|
+
await db.exec('BEGIN');
|
|
51
|
+
await db.exec(`INSERT INTO users VALUES (1, 'Alice')`);
|
|
52
|
+
|
|
53
|
+
// Reads see uncommitted changes
|
|
54
|
+
const user = await db.get('SELECT * FROM users WHERE id = 1');
|
|
55
|
+
console.log(user.name); // 'Alice'
|
|
56
|
+
|
|
57
|
+
await db.exec('COMMIT'); // Or ROLLBACK
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Architecture
|
|
61
|
+
|
|
62
|
+
The isolation layer operates at the **row level**, merging query results from two modules:
|
|
63
|
+
|
|
64
|
+
1. **Overlay module** — Stores uncommitted changes (inserts, updates, deletes as tombstones)
|
|
65
|
+
2. **Underlying module** — Stores committed data
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
┌─────────────────────────────────────────────────────────┐
|
|
69
|
+
│ IsolationModule │
|
|
70
|
+
│ │
|
|
71
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
72
|
+
│ │ Overlay Module (e.g., memory vtab) │ │
|
|
73
|
+
│ │ - Stores pending inserts, updates, tombstones │ │
|
|
74
|
+
│ │ - Per-connection isolation │ │
|
|
75
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
76
|
+
│ │ │
|
|
77
|
+
│ │ row-level merge │
|
|
78
|
+
│ ▼ │
|
|
79
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
80
|
+
│ │ Underlying Module (any) │ │
|
|
81
|
+
│ │ - LevelDB / IndexedDB store │ │
|
|
82
|
+
│ │ - Custom module without isolation │ │
|
|
83
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
84
|
+
└─────────────────────────────────────────────────────────┘
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Reading a pushed index window
|
|
88
|
+
|
|
89
|
+
When the underlying serves a read through an index seek, the overlay must be narrowed to
|
|
90
|
+
the same window — otherwise a staged row outside it would leak into the answer. The
|
|
91
|
+
overlay is full-scanned (it cannot resolve an index name the underlying minted for its own
|
|
92
|
+
plan), and `IsolatedTable`'s constraint matcher re-applies the pushed window itself. Several
|
|
93
|
+
equality constraints on the *same* column are read as an **IN set**, not as an AND: that is
|
|
94
|
+
how an `IN`-list seek is encoded — one equality per seek value — so an AND reading would
|
|
95
|
+
match nothing and silently drop every staged row.
|
|
96
|
+
|
|
97
|
+
This holds for a set of values that only exists at run time (`where v in (select …)`,
|
|
98
|
+
which the engine may materialize and push down as a seek) exactly as it does for a literal
|
|
99
|
+
`in (1, 2, 3)`: the pushed window has the same shape either way, and this layer cannot —
|
|
100
|
+
and need not — tell them apart.
|
|
101
|
+
|
|
102
|
+
One ordering caveat. The **primary-key** merge walks both streams in the primary key's own
|
|
103
|
+
declared order — ascending, or descending for a `primary key (… desc)`. The engine sorts a
|
|
104
|
+
run-time key set into that same order before pushing it, so that path arrives in order. A
|
|
105
|
+
**literal** list does not: `where pk in (3, 1, 2)` is visited in list order, and with rows
|
|
106
|
+
staged in the transaction the merge mis-pairs them — a staged update can surface alongside
|
|
107
|
+
the stale stored row, and a staged delete can reappear. That is tracked as
|
|
108
|
+
`backlog/bug-isolation-multiseek-merge-order`; the secondary-index merge is unaffected
|
|
109
|
+
(it sorts the overlay itself and excludes shadowed rows by primary key).
|
|
110
|
+
|
|
111
|
+
## Isolation Level
|
|
112
|
+
|
|
113
|
+
The guarantee this layer actually provides is closer to **read-committed with
|
|
114
|
+
read-your-own-writes** than to snapshot isolation:
|
|
115
|
+
|
|
116
|
+
- **Read-your-own-writes** — a connection always sees its own uncommitted overlay
|
|
117
|
+
changes.
|
|
118
|
+
- **Live reads of shared state** — the merged read path queries the *live* underlying
|
|
119
|
+
table on every read, not a point-in-time copy taken at `BEGIN`. If another
|
|
120
|
+
connection commits mid-transaction, the next read in this transaction can observe
|
|
121
|
+
that write. Reads are **not** isolated from concurrent commits.
|
|
122
|
+
- **No write-write conflict detection** — two connections that write the same row in
|
|
123
|
+
overlapping transactions are not detected as conflicting; whichever connection
|
|
124
|
+
flushes (commits) last overwrites the other.
|
|
125
|
+
- **Snapshotting is delegated downward** — if a consumer needs a stable, point-in-time
|
|
126
|
+
view of the data, that guarantee must come from the module wrapped *beneath* this
|
|
127
|
+
layer (the `underlying` module), not from `IsolationModule` itself. A future
|
|
128
|
+
optional snapshotting pass-through module may be added below the isolation layer
|
|
129
|
+
for consumers that need this; it does not exist today.
|
|
130
|
+
|
|
131
|
+
### Key Features
|
|
132
|
+
|
|
133
|
+
**Per-connection overlay** — Each database instance gets its own overlay storage, ensuring proper isolation between connections.
|
|
134
|
+
|
|
135
|
+
**Lazy overlay creation** — No memory overhead until the first write in a transaction.
|
|
136
|
+
|
|
137
|
+
**Transparent hook forwarding** — `IsolationModule` is a wrapper, so the engine/planner/lens machinery reaches *it* (the registered module) rather than the underlying. Optional `VirtualTableModule` hooks whose behavior is isolation-transparent are forwarded straight through to the underlying: `getMappingAdvertisements` (decomposition shape), `getBestAccessPlan` (index awareness), `getRowCount` (the planner's row-count hint — assigned in the constructor only when the underlying implements it; a plain forward that does not net in the connection's overlay rows, since that would need a scan and the count is only a hint), the `beginSchemaBatch` / `endSchemaBatch` APPLY SCHEMA batch hooks (single-substrate-commit batching of migration DDL), `onRegister` (the registration-time handoff of the `Database`, which a persisting underlying uses to subscribe to the schema-change notifier before any statement runs — which `Database` a module serves is isolation-transparent, and without the forward a wrapped store would fall back to subscribing at its first table hook and silently drop a view created ahead of that), `assertCatalogObjectPersistable` (the pre-flight veto that lets a persisting module refuse a view / materialized view — or a table a RENAME would rewrite — whose catalog entry it could not durably write; whether a definition is encodable is a property of the definition text, not of the overlay, and without the forward a wrapped store would silently keep dropping such views on reopen. The table arm also needs the underlying module to recognise its OWN tables through this wrapper, since a wrapped table's `vtabModule` is the `IsolationModule`: it does so by matching `underlying`), and `getBackingHost` (the materialized-view backing-host capability — assigned in the constructor only when the underlying implements it, so method *presence* mirrors the underlying; backing writes are privileged and bypass the per-connection overlay entirely, making the underlying host's pending state the right surface). Hooks whose underlying value would *misdescribe* the wrapped behavior are intentionally **not** forwarded: `getCapabilities` is augmented with `isolation`/`savepoints` rather than passed through verbatim; `supports` (full-query push-down) is suppressed so the overlay always sees every row to merge; and `concurrencyMode` / `expectedLatencyMs` / `expectedRowLatencyMs` are derived rather than passed through verbatim: `concurrencyMode` is the weaker of the underlying and overlay modes, capped at `reentrant-reads` (the wrapper's own write path mutates shared overlay-merge state non-atomically, so it is never `fully-reentrant`), while `expectedLatencyMs` and `expectedRowLatencyMs` each forward the underlying's hint (defaulting to `0` when the underlying declares none; the in-memory overlay contributes nothing).
|
|
138
|
+
|
|
139
|
+
**Atomic ALTER (issuer-faithful) + cross-connection poison** — DDL through Quereus is not transaction-scoped and the shared underlying base auto-commits its mutation immediately, so a half-applied ALTER cannot be rolled back. The blast radius is isolation-faithful — an ALTER never depends on another connection's uncommitted data:
|
|
140
|
+
|
|
141
|
+
- **Issuer's own overlay** — `IsolationModule.alterTable` dry-run **validates the issuing connection's own affected overlay's backfill** (per-row `NOT NULL` checks — for a new `ADD COLUMN ... NOT NULL` and for tightening an existing column with `ALTER COLUMN ... SET NOT NULL` — and the tombstone-present guard) *before* mutating the underlying. A rejection fires while the underlying, the schema catalog, and every overlay are still untouched, so for the issuer the ALTER either fails clean or fully applies — base and catalog never diverge. (The issuer staged both the data and the DDL, so rejecting up front is the least-surprising behavior.)
|
|
142
|
+
- **`ALTER TABLE ... ALTER COLUMN ... SET COLLATE` on a primary-key column** — the change re-keys the table, so two staged rows can land on one new key. A deletion marker sharing its new key with a staged live row is that row's before-image (delete `'A'`, insert `'a'`, then switch to `NOCASE`), so the marker is discarded and the ALTER succeeds; two staged **live** rows on one key are a real duplicate and are refused. A shape the re-keyed overlay cannot physically hold — a savepoint that could restore both a marker and its replacement at one key — is refused as retryable (`BUSY`), the same answer a plain non-isolated table gives. Every refusal is surfaced *before* the shared underlying is touched, so the transaction survives intact.
|
|
143
|
+
- **`ALTER TABLE ... ALTER PRIMARY KEY`** — the one change no overlay can follow: an overlay's staged rows (and its deletion markers) are keyed by the *old* primary key. A connection that has uncommitted changes staged for the table is therefore rejected with `BUSY` (retryable — not `UNSUPPORTED`, which the engine would treat as "fall back to a shadow-table rebuild" and silently lose the staged writes) *before* the underlying is touched — commit or roll back first, then retry. Another connection's overlay holding staged rows is poisoned; one holding nothing is swapped for an empty overlay under the new key. (Both bundled underlyings — `MemoryTableModule` and the store — re-key in place, so these paths arise under either. The refusal above is about the *overlay's* representation, not the underlying's capability.)
|
|
144
|
+
- **Another connection's overlay** — the shared underlying and the catalog change regardless of any *other* connection's uncommitted state. A foreign overlay that *can* migrate is carried forward as usual (a staged `NULL` is backfilled when a usable literal `DEFAULT` exists); one that *cannot* (its staged row can't satisfy the new or newly-`NOT NULL` column) is left in place and marked **poisoned**. Its owning connection then raises a `CONSTRAINT` error the next time it reads (merged), writes, or commits that table, and recovers by rolling back (which discards the overlay and its poison). A committed-snapshot (`committed.<table>`) read bypasses the overlay and keeps working. A layer-invariant violation (e.g. a missing tombstone column, `INTERNAL`) still rethrows loud for everyone rather than poisoning.
|
|
145
|
+
- **`ALTER TABLE ... ADD COLUMN` position** — `SchemaChangeInfo`'s optional `insertAtIndex` names a slot instead of the end (there is no SQL syntax for it; only an in-process module wrapper can set one). A caller-named position is honored in the overlay too, for both the issuer's own overlay and every migrated foreign one; with none supplied, the new column lands ahead of the overlay's own deletion-marker column so that column stays last.
|
|
146
|
+
|
|
147
|
+
**Configurable overlay module** — Use memory for fast transactions, or persistent storage for large transactions:
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
import { IsolationModule } from '@quereus/isolation';
|
|
151
|
+
import { MemoryTableModule } from '@quereus/quereus';
|
|
152
|
+
import { StoreModule } from '@quereus/store';
|
|
153
|
+
|
|
154
|
+
// Fast, ephemeral overlay (default)
|
|
155
|
+
const isolatedModule = new IsolationModule({
|
|
156
|
+
underlying: myStoreModule,
|
|
157
|
+
overlay: new MemoryTableModule(),
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// Or use persistent overlay for large transactions
|
|
161
|
+
const isolatedModule = new IsolationModule({
|
|
162
|
+
underlying: myStoreModule,
|
|
163
|
+
overlay: new StoreModule(tempStoreProvider),
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## API
|
|
168
|
+
|
|
169
|
+
### `IsolationModule`
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
class IsolationModule implements VirtualTableModule {
|
|
173
|
+
constructor(config: IsolationModuleConfig);
|
|
174
|
+
getCapabilities(): ModuleCapabilities;
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### Configuration
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
interface IsolationModuleConfig {
|
|
182
|
+
/** Module to wrap with isolation semantics */
|
|
183
|
+
underlying: VirtualTableModule<any, any>;
|
|
184
|
+
|
|
185
|
+
/** Optional overlay module (defaults to MemoryTableModule) */
|
|
186
|
+
overlay?: VirtualTableModule<any, any>;
|
|
187
|
+
|
|
188
|
+
/** Optional tombstone column name (defaults to '_tombstone') */
|
|
189
|
+
tombstoneColumn?: string;
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Merge Utilities
|
|
194
|
+
|
|
195
|
+
The package also exports low-level utilities for merging sorted streams:
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
import { mergeStreams, createMergeEntry, createTombstone } from '@quereus/isolation';
|
|
199
|
+
|
|
200
|
+
// Merge two sorted streams (overlay and underlying)
|
|
201
|
+
const merged = mergeStreams(overlayStream, underlyingStream, {
|
|
202
|
+
comparePK: (a, b) => /* compare primary keys */,
|
|
203
|
+
extractPK: (row) => /* extract PK from row */,
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
See the [design document](https://github.com/gotchoices/quereus/blob/main/docs/design-isolation-layer.md) for detailed architecture and implementation notes.
|
|
208
|
+
|
|
209
|
+
## Use Cases
|
|
210
|
+
|
|
211
|
+
### Store Module Isolation
|
|
212
|
+
|
|
213
|
+
The `@quereus/store` package provides a convenience function:
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
import { createIsolatedStoreModule } from '@quereus/store';
|
|
217
|
+
import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
218
|
+
|
|
219
|
+
const provider = createLevelDBProvider({ basePath: './data' });
|
|
220
|
+
const module = createIsolatedStoreModule({ provider });
|
|
221
|
+
|
|
222
|
+
db.registerModule('store', module);
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Custom Module Isolation
|
|
226
|
+
|
|
227
|
+
Wrap any custom module:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
import { IsolationModule } from '@quereus/isolation';
|
|
231
|
+
import { MyCustomModule } from './my-module';
|
|
232
|
+
|
|
233
|
+
const isolatedModule = new IsolationModule({
|
|
234
|
+
underlying: new MyCustomModule(),
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Checking Capabilities
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
const caps = isolatedModule.getCapabilities();
|
|
242
|
+
console.log(caps.isolation); // true
|
|
243
|
+
console.log(caps.savepoints); // true
|
|
244
|
+
console.log(caps.persistent); // (from underlying module)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Performance
|
|
248
|
+
|
|
249
|
+
The isolation layer adds minimal overhead:
|
|
250
|
+
|
|
251
|
+
- **Fast path** — No overlay merging if no writes have occurred
|
|
252
|
+
- **Point lookups** — O(log n) via PK index seek on the overlay
|
|
253
|
+
- **Range scans** — Streaming merge of sorted results
|
|
254
|
+
- **Commit flush** — O(log n) per-row existence check against the underlying table
|
|
255
|
+
|
|
256
|
+
For performance-critical applications, consider:
|
|
257
|
+
- Using memory overlay for small transactions
|
|
258
|
+
- The memory vtab uses integrated isolation (no separate layer)
|
|
259
|
+
|
|
260
|
+
## Testing
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
yarn test
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## License
|
|
267
|
+
|
|
268
|
+
MIT
|
|
269
|
+
|
|
270
|
+
## Related Packages
|
|
271
|
+
|
|
272
|
+
- [@quereus/quereus](https://www.npmjs.com/package/@quereus/quereus) — Core SQL engine
|
|
273
|
+
- [@quereus/store](https://www.npmjs.com/package/@quereus/store) — Abstract key-value storage
|
|
274
|
+
- [@quereus/plugin-leveldb](https://www.npmjs.com/package/@quereus/plugin-leveldb) — LevelDB storage
|
|
275
|
+
- [@quereus/plugin-indexeddb](https://www.npmjs.com/package/@quereus/plugin-indexeddb) — IndexedDB storage
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Database, VirtualTableModule, BaseModuleConfig, TableSchema, TableIndexSchema as IndexSchema, ModuleCapabilities, BestAccessPlanRequest, BestAccessPlanResult, SchemaChangeInfo, Schema, MappingAdvertisement, LensDeploymentSnapshot, VtabConcurrencyMode, VirtualTableConnection, BackingHost, EffectiveRowSource, CatalogObjectKind, ViewSchema } from '@quereus/quereus';
|
|
1
|
+
import type { Database, VirtualTableModule, BaseModuleConfig, TableSchema, TableIndexSchema as IndexSchema, ModuleCapabilities, BestAccessPlanRequest, BestAccessPlanResult, SchemaChangeInfo, Schema, MappingAdvertisement, LensDeploymentSnapshot, VtabConcurrencyMode, VirtualTableConnection, BackingHost, EffectiveRowSource, CatalogObjectKind, ViewSchema, ModuleRowCount } from '@quereus/quereus';
|
|
2
2
|
import type { ConnectionOverlayState, IsolationModuleConfig, Predicate, UnderlyingTableState } from './isolation-types.js';
|
|
3
3
|
import { IsolatedTable } from './isolated-table.js';
|
|
4
4
|
import type { AlterMigrationHost } from './alter-migration.js';
|
|
@@ -140,6 +140,14 @@ export declare class IsolationModule implements VirtualTableModule<IsolatedTable
|
|
|
140
140
|
* Pure schema→schema, no overlay bookkeeping.
|
|
141
141
|
*/
|
|
142
142
|
normalizeCreateSchema?: (tableSchema: TableSchema) => TableSchema;
|
|
143
|
+
/**
|
|
144
|
+
* Planner row-count forward (see {@link VirtualTableModule.getRowCount}) — assigned only
|
|
145
|
+
* when the underlying implements it, mirroring presence like the seams above. A plain
|
|
146
|
+
* delegate: this connection's overlay rows (uncommitted inserts and tombstones) are not
|
|
147
|
+
* netted in, because that would need a scan and the count is only a hint. It still
|
|
148
|
+
* reports the underlying's `exact` flag — exact for what the underlying holds.
|
|
149
|
+
*/
|
|
150
|
+
getRowCount?: (db: Database, table: TableSchema) => ModuleRowCount | undefined;
|
|
143
151
|
constructor(config: IsolationModuleConfig);
|
|
144
152
|
/**
|
|
145
153
|
* Forwards a concurrency-mode hint so a host that wraps a reentrant module
|
|
@@ -176,6 +184,13 @@ export declare class IsolationModule implements VirtualTableModule<IsolatedTable
|
|
|
176
184
|
* snapshot would capture a stale `0`.
|
|
177
185
|
*/
|
|
178
186
|
get expectedLatencyMs(): number;
|
|
187
|
+
/**
|
|
188
|
+
* Forwards the underlying module's per-row-latency planner hint, for the same
|
|
189
|
+
* reasons and in the same shape as {@link expectedLatencyMs}: only the
|
|
190
|
+
* underlying contributes (the overlay is in-memory), `0` when undeclared, and a
|
|
191
|
+
* live getter because an out-of-tree module may learn its value at connect time.
|
|
192
|
+
*/
|
|
193
|
+
get expectedRowLatencyMs(): number;
|
|
179
194
|
/**
|
|
180
195
|
* Mirrors the underlying module's committed-snapshot promise. The wrapper adds no
|
|
181
196
|
* tearing window of its own: a `_readCommitted` connect opens a DEDICATED underlying
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolation-module.d.ts","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,IAAI,WAAW,EAAE,kBAAkB,EAAgB,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,EAAO,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"isolation-module.d.ts","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,6 +160,14 @@ export class IsolationModule {
|
|
|
160
160
|
* Pure schema→schema, no overlay bookkeeping.
|
|
161
161
|
*/
|
|
162
162
|
normalizeCreateSchema;
|
|
163
|
+
/**
|
|
164
|
+
* Planner row-count forward (see {@link VirtualTableModule.getRowCount}) — assigned only
|
|
165
|
+
* when the underlying implements it, mirroring presence like the seams above. A plain
|
|
166
|
+
* delegate: this connection's overlay rows (uncommitted inserts and tombstones) are not
|
|
167
|
+
* netted in, because that would need a scan and the count is only a hint. It still
|
|
168
|
+
* reports the underlying's `exact` flag — exact for what the underlying holds.
|
|
169
|
+
*/
|
|
170
|
+
getRowCount;
|
|
163
171
|
constructor(config) {
|
|
164
172
|
this.underlying = config.underlying;
|
|
165
173
|
this.overlayModule = config.overlay ?? new MemoryTableModule();
|
|
@@ -172,6 +180,10 @@ export class IsolationModule {
|
|
|
172
180
|
if (underlyingNormalize) {
|
|
173
181
|
this.normalizeCreateSchema = (tableSchema) => underlyingNormalize.call(this.underlying, tableSchema);
|
|
174
182
|
}
|
|
183
|
+
const underlyingGetRowCount = this.underlying.getRowCount;
|
|
184
|
+
if (underlyingGetRowCount) {
|
|
185
|
+
this.getRowCount = (db, table) => underlyingGetRowCount.call(this.underlying, db, table);
|
|
186
|
+
}
|
|
175
187
|
const underlyingCreateBacking = this.underlying.createBacking;
|
|
176
188
|
if (underlyingCreateBacking) {
|
|
177
189
|
this.createBacking = async (db, tableSchema) => {
|
|
@@ -262,6 +274,15 @@ export class IsolationModule {
|
|
|
262
274
|
get expectedLatencyMs() {
|
|
263
275
|
return this.underlying.expectedLatencyMs ?? 0;
|
|
264
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Forwards the underlying module's per-row-latency planner hint, for the same
|
|
279
|
+
* reasons and in the same shape as {@link expectedLatencyMs}: only the
|
|
280
|
+
* underlying contributes (the overlay is in-memory), `0` when undeclared, and a
|
|
281
|
+
* live getter because an out-of-tree module may learn its value at connect time.
|
|
282
|
+
*/
|
|
283
|
+
get expectedRowLatencyMs() {
|
|
284
|
+
return this.underlying.expectedRowLatencyMs ?? 0;
|
|
285
|
+
}
|
|
265
286
|
/**
|
|
266
287
|
* Mirrors the underlying module's committed-snapshot promise. The wrapper adds no
|
|
267
288
|
* tearing window of its own: a `_readCommitted` connect opens a DEDICATED underlying
|
|
@@ -700,11 +721,13 @@ export class IsolationModule {
|
|
|
700
721
|
// underlying module's through: it claims no filter and never sets
|
|
701
722
|
// `provablyEmpty`, which is the safe answer — a fabricated proof would delete a
|
|
702
723
|
// read that must happen.
|
|
724
|
+
// A measured 0 is relayed as 0 but priced as one row, the engine-wide rule
|
|
725
|
+
// (docs/optimizer-costing.md § Base-table row estimates).
|
|
703
726
|
const rows = request.estimatedRows ?? 1000;
|
|
704
727
|
return {
|
|
705
728
|
handledFilters: request.filters.map(() => false),
|
|
706
729
|
rows,
|
|
707
|
-
cost: rows,
|
|
730
|
+
cost: Math.max(1, rows),
|
|
708
731
|
};
|
|
709
732
|
}
|
|
710
733
|
return this.underlying.getBestAccessPlan(db, tableInfo, request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolation-module.js","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"isolation-module.js","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quereus/isolation",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.23.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Generic transaction isolation layer for Quereus virtual table modules",
|
|
6
6
|
"keywords": [
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
"test:single": "cd ../.. && node --import ./packages/quereus-isolation/register.mjs node_modules/mocha/bin/mocha.js --bail"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@quereus/quereus": "^4.
|
|
44
|
+
"@quereus/quereus": "^4.23.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@quereus/quereus": "^4.
|
|
47
|
+
"@quereus/quereus": "^4.23.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/mocha": "^10.0.10",
|