@quereus/store 4.4.1 → 4.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/README.md +538 -491
- package/dist/src/common/encoding.d.ts +4 -3
- package/dist/src/common/encoding.d.ts.map +1 -1
- package/dist/src/common/encoding.js +17 -13
- package/dist/src/common/encoding.js.map +1 -1
- package/dist/src/common/events.d.ts +5 -1
- package/dist/src/common/events.d.ts.map +1 -1
- package/dist/src/common/events.js.map +1 -1
- package/dist/src/common/implicit-unique-index.d.ts +80 -0
- package/dist/src/common/implicit-unique-index.d.ts.map +1 -0
- package/dist/src/common/implicit-unique-index.js +148 -0
- package/dist/src/common/implicit-unique-index.js.map +1 -0
- package/dist/src/common/index.d.ts +7 -3
- package/dist/src/common/index.d.ts.map +1 -1
- package/dist/src/common/index.js +5 -2
- package/dist/src/common/index.js.map +1 -1
- package/dist/src/common/json-key.d.ts +2 -2
- package/dist/src/common/json-key.js +2 -2
- package/dist/src/common/key-builder.d.ts +40 -20
- package/dist/src/common/key-builder.d.ts.map +1 -1
- package/dist/src/common/key-builder.js +31 -23
- package/dist/src/common/key-builder.js.map +1 -1
- package/dist/src/common/kv-store.d.ts +10 -0
- package/dist/src/common/kv-store.d.ts.map +1 -1
- package/dist/src/common/pk-key-resolution.d.ts +275 -0
- package/dist/src/common/pk-key-resolution.d.ts.map +1 -0
- package/dist/src/common/pk-key-resolution.js +389 -0
- package/dist/src/common/pk-key-resolution.js.map +1 -0
- package/dist/src/common/store-module-access-plan.d.ts +32 -0
- package/dist/src/common/store-module-access-plan.d.ts.map +1 -0
- package/dist/src/common/store-module-access-plan.js +424 -0
- package/dist/src/common/store-module-access-plan.js.map +1 -0
- package/dist/src/common/store-module-alter-column.d.ts +23 -0
- package/dist/src/common/store-module-alter-column.d.ts.map +1 -0
- package/dist/src/common/store-module-alter-column.js +393 -0
- package/dist/src/common/store-module-alter-column.js.map +1 -0
- package/dist/src/common/store-module-alter.d.ts +55 -0
- package/dist/src/common/store-module-alter.d.ts.map +1 -0
- package/dist/src/common/store-module-alter.js +519 -0
- package/dist/src/common/store-module-alter.js.map +1 -0
- package/dist/src/common/store-module-base.d.ts +268 -0
- package/dist/src/common/store-module-base.d.ts.map +1 -0
- package/dist/src/common/store-module-base.js +362 -0
- package/dist/src/common/store-module-base.js.map +1 -0
- package/dist/src/common/store-module-catalog.d.ts +269 -0
- package/dist/src/common/store-module-catalog.d.ts.map +1 -0
- package/dist/src/common/store-module-catalog.js +462 -0
- package/dist/src/common/store-module-catalog.js.map +1 -0
- package/dist/src/common/store-module-index-build.d.ts +88 -0
- package/dist/src/common/store-module-index-build.d.ts.map +1 -0
- package/dist/src/common/store-module-index-build.js +280 -0
- package/dist/src/common/store-module-index-build.js.map +1 -0
- package/dist/src/common/store-module-index.d.ts +116 -0
- package/dist/src/common/store-module-index.d.ts.map +1 -0
- package/dist/src/common/store-module-index.js +373 -0
- package/dist/src/common/store-module-index.js.map +1 -0
- package/dist/src/common/store-module-rename.d.ts +49 -0
- package/dist/src/common/store-module-rename.d.ts.map +1 -0
- package/dist/src/common/store-module-rename.js +244 -0
- package/dist/src/common/store-module-rename.js.map +1 -0
- package/dist/src/common/store-module-schema-rewrite.d.ts +57 -0
- package/dist/src/common/store-module-schema-rewrite.d.ts.map +1 -0
- package/dist/src/common/store-module-schema-rewrite.js +140 -0
- package/dist/src/common/store-module-schema-rewrite.js.map +1 -0
- package/dist/src/common/store-module-schema-sync.d.ts +232 -0
- package/dist/src/common/store-module-schema-sync.d.ts.map +1 -0
- package/dist/src/common/store-module-schema-sync.js +529 -0
- package/dist/src/common/store-module-schema-sync.js.map +1 -0
- package/dist/src/common/store-module.d.ts +43 -909
- package/dist/src/common/store-module.d.ts.map +1 -1
- package/dist/src/common/store-module.js +184 -3194
- package/dist/src/common/store-module.js.map +1 -1
- package/dist/src/common/store-table-base.d.ts +523 -0
- package/dist/src/common/store-table-base.d.ts.map +1 -0
- package/dist/src/common/store-table-base.js +878 -0
- package/dist/src/common/store-table-base.js.map +1 -0
- package/dist/src/common/store-table-constraints.d.ts +237 -0
- package/dist/src/common/store-table-constraints.d.ts.map +1 -0
- package/dist/src/common/store-table-constraints.js +624 -0
- package/dist/src/common/store-table-constraints.js.map +1 -0
- package/dist/src/common/store-table-scan.d.ts +415 -0
- package/dist/src/common/store-table-scan.d.ts.map +1 -0
- package/dist/src/common/store-table-scan.js +821 -0
- package/dist/src/common/store-table-scan.js.map +1 -0
- package/dist/src/common/store-table.d.ts +71 -1044
- package/dist/src/common/store-table.d.ts.map +1 -1
- package/dist/src/common/store-table.js +130 -2131
- package/dist/src/common/store-table.js.map +1 -1
- package/dist/src/testing/index.d.ts +12 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +12 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/kv-assert.d.ts +19 -0
- package/dist/src/testing/kv-assert.d.ts.map +1 -0
- package/dist/src/testing/kv-assert.js +25 -0
- package/dist/src/testing/kv-assert.js.map +1 -0
- package/dist/src/testing/kv-conformance.d.ts.map +1 -1
- package/dist/src/testing/kv-conformance.js +1 -15
- package/dist/src/testing/kv-conformance.js.map +1 -1
- package/dist/src/testing/kv-provider-conformance.d.ts +54 -0
- package/dist/src/testing/kv-provider-conformance.d.ts.map +1 -0
- package/dist/src/testing/kv-provider-conformance.js +183 -0
- package/dist/src/testing/kv-provider-conformance.js.map +1 -0
- package/package.json +9 -9
|
@@ -41,7 +41,7 @@ import type { SqlValue, KeyNormalizerResolver } from '@quereus/quereus';
|
|
|
41
41
|
export declare const BUILTIN_KEY_NORMALIZER_RESOLVER: KeyNormalizerResolver;
|
|
42
42
|
/**
|
|
43
43
|
* Per-column key value transform (resolved by `storeSemanticKeyTransform` in
|
|
44
|
-
*
|
|
44
|
+
* pk-key-resolution.ts): applied to a value BEFORE type-dispatched encoding, so a
|
|
45
45
|
* semantic-ordering type keys in its `compare` order and identity. Two transforms
|
|
46
46
|
* exist today:
|
|
47
47
|
*
|
|
@@ -86,8 +86,9 @@ export declare function encodeValue(value: SqlValue, options?: EncodeOptions): U
|
|
|
86
86
|
* composite primary key can carry a *per-column* key collation (e.g. a BINARY
|
|
87
87
|
* member alongside a NOCASE member) rather than one collation for the whole key.
|
|
88
88
|
* A `undefined` entry (or no array) falls back to `options.collation`. Collation
|
|
89
|
-
* only affects TEXT
|
|
90
|
-
* per-column override on an
|
|
89
|
+
* only affects TEXT encoding; every other storage class — including OBJECT, see
|
|
90
|
+
* {@link encodeObject} — ignores it, so a per-column override on an
|
|
91
|
+
* integer/real/blob/object member is a harmless no-op.
|
|
91
92
|
*
|
|
92
93
|
* When `transforms` is provided, each position with a defined entry maps its value
|
|
93
94
|
* through that {@link KeyValueTransform} BEFORE encoding (and before DESC inversion),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../src/common/encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAgB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAOtF;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAO7C,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE9D,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AA8BD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU,CAgChF;AAED
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../src/common/encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAgB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAOtF;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAO7C,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE9D,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AA8BD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU,CAgChF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,CAAC,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,EACnC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,EAC9C,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,GAAG,SAAS,CAAC,GACxD,UAAU,CAqBZ;AA0DD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAW3F;AA8CD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAc3D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAW/E;AA0ED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,MAAU,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA0BxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,aAAa,GACtB,QAAQ,EAAE,CAeZ"}
|
|
@@ -100,7 +100,7 @@ export function encodeValue(value, options) {
|
|
|
100
100
|
// JSON string so reorder-equal values ({a:1,b:2} vs {b:2,a:1}) encode to the
|
|
101
101
|
// same bytes, matching the in-memory JSON comparator. Arrays stay positional.
|
|
102
102
|
if (typeof value === 'object') {
|
|
103
|
-
return encodeObject(canonicalJsonString(value)
|
|
103
|
+
return encodeObject(canonicalJsonString(value));
|
|
104
104
|
}
|
|
105
105
|
throw new Error(`Cannot encode value of type ${typeof value}`);
|
|
106
106
|
}
|
|
@@ -117,8 +117,9 @@ export function encodeValue(value, options) {
|
|
|
117
117
|
* composite primary key can carry a *per-column* key collation (e.g. a BINARY
|
|
118
118
|
* member alongside a NOCASE member) rather than one collation for the whole key.
|
|
119
119
|
* A `undefined` entry (or no array) falls back to `options.collation`. Collation
|
|
120
|
-
* only affects TEXT
|
|
121
|
-
* per-column override on an
|
|
120
|
+
* only affects TEXT encoding; every other storage class — including OBJECT, see
|
|
121
|
+
* {@link encodeObject} — ignores it, so a per-column override on an
|
|
122
|
+
* integer/real/blob/object member is a harmless no-op.
|
|
122
123
|
*
|
|
123
124
|
* When `transforms` is provided, each position with a defined entry maps its value
|
|
124
125
|
* through that {@link KeyValueTransform} BEFORE encoding (and before DESC inversion),
|
|
@@ -364,13 +365,17 @@ function encodeBlob(value) {
|
|
|
364
365
|
* resolved by `storeSemanticKeyTransform`) maps the value to a `Uint8Array` first, so
|
|
365
366
|
* it encodes through the BLOB path in structural `compare` order instead.
|
|
366
367
|
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
*
|
|
368
|
+
* Deliberately takes NO collation: the canonical string is encoded verbatim. Collation
|
|
369
|
+
* never reaches an OBJECT-class value in the engine — `compareSameType` consults the
|
|
370
|
+
* collation function only on the TEXT/TEXT branch, and the engine's own key serializer
|
|
371
|
+
* (`util/key-serializer.ts`) normalizes only string values — so folding the canonical
|
|
372
|
+
* string here would make key identity/order disagree with the comparator that governs
|
|
373
|
+
* the structure. That mattered the moment `any collate nocase` became a real key
|
|
374
|
+
* collation (ticket `any-type-compare-honors-collation`): an object-valued member of
|
|
375
|
+
* such a PK collided at one lowercased key (`{"A":1}` vs `{"a":1}`) while the memory
|
|
376
|
+
* backend kept them distinct, and `order by` over the folded bytes inverted the
|
|
377
|
+
* comparator's code-point order. Encoding verbatim also keeps the bytes `JSON.parse`-able,
|
|
378
|
+
* which a character-deleting normalizer (RTRIM) would not.
|
|
374
379
|
*
|
|
375
380
|
* NOTE: no unpaired-surrogate guard here, unlike `encodeText`. `canonicalJsonString` ends
|
|
376
381
|
* in `JSON.stringify`, which is well-formed (ES2019): it escapes every lone surrogate to
|
|
@@ -379,9 +384,8 @@ function encodeBlob(value) {
|
|
|
379
384
|
* `JSON.stringify` (or gains a `rawJSON` passthrough), that escaping is lost and this must
|
|
380
385
|
* call `assertNoUnpairedSurrogate` too.
|
|
381
386
|
*/
|
|
382
|
-
function encodeObject(jsonString
|
|
383
|
-
const
|
|
384
|
-
const utf8 = new TextEncoder().encode(sortValue);
|
|
387
|
+
function encodeObject(jsonString) {
|
|
388
|
+
const utf8 = new TextEncoder().encode(jsonString);
|
|
385
389
|
return writeEscapedWithTerminator(TYPE_OBJECT, utf8);
|
|
386
390
|
}
|
|
387
391
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/common/encoding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/common/encoding.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,16 @@ export interface SchemaChangeEvent {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Data change event types.
|
|
19
|
+
*
|
|
20
|
+
* Producers owe the engine's key contract (`docs/usage.md` § Subscribing to Data Changes):
|
|
21
|
+
* `key` is projected from the event's own row image, and an `update` never moves a row — a
|
|
22
|
+
* relocating primary-key change is a `delete` at the old key then an `insert` at the new one.
|
|
19
23
|
*/
|
|
20
24
|
export interface DataChangeEvent {
|
|
21
25
|
type: 'insert' | 'update' | 'delete';
|
|
22
26
|
schemaName: string;
|
|
23
27
|
tableName: string;
|
|
24
|
-
/** Primary key
|
|
28
|
+
/** Primary key projected from this event's own image: `newRow` for insert/update, `oldRow` for delete. Alias: pk */
|
|
25
29
|
key?: SqlValue[];
|
|
26
30
|
/** Primary key values. Alias: key */
|
|
27
31
|
pk?: SqlValue[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/common/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/common/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,oHAAoH;IACpH,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IACjB,qCAAqC;IACrC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAElE;;GAEG;AACH,UAAU,wBAAwB;IAChC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC3D,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,UAAU,CAAS;IAC3B;;;OAGG;IACH,OAAO,CAAC,yBAAyB,CAAkC;IAElE;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAK1D;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAKtD;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAuBhD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAM9D;;OAEG;IACH,8BAA8B,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAYrE;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAe5C;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,UAAU,IAAI,IAAI;IAgBlB;;OAEG;IACH,YAAY,IAAI,IAAI;IAKrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAM1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/common/events.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/common/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hidden `_uc_*` secondary index the store materializes per non-derived
|
|
3
|
+
* UNIQUE constraint that no explicit index already covers, so a plain UNIQUE
|
|
4
|
+
* enforces via a point seek rather than a full scan — plus the reuse test that
|
|
5
|
+
* decides when an existing index already serves that role.
|
|
6
|
+
*/
|
|
7
|
+
import { type TableSchema, type TableIndexSchema, type UniqueConstraintSchema } from '@quereus/quereus';
|
|
8
|
+
/**
|
|
9
|
+
* Deterministic name of the implicit covering index materialized for a
|
|
10
|
+
* NON-DERIVED UNIQUE constraint `uc`: the constraint's own name when it has one,
|
|
11
|
+
* else the auto-name `_uc_<colNames>`. This MUST equal the engine's
|
|
12
|
+
* `catalog.ts` `implicitIndexName`, so a name that ever reaches the catalog
|
|
13
|
+
* bundle generator is recognized as hidden / exposed-implicit rather than a user
|
|
14
|
+
* index.
|
|
15
|
+
*/
|
|
16
|
+
export declare function implicitUniqueIndexName(schema: TableSchema, uc: UniqueConstraintSchema): string;
|
|
17
|
+
/**
|
|
18
|
+
* The existing `schema.indexes` entry that already realizes `uc`, or undefined
|
|
19
|
+
* when none does and {@link withImplicitUniqueIndexes} must materialize a hidden
|
|
20
|
+
* `_uc_*` of its own.
|
|
21
|
+
*
|
|
22
|
+
* A FULL (non-partial) index over exactly the constrained columns physically
|
|
23
|
+
* holds an entry for every live row, keyed by the same bytes the `_uc_*` would
|
|
24
|
+
* use — so `StoreTableConstraints.findUniqueConflictViaIndex` can seek it directly and
|
|
25
|
+
* a second identical structure would only double DML maintenance. Reuse is
|
|
26
|
+
* refused for:
|
|
27
|
+
*
|
|
28
|
+
* - an index-DERIVED UC (`derivedFromIndex`) — it already names its index;
|
|
29
|
+
* - a PARTIAL UNIQUE (`uc.predicate`) — the co-scoped `_uc_*` carries the SAME
|
|
30
|
+
* predicate OBJECT, which `StoreTableConstraints.findIndexForUniqueConstraint`
|
|
31
|
+
* matches on identity; a user index with an equal-but-distinct predicate
|
|
32
|
+
* physically omits rows the constraint still covers;
|
|
33
|
+
* - a PARTIAL index — it omits out-of-scope rows a full UNIQUE still covers;
|
|
34
|
+
* - a collation-mismatched index (see {@link indexCollationsMatchDeclared}).
|
|
35
|
+
*
|
|
36
|
+
* A DESC index IS reusable: every writer and reader of an index derives its
|
|
37
|
+
* direction flags from that index's own `columns[].desc`
|
|
38
|
+
* (`StoreTableConstraints.updateSecondaryIndexes`,
|
|
39
|
+
* `StoreTableConstraints.findUniqueConflictViaIndex`), so the enforcement probe lands
|
|
40
|
+
* on the same window a DESC-encoded entry was written to.
|
|
41
|
+
*
|
|
42
|
+
* Reuse makes a plain UNIQUE's hidden index depend on the set of EXPLICIT
|
|
43
|
+
* indexes, so `StoreModule.createIndex` / `dropIndex` must reconcile the physical
|
|
44
|
+
* `_uc_*` store on the transition — see
|
|
45
|
+
* `StoreModule.reconcileImplicitUniqueIndexStores`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function findReusableIndexForUnique(schema: TableSchema, uc: UniqueConstraintSchema): TableIndexSchema | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Return `schema` with a synthetic secondary index materialized into
|
|
50
|
+
* `schema.indexes` for every NON-DERIVED UNIQUE constraint that lacks one — the
|
|
51
|
+
* store analogue of `MemoryTableManager.ensureUniqueConstraintIndexes`.
|
|
52
|
+
*
|
|
53
|
+
* This is what lets a plain column- or table-level `UNIQUE` be enforced by a
|
|
54
|
+
* bounded index point-seek (`StoreTableConstraints.findUniqueConflictViaIndex`)
|
|
55
|
+
* instead of an O(rows) full scan: DML maintenance
|
|
56
|
+
* (`StoreTableConstraints.updateSecondaryIndexes`) and the UNIQUE check both iterate
|
|
57
|
+
* `schema.indexes`, so once the `_uc_*` entry is present the physical index is
|
|
58
|
+
* maintained and seeked with no new code path.
|
|
59
|
+
*
|
|
60
|
+
* The result is held ONLY in `StoreTableBase.materializedSchema` (the
|
|
61
|
+
* enforcement copy), never in the engine-facing `tableSchema` the store returns
|
|
62
|
+
* from `getSchema()` / registers with the engine. So the read-query planner and
|
|
63
|
+
* the catalog bundle never see `_uc_*` (it is fully derived on open from
|
|
64
|
+
* `uniqueConstraints`); like the memory backend, a plain UNIQUE gets no read-side
|
|
65
|
+
* plan from `_uc_*`, only enforcement / maintenance.
|
|
66
|
+
*
|
|
67
|
+
* Idempotent — a name already present is left untouched — and returns a frozen
|
|
68
|
+
* schema (or the input unchanged when there is nothing to add). A
|
|
69
|
+
* `derivedFromIndex` UC is skipped (its `CREATE UNIQUE INDEX` is already in
|
|
70
|
+
* `schema.indexes`). A partial UNIQUE's synthetic index carries the SAME
|
|
71
|
+
* `uc.predicate` object reference, which
|
|
72
|
+
* `StoreTableConstraints.findIndexForUniqueConstraint` matches on identity.
|
|
73
|
+
*
|
|
74
|
+
* A UC whose columns are already covered by a collation-compatible EXPLICIT full
|
|
75
|
+
* index is left WITHOUT a `_uc_*` — that index enforces it (see
|
|
76
|
+
* {@link findReusableIndexForUnique}), so building a byte-identical twin would
|
|
77
|
+
* only double the work of every INSERT / UPDATE / DELETE.
|
|
78
|
+
*/
|
|
79
|
+
export declare function withImplicitUniqueIndexes(schema: TableSchema): TableSchema;
|
|
80
|
+
//# sourceMappingURL=implicit-unique-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implicit-unique-index.d.ts","sourceRoot":"","sources":["../../../src/common/implicit-unique-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,sBAAsB,GAAG,MAAM,CAE/F;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,GACxB,gBAAgB,GAAG,SAAS,CAc9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAuB1E"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hidden `_uc_*` secondary index the store materializes per non-derived
|
|
3
|
+
* UNIQUE constraint that no explicit index already covers, so a plain UNIQUE
|
|
4
|
+
* enforces via a point seek rather than a full scan — plus the reuse test that
|
|
5
|
+
* decides when an existing index already serves that role.
|
|
6
|
+
*/
|
|
7
|
+
import { normalizeCollationName, } from '@quereus/quereus';
|
|
8
|
+
/**
|
|
9
|
+
* Deterministic name of the implicit covering index materialized for a
|
|
10
|
+
* NON-DERIVED UNIQUE constraint `uc`: the constraint's own name when it has one,
|
|
11
|
+
* else the auto-name `_uc_<colNames>`. This MUST equal the engine's
|
|
12
|
+
* `catalog.ts` `implicitIndexName`, so a name that ever reaches the catalog
|
|
13
|
+
* bundle generator is recognized as hidden / exposed-implicit rather than a user
|
|
14
|
+
* index.
|
|
15
|
+
*/
|
|
16
|
+
export function implicitUniqueIndexName(schema, uc) {
|
|
17
|
+
return uc.name ?? `_uc_${uc.columns.map(i => schema.columns[i]?.name ?? String(i)).join('_')}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* True when every column of `idx` carries the same effective collation as the
|
|
21
|
+
* column `uc` declares — the reuse gate of {@link findReusableIndexForUnique}.
|
|
22
|
+
*
|
|
23
|
+
* Positions align because the caller has already matched the column SET
|
|
24
|
+
* (`idx.columns[i]` ↔ `uc.columns[i]`). An index column with no explicit COLLATE
|
|
25
|
+
* has `collation === undefined` and falls back to the declared column collation,
|
|
26
|
+
* so the common `create index ix on t(email)` case stays reuse-eligible.
|
|
27
|
+
*
|
|
28
|
+
* Load-bearing: store index KEYS are encoded under each column's own effective
|
|
29
|
+
* collation (`resolveIndexKeyCollations` — index COLLATE ?? table column collation
|
|
30
|
+
* ?? BINARY), so a collation-mismatched index holds DIFFERENT bytes than the
|
|
31
|
+
* `_uc_*` it would replace. Reusing a BINARY-collated index for a NOCASE-declared
|
|
32
|
+
* UNIQUE would make the enforcement seek UNDER-fetch and silently accept a
|
|
33
|
+
* duplicate. Also mirrors `MemoryTableManager.indexCollationsMatchDeclared`, so
|
|
34
|
+
* both backends reuse the same set of indexes. The cost of the strictness is one
|
|
35
|
+
* duplicate hidden index in a rare declaration.
|
|
36
|
+
*/
|
|
37
|
+
function indexCollationsMatchDeclared(schema, idx, uc) {
|
|
38
|
+
return uc.columns.every((colIdx, i) => {
|
|
39
|
+
const declared = normalizeCollationName(schema.columns[colIdx]?.collation ?? 'BINARY');
|
|
40
|
+
const indexCollation = normalizeCollationName(idx.columns[i]?.collation ?? schema.columns[colIdx]?.collation ?? 'BINARY');
|
|
41
|
+
return indexCollation === declared;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The existing `schema.indexes` entry that already realizes `uc`, or undefined
|
|
46
|
+
* when none does and {@link withImplicitUniqueIndexes} must materialize a hidden
|
|
47
|
+
* `_uc_*` of its own.
|
|
48
|
+
*
|
|
49
|
+
* A FULL (non-partial) index over exactly the constrained columns physically
|
|
50
|
+
* holds an entry for every live row, keyed by the same bytes the `_uc_*` would
|
|
51
|
+
* use — so `StoreTableConstraints.findUniqueConflictViaIndex` can seek it directly and
|
|
52
|
+
* a second identical structure would only double DML maintenance. Reuse is
|
|
53
|
+
* refused for:
|
|
54
|
+
*
|
|
55
|
+
* - an index-DERIVED UC (`derivedFromIndex`) — it already names its index;
|
|
56
|
+
* - a PARTIAL UNIQUE (`uc.predicate`) — the co-scoped `_uc_*` carries the SAME
|
|
57
|
+
* predicate OBJECT, which `StoreTableConstraints.findIndexForUniqueConstraint`
|
|
58
|
+
* matches on identity; a user index with an equal-but-distinct predicate
|
|
59
|
+
* physically omits rows the constraint still covers;
|
|
60
|
+
* - a PARTIAL index — it omits out-of-scope rows a full UNIQUE still covers;
|
|
61
|
+
* - a collation-mismatched index (see {@link indexCollationsMatchDeclared}).
|
|
62
|
+
*
|
|
63
|
+
* A DESC index IS reusable: every writer and reader of an index derives its
|
|
64
|
+
* direction flags from that index's own `columns[].desc`
|
|
65
|
+
* (`StoreTableConstraints.updateSecondaryIndexes`,
|
|
66
|
+
* `StoreTableConstraints.findUniqueConflictViaIndex`), so the enforcement probe lands
|
|
67
|
+
* on the same window a DESC-encoded entry was written to.
|
|
68
|
+
*
|
|
69
|
+
* Reuse makes a plain UNIQUE's hidden index depend on the set of EXPLICIT
|
|
70
|
+
* indexes, so `StoreModule.createIndex` / `dropIndex` must reconcile the physical
|
|
71
|
+
* `_uc_*` store on the transition — see
|
|
72
|
+
* `StoreModule.reconcileImplicitUniqueIndexStores`.
|
|
73
|
+
*/
|
|
74
|
+
export function findReusableIndexForUnique(schema, uc) {
|
|
75
|
+
if (uc.derivedFromIndex || uc.predicate)
|
|
76
|
+
return undefined;
|
|
77
|
+
// Skip the constraint's OWN `_uc_*`, so an ALREADY-MATERIALIZED schema answers the
|
|
78
|
+
// same as its engine-facing original: without this a UC would "reuse" the very index
|
|
79
|
+
// it asked for, and a caller diffing the implicit set
|
|
80
|
+
// (`StoreModule.implicitUniqueIndexNameMap`) would conclude the `_uc_*` is not needed
|
|
81
|
+
// and tear its store down.
|
|
82
|
+
const ownName = implicitUniqueIndexName(schema, uc).toLowerCase();
|
|
83
|
+
return (schema.indexes ?? []).find(idx => idx.name.toLowerCase() !== ownName
|
|
84
|
+
&& !idx.predicate
|
|
85
|
+
&& idx.columns.length === uc.columns.length
|
|
86
|
+
&& idx.columns.every((col, i) => col.index === uc.columns[i])
|
|
87
|
+
&& indexCollationsMatchDeclared(schema, idx, uc));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Return `schema` with a synthetic secondary index materialized into
|
|
91
|
+
* `schema.indexes` for every NON-DERIVED UNIQUE constraint that lacks one — the
|
|
92
|
+
* store analogue of `MemoryTableManager.ensureUniqueConstraintIndexes`.
|
|
93
|
+
*
|
|
94
|
+
* This is what lets a plain column- or table-level `UNIQUE` be enforced by a
|
|
95
|
+
* bounded index point-seek (`StoreTableConstraints.findUniqueConflictViaIndex`)
|
|
96
|
+
* instead of an O(rows) full scan: DML maintenance
|
|
97
|
+
* (`StoreTableConstraints.updateSecondaryIndexes`) and the UNIQUE check both iterate
|
|
98
|
+
* `schema.indexes`, so once the `_uc_*` entry is present the physical index is
|
|
99
|
+
* maintained and seeked with no new code path.
|
|
100
|
+
*
|
|
101
|
+
* The result is held ONLY in `StoreTableBase.materializedSchema` (the
|
|
102
|
+
* enforcement copy), never in the engine-facing `tableSchema` the store returns
|
|
103
|
+
* from `getSchema()` / registers with the engine. So the read-query planner and
|
|
104
|
+
* the catalog bundle never see `_uc_*` (it is fully derived on open from
|
|
105
|
+
* `uniqueConstraints`); like the memory backend, a plain UNIQUE gets no read-side
|
|
106
|
+
* plan from `_uc_*`, only enforcement / maintenance.
|
|
107
|
+
*
|
|
108
|
+
* Idempotent — a name already present is left untouched — and returns a frozen
|
|
109
|
+
* schema (or the input unchanged when there is nothing to add). A
|
|
110
|
+
* `derivedFromIndex` UC is skipped (its `CREATE UNIQUE INDEX` is already in
|
|
111
|
+
* `schema.indexes`). A partial UNIQUE's synthetic index carries the SAME
|
|
112
|
+
* `uc.predicate` object reference, which
|
|
113
|
+
* `StoreTableConstraints.findIndexForUniqueConstraint` matches on identity.
|
|
114
|
+
*
|
|
115
|
+
* A UC whose columns are already covered by a collation-compatible EXPLICIT full
|
|
116
|
+
* index is left WITHOUT a `_uc_*` — that index enforces it (see
|
|
117
|
+
* {@link findReusableIndexForUnique}), so building a byte-identical twin would
|
|
118
|
+
* only double the work of every INSERT / UPDATE / DELETE.
|
|
119
|
+
*/
|
|
120
|
+
export function withImplicitUniqueIndexes(schema) {
|
|
121
|
+
const ucs = schema.uniqueConstraints;
|
|
122
|
+
if (!ucs || ucs.length === 0)
|
|
123
|
+
return schema;
|
|
124
|
+
const existing = schema.indexes ?? [];
|
|
125
|
+
const present = new Set(existing.map(idx => idx.name.toLowerCase()));
|
|
126
|
+
const additions = [];
|
|
127
|
+
for (const uc of ucs) {
|
|
128
|
+
if (uc.derivedFromIndex)
|
|
129
|
+
continue;
|
|
130
|
+
const name = implicitUniqueIndexName(schema, uc);
|
|
131
|
+
if (present.has(name.toLowerCase()))
|
|
132
|
+
continue;
|
|
133
|
+
if (findReusableIndexForUnique(schema, uc))
|
|
134
|
+
continue;
|
|
135
|
+
present.add(name.toLowerCase());
|
|
136
|
+
additions.push({
|
|
137
|
+
name,
|
|
138
|
+
columns: uc.columns.map(idx => ({ index: idx, collation: schema.columns[idx]?.collation })),
|
|
139
|
+
// SAME reference as `uc.predicate` (undefined for a full UNIQUE) — load-bearing:
|
|
140
|
+
// findIndexForUniqueConstraint admits a partial `_uc_*` by `ix.predicate === uc.predicate`.
|
|
141
|
+
predicate: uc.predicate,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (additions.length === 0)
|
|
145
|
+
return schema;
|
|
146
|
+
return Object.freeze({ ...schema, indexes: Object.freeze([...existing, ...additions]) });
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=implicit-unique-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implicit-unique-index.js","sourceRoot":"","sources":["../../../src/common/implicit-unique-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACN,sBAAsB,GAItB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmB,EAAE,EAA0B;IACtF,OAAO,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAChG,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,4BAA4B,CACpC,MAAmB,EACnB,GAAqB,EACrB,EAA0B;IAE1B,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAC;QACvF,MAAM,cAAc,GAAG,sBAAsB,CAC5C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,QAAQ,CAC1E,CAAC;QACF,OAAO,cAAc,KAAK,QAAQ,CAAC;IACpC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,0BAA0B,CACzC,MAAmB,EACnB,EAA0B;IAE1B,IAAI,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1D,mFAAmF;IACnF,qFAAqF;IACrF,sDAAsD;IACtD,sFAAsF;IACtF,2BAA2B;IAC3B,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACxC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO;WAC/B,CAAC,GAAG,CAAC,SAAS;WACd,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM;WACxC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;WAC1D,4BAA4B,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAmB;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC,gBAAgB;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QAC9C,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC;YAAE,SAAS;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3F,iFAAiF;YACjF,4FAA4F;YAC5F,SAAS,EAAE,EAAE,CAAC,SAAS;SACvB,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -4,17 +4,21 @@
|
|
|
4
4
|
export type { KVStore, KVEntry, WriteBatch, WriteOptions, BatchOp, AtomicBatch, IterateOptions, KVStoreFactory, KVStoreOptions, KVStoreProvider, } from './kv-store.js';
|
|
5
5
|
export { encodeValue, encodeCompositeKey, decodeValue, decodeCompositeKey, BUILTIN_KEY_NORMALIZER_RESOLVER, assertNoUnpairedSurrogate, findUnpairedSurrogate, type EncodeOptions, type KeyValueTransform, } from './encoding.js';
|
|
6
6
|
export { serializeRow, deserializeRow, serializeValue, deserializeValue, serializeStats, deserializeStats, type TableStats, } from './serialization.js';
|
|
7
|
-
export { STORE_SUFFIX, CATALOG_STORE_NAME, STATS_STORE_NAME, buildDataStoreName, buildIndexStoreName, buildStatsStoreName, buildStatsKey, buildDataKey, buildIndexKey, buildCatalogKey, buildViewCatalogKey, buildMaterializedViewCatalogKey, parseMaterializedViewCatalogKey, buildMetaCatalogKey, CLEAN_SHUTDOWN_META_NAME, STALE_MVS_META_NAME, classifyCatalogKey, type CatalogEntryKind, buildFullScanBounds, buildIndexPrefixBounds, buildPkPrefixBounds, buildCatalogScanBounds, KEY_PREFIX, buildTablePrefix, buildTableScanBounds, buildIndexScanBounds, buildMetaKey, buildMetaScanBounds, } from './key-builder.js';
|
|
7
|
+
export { STORE_SUFFIX, CATALOG_STORE_NAME, STATS_STORE_NAME, buildDataStoreName, buildIndexStoreName, buildStatsStoreName, buildStatsKey, buildDataKey, buildIndexKey, type IndexKeyHalf, buildCatalogKey, buildViewCatalogKey, buildMaterializedViewCatalogKey, parseMaterializedViewCatalogKey, buildMetaCatalogKey, CLEAN_SHUTDOWN_META_NAME, STALE_MVS_META_NAME, classifyCatalogKey, type CatalogEntryKind, buildFullScanBounds, buildIndexPrefixBounds, buildPkPrefixBounds, buildCatalogScanBounds, KEY_PREFIX, buildTablePrefix, buildTableScanBounds, buildIndexScanBounds, buildMetaKey, buildMetaScanBounds, } from './key-builder.js';
|
|
8
8
|
export { StoreEventEmitter, type SchemaChangeEvent, type DataChangeEvent, type SchemaChangeListener, type DataChangeListener, } from './events.js';
|
|
9
9
|
export { generateTableDDL, generateIndexDDL, generateViewDDL, generateMaintainedTableDDL, generateIndexTagsDDL } from '@quereus/quereus';
|
|
10
10
|
export { TransactionCoordinator, type TransactionCallbacks, type PendingStoreOps, type OrderedPendingOps, } from './transaction.js';
|
|
11
11
|
export { bytesToHex, bytesEqual, compareBytes } from './bytes.js';
|
|
12
12
|
export { InMemoryKVStore } from './memory-store.js';
|
|
13
13
|
export { CachedKVStore, type CacheOptions } from './cached-kv-store.js';
|
|
14
|
-
export { StoreTable,
|
|
14
|
+
export { StoreTable, type ExternalRowOp } from './store-table.js';
|
|
15
|
+
export { type StoreTableConfig, type StoreTableModule } from './store-table-base.js';
|
|
16
|
+
export { resolvePkKeyCollations, resolvePkKeyTransforms, resolveIndexKeyCollations, resolveIndexKeyTransforms, storeSemanticKeyTransform, } from './pk-key-resolution.js';
|
|
15
17
|
export { jsonStructuralKey } from './json-key.js';
|
|
16
18
|
export { StoreConnection } from './store-connection.js';
|
|
17
19
|
export { StoreBackingHost } from './backing-host.js';
|
|
18
|
-
export { StoreModule
|
|
20
|
+
export { StoreModule } from './store-module.js';
|
|
21
|
+
export { type StoreModuleConfig, type LensDeploymentListener } from './store-module-base.js';
|
|
22
|
+
export { type RehydrationResult, type RehydrationError } from './store-module-schema-sync.js';
|
|
19
23
|
export { createIsolatedStoreModule, hasIsolation, type IsolatedStoreModuleConfig, } from './isolated-store.js';
|
|
20
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,+BAA+B,EAC/B,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGzI,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,eAAe,EACf,mBAAmB,EACnB,+BAA+B,EAC/B,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGzI,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAG9F,OAAO,EACN,yBAAyB,EACzB,YAAY,EACZ,KAAK,yBAAyB,GAC9B,MAAM,qBAAqB,CAAC"}
|
package/dist/src/common/index.js
CHANGED
|
@@ -22,13 +22,16 @@ export { InMemoryKVStore } from './memory-store.js';
|
|
|
22
22
|
// Cached KV store wrapper
|
|
23
23
|
export { CachedKVStore } from './cached-kv-store.js';
|
|
24
24
|
// Generic store table and connection
|
|
25
|
-
export { StoreTable
|
|
25
|
+
export { StoreTable } from './store-table.js';
|
|
26
|
+
// Physical key properties of primary-key / index columns
|
|
27
|
+
export { resolvePkKeyCollations, resolvePkKeyTransforms, resolveIndexKeyCollations, resolveIndexKeyTransforms, storeSemanticKeyTransform, } from './pk-key-resolution.js';
|
|
26
28
|
// Structural key encoding for declared-JSON key members
|
|
27
29
|
export { jsonStructuralKey } from './json-key.js';
|
|
28
30
|
export { StoreConnection } from './store-connection.js';
|
|
29
31
|
// Materialized-view backing host (engine backing-host capability over a store table)
|
|
30
32
|
export { StoreBackingHost } from './backing-host.js';
|
|
31
|
-
// Generic store module
|
|
33
|
+
// Generic store module. The class is layered across a chain of files (see the header of
|
|
34
|
+
// store-module.ts); these three own the names the package exports.
|
|
32
35
|
export { StoreModule } from './store-module.js';
|
|
33
36
|
// Isolation layer utilities
|
|
34
37
|
export { createIsolatedStoreModule, hasIsolation, } from './isolated-store.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,eAAe;AACf,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,EACzB,qBAAqB,GAGtB,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,eAAe;AACf,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,EACzB,qBAAqB,GAGtB,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EAEb,eAAe,EACf,mBAAmB,EACnB,+BAA+B,EAC/B,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAElB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB;AACtB,8BAA8B;AAC9B,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,iBAAiB,GAKlB,MAAM,aAAa,CAAC;AAErB,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEzI,sBAAsB;AACtB,OAAO,EACL,sBAAsB,GAIvB,MAAM,kBAAkB,CAAC;AAE1B,gCAAgC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAExE,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAGlE,yDAAyD;AACzD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qFAAqF;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,wFAAwF;AACxF,mEAAmE;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,4BAA4B;AAC5B,OAAO,EACN,yBAAyB,EACzB,YAAY,GAEZ,MAAM,qBAAqB,CAAC"}
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* `compareCodePoints` (BINARY) for a string-vs-string pair when no collation is
|
|
58
58
|
* supplied. So the ORDERING paths (the isolation merge, UNIQUE enforcement, the
|
|
59
59
|
* memory BTree's collation-carrying comparator) and the PK-EQUALITY-only paths
|
|
60
|
-
* (`resolvePkSemanticEquality` in
|
|
60
|
+
* (`resolvePkSemanticEquality` in pk-key-resolution.ts, the isolation layer's
|
|
61
61
|
* `getPkSemanticComparators`) all agree with these key bytes for JSON string leaves.
|
|
62
62
|
*
|
|
63
63
|
* ## Identity
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
import { type SqlValue } from '@quereus/quereus';
|
|
89
89
|
/**
|
|
90
90
|
* Encode a JSON value into structural key bytes — the store's key transform for
|
|
91
|
-
* columns declared `json` (see `storeSemanticKeyTransform` in
|
|
91
|
+
* columns declared `json` (see `storeSemanticKeyTransform` in pk-key-resolution.ts).
|
|
92
92
|
* NULL never reaches a key transform (`encodeCompositeKey` exempts it), but a
|
|
93
93
|
* NESTED JSON null is a real node and encodes with its own tag.
|
|
94
94
|
*/
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* `compareCodePoints` (BINARY) for a string-vs-string pair when no collation is
|
|
58
58
|
* supplied. So the ORDERING paths (the isolation merge, UNIQUE enforcement, the
|
|
59
59
|
* memory BTree's collation-carrying comparator) and the PK-EQUALITY-only paths
|
|
60
|
-
* (`resolvePkSemanticEquality` in
|
|
60
|
+
* (`resolvePkSemanticEquality` in pk-key-resolution.ts, the isolation layer's
|
|
61
61
|
* `getPkSemanticComparators`) all agree with these key bytes for JSON string leaves.
|
|
62
62
|
*
|
|
63
63
|
* ## Identity
|
|
@@ -100,7 +100,7 @@ const KEY_MARKER = 0x01;
|
|
|
100
100
|
const utf8 = new TextEncoder();
|
|
101
101
|
/**
|
|
102
102
|
* Encode a JSON value into structural key bytes — the store's key transform for
|
|
103
|
-
* columns declared `json` (see `storeSemanticKeyTransform` in
|
|
103
|
+
* columns declared `json` (see `storeSemanticKeyTransform` in pk-key-resolution.ts).
|
|
104
104
|
* NULL never reaches a key transform (`encodeCompositeKey` exempts it), but a
|
|
105
105
|
* NESTED JSON null is a real node and encodes with its own tag.
|
|
106
106
|
*/
|