@quereus/quereus 4.18.0 → 4.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/src/common/types.d.ts +17 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +2 -1
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-auto-analyze.d.ts +3 -3
- package/dist/src/core/database-auto-analyze.d.ts.map +1 -1
- package/dist/src/core/database-auto-analyze.js +17 -11
- package/dist/src/core/database-auto-analyze.js.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.d.ts +11 -2
- package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.js +15 -10
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-watchers.d.ts.map +1 -1
- package/dist/src/core/database-watchers.js +2 -1
- package/dist/src/core/database-watchers.js.map +1 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +18 -0
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +5 -0
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +38 -42
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +9 -0
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +28 -0
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/debug.d.ts +5 -0
- package/dist/src/planner/debug.d.ts.map +1 -1
- package/dist/src/planner/debug.js +5 -0
- package/dist/src/planner/debug.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +0 -22
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/characteristics.js +0 -3
- package/dist/src/planner/framework/characteristics.js.map +1 -1
- package/dist/src/planner/framework/pass.js +3 -3
- package/dist/src/planner/nodes/async-gather-node.d.ts +13 -0
- package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +19 -29
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.d.ts +9 -0
- package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.js +13 -0
- package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-node.d.ts +8 -5
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-node.js +14 -4
- package/dist/src/planner/nodes/cte-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-reference-node.d.ts +9 -1
- package/dist/src/planner/nodes/cte-reference-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-reference-node.js +13 -0
- package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
- package/dist/src/planner/nodes/delete-node.d.ts +7 -1
- package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/delete-node.js +12 -2
- package/dist/src/planner/nodes/delete-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +2 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js +8 -1
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/planner/nodes/insert-node.d.ts +8 -1
- package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/insert-node.js +12 -1
- package/dist/src/planner/nodes/insert-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +10 -0
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.js +7 -0
- package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
- package/dist/src/planner/nodes/remote-query-node.d.ts +7 -1
- package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/remote-query-node.js +11 -0
- package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
- package/dist/src/planner/nodes/returning-node.d.ts +4 -0
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/returning-node.js +8 -1
- package/dist/src/planner/nodes/returning-node.js.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts +14 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +22 -1
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/sink-node.d.ts +9 -1
- package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/sink-node.js +12 -0
- package/dist/src/planner/nodes/sink-node.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +4 -3
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/update-node.d.ts +7 -1
- package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/update-node.js +9 -1
- package/dist/src/planner/nodes/update-node.js.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts +13 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.js +25 -1
- package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
- package/dist/src/planner/optimizer-tuning.d.ts +9 -9
- package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
- package/dist/src/planner/optimizer-tuning.js +0 -2
- package/dist/src/planner/optimizer-tuning.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +9 -21
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.js +19 -10
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +34 -19
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.d.ts.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js +14 -1
- package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.js +13 -10
- package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts +2 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js +45 -17
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +5 -3
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts +19 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +36 -3
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +4 -3
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts +14 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +200 -13
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +1 -1
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/index.d.ts.map +1 -1
- package/dist/src/planner/stats/index.js +3 -4
- package/dist/src/planner/stats/index.js.map +1 -1
- package/dist/src/planner/stats/table-cardinality.d.ts +6 -6
- package/dist/src/planner/stats/table-cardinality.js +7 -7
- package/dist/src/planner/stats/table-cardinality.js.map +1 -1
- package/dist/src/planner/util/row-estimates.d.ts +91 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -1
- package/dist/src/planner/util/row-estimates.js +134 -18
- package/dist/src/planner/util/row-estimates.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +3 -3
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/scheduler.d.ts +47 -0
- package/dist/src/runtime/scheduler.d.ts.map +1 -1
- package/dist/src/runtime/scheduler.js +105 -11
- package/dist/src/runtime/scheduler.js.map +1 -1
- package/dist/src/runtime/types.d.ts +18 -3
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js +7 -5
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/lens-prover.d.ts.map +1 -1
- package/dist/src/schema/lens-prover.js +2 -1
- package/dist/src/schema/lens-prover.js.map +1 -1
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +0 -3
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +4 -2
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/table.d.ts +0 -2
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/util/async-generator-support.d.ts +12 -0
- package/dist/src/util/async-generator-support.d.ts.map +1 -0
- package/dist/src/util/async-generator-support.js +65 -0
- package/dist/src/util/async-generator-support.js.map +1 -0
- package/dist/src/vtab/best-access-plan.d.ts +89 -4
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +76 -1
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +27 -11
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/module.d.ts +7 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts +5 -2
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts.map +1 -1
- package/dist/src/vtab/test-support/committed-read-conformance.js +55 -9
- package/dist/src/vtab/test-support/committed-read-conformance.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts +0 -17
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +0 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +0 -69
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/vtab/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,qGAAqG;IACrG,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEnF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,GAAG,CAAC,EAAE,OAAO,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,kBAAkB,CAClC,MAAM,SAAS,YAAY,EAC3B,OAAO,SAAS,gBAAgB,GAAG,gBAAgB;IAGnD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAE/C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEzC
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/vtab/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,8 +87,11 @@ export interface CommittedReadConformanceResult {
|
|
|
87
87
|
* Without a provable park the bar drops to "each read equals ONE whole state,
|
|
88
88
|
* pre- or post-write" — a mix is still a failure, but a writer that landed
|
|
89
89
|
* before the read is not;
|
|
90
|
-
* 6. release, await the writer, and assert a fresh read now sees the
|
|
91
|
-
* state
|
|
90
|
+
* 6. release, await the writer, and assert that a fresh read now sees the
|
|
91
|
+
* post-write state — checked on BOTH an ordinary read and a
|
|
92
|
+
* `readConcurrency: 'committed'` read, so neither a module that serves
|
|
93
|
+
* permanently stale data nor one that pins only its `_readCommitted`
|
|
94
|
+
* connections across statements can pass.
|
|
92
95
|
*
|
|
93
96
|
* @throws Error with the specific divergence on any failure.
|
|
94
97
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"committed-read-conformance.d.ts","sourceRoot":"","sources":["../../../../src/vtab/test-support/committed-read-conformance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,+BAA+B;IAC/C,4EAA4E;IAC5E,EAAE,EAAE,QAAQ,CAAC;IACb;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,iBAAiB,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC9C;;;;;;;;OAQG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"committed-read-conformance.d.ts","sourceRoot":"","sources":["../../../../src/vtab/test-support/committed-read-conformance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,+BAA+B;IAC/C,4EAA4E;IAC5E,EAAE,EAAE,QAAQ,CAAC;IACb;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,iBAAiB,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC9C;;;;;;;;OAQG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;AAuJD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,2BAA2B,CAChD,OAAO,EAAE,+BAA+B,GACtC,OAAO,CAAC,8BAA8B,CAAC,CAuBzC"}
|
|
@@ -54,9 +54,9 @@ function assertModuleDeclaresSnapshot(db, table) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
async function collectSnapshot(db, sql,
|
|
57
|
+
async function collectSnapshot(db, sql, path) {
|
|
58
58
|
const rows = [];
|
|
59
|
-
const iter =
|
|
59
|
+
const iter = path === 'committed'
|
|
60
60
|
? db.eval(sql, undefined, { readConcurrency: 'committed' })
|
|
61
61
|
: db.eval(sql);
|
|
62
62
|
for await (const row of iter) {
|
|
@@ -131,8 +131,11 @@ function withStallTimeout(work, ms, what) {
|
|
|
131
131
|
* Without a provable park the bar drops to "each read equals ONE whole state,
|
|
132
132
|
* pre- or post-write" — a mix is still a failure, but a writer that landed
|
|
133
133
|
* before the read is not;
|
|
134
|
-
* 6. release, await the writer, and assert a fresh read now sees the
|
|
135
|
-
* state
|
|
134
|
+
* 6. release, await the writer, and assert that a fresh read now sees the
|
|
135
|
+
* post-write state — checked on BOTH an ordinary read and a
|
|
136
|
+
* `readConcurrency: 'committed'` read, so neither a module that serves
|
|
137
|
+
* permanently stale data nor one that pins only its `_readCommitted`
|
|
138
|
+
* connections across statements can pass.
|
|
136
139
|
*
|
|
137
140
|
* @throws Error with the specific divergence on any failure.
|
|
138
141
|
*/
|
|
@@ -184,7 +187,7 @@ function buildRunPlan(table, keyColumn, valueColumn, rowCount) {
|
|
|
184
187
|
}
|
|
185
188
|
/** The harness owns the table's contents for the run, so it refuses to share it. */
|
|
186
189
|
async function assertTableEmpty(db, table, projection) {
|
|
187
|
-
const existing = await collectSnapshot(db, projection);
|
|
190
|
+
const existing = await collectSnapshot(db, projection, 'ordinary');
|
|
188
191
|
if (existing.length > 0) {
|
|
189
192
|
throw new Error(`committed-read conformance: '${table}' must be empty on entry (found ${existing.length} rows). ` +
|
|
190
193
|
`The harness owns the table's contents for the run and deletes what it wrote on the way out.`);
|
|
@@ -271,9 +274,9 @@ async function observeConcurrentReads(args) {
|
|
|
271
274
|
}
|
|
272
275
|
let parked = handle !== undefined && !writer.settled();
|
|
273
276
|
const guard = (work, what) => parked ? withStallTimeout(work, stallTimeoutMs, what) : work;
|
|
274
|
-
const fullScan = await guard(collectSnapshot(db, plan.projection,
|
|
277
|
+
const fullScan = await guard(collectSnapshot(db, plan.projection, 'committed'), 'the full-scan read');
|
|
275
278
|
const indexDriven = seekPlanned
|
|
276
|
-
? await guard(collectSnapshot(db, plan.indexDrivenSql,
|
|
279
|
+
? await guard(collectSnapshot(db, plan.indexDrivenSql, 'committed'), 'the index-driven read')
|
|
277
280
|
: [];
|
|
278
281
|
if (parked && writer.settled()) {
|
|
279
282
|
// The writer landed while we were reading, so neither read is evidence of
|
|
@@ -327,10 +330,24 @@ function assertLegsAgree(fullScan, indexDriven) {
|
|
|
327
330
|
}
|
|
328
331
|
/**
|
|
329
332
|
* Step 6: a module that pins a snapshot but never advances it would pass every
|
|
330
|
-
* check above. After the writer lands, a fresh read must see the new state
|
|
333
|
+
* check above. After the writer lands, a fresh read must see the new state — on
|
|
334
|
+
* the ordinary path AND on the committed path, since a module can pin only its
|
|
335
|
+
* `_readCommitted` connections and refresh on every other one.
|
|
336
|
+
*
|
|
337
|
+
* The ordinary check runs first on purpose: it catches the coarser "stale on
|
|
338
|
+
* every path" module and says so in plainer terms than a cross-path comparison
|
|
339
|
+
* could.
|
|
331
340
|
*/
|
|
332
341
|
async function assertAdvancesAfterCommit(db, plan) {
|
|
333
|
-
const after = await
|
|
342
|
+
const after = await assertOrdinaryReadAdvanced(db, plan);
|
|
343
|
+
await assertCommittedReadAdvanced(db, plan, after);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* The ordinary path must show the whole post-write state once the writer lands.
|
|
347
|
+
* Returns that state, which the committed-path check below compares against.
|
|
348
|
+
*/
|
|
349
|
+
async function assertOrdinaryReadAdvanced(db, plan) {
|
|
350
|
+
const after = await collectSnapshot(db, plan.projection, 'ordinary');
|
|
334
351
|
if (after.length !== plan.highKey) {
|
|
335
352
|
throw new Error(`committed-read conformance: after the writer committed, a fresh read returned ${after.length} rows, expected ${plan.highKey}. ` +
|
|
336
353
|
`The module is serving a stale snapshot to ordinary reads.`);
|
|
@@ -341,6 +358,35 @@ async function assertAdvancesAfterCommit(db, plan) {
|
|
|
341
358
|
`(first: key ${stale[0].key} = ${JSON.stringify(stale[0].value)}). A pinned snapshot must advance once the commit lands ` +
|
|
342
359
|
`— seeding was ${plan.rowCount} rows.`);
|
|
343
360
|
}
|
|
361
|
+
return after;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* The freshness bound's lower half, which the ordinary check above cannot reach:
|
|
365
|
+
* a module whose `_readCommitted` connections pin one state and never re-pin —
|
|
366
|
+
* while every other path refreshes normally — passes every check before this one.
|
|
367
|
+
* That is exactly the shape a module fetching its state from elsewhere has when
|
|
368
|
+
* its committed handle is a cached pre-transaction object it never re-fetches.
|
|
369
|
+
*
|
|
370
|
+
* NOTE: `readConcurrency: 'committed'` falls back to the serialized path silently
|
|
371
|
+
* when a statement is ineligible, and the engine exposes no signal for which path
|
|
372
|
+
* a read actually took. This check is meaningful only because a read-only
|
|
373
|
+
* autocommit query over a declaring module is eligible today; if the eligibility
|
|
374
|
+
* rules ever narrow, this comparison degrades into an ordinary read against an
|
|
375
|
+
* ordinary read and passes vacuously. The mid-commit legs (steps 4–5) would catch
|
|
376
|
+
* that regression via their stall timeout — they are the canary — but if
|
|
377
|
+
* eligibility is ever reworked, re-verify this step against
|
|
378
|
+
* `StaleCommittedSnapshotModule` in test/vtab/_conformance-stub-modules.ts.
|
|
379
|
+
*/
|
|
380
|
+
async function assertCommittedReadAdvanced(db, plan, after) {
|
|
381
|
+
const afterCommitted = await collectSnapshot(db, plan.projection, 'committed');
|
|
382
|
+
if (matches(afterCommitted, after))
|
|
383
|
+
return;
|
|
384
|
+
throw new Error(`committed-read conformance: after the writer committed, a read with readConcurrency: 'committed' returned ${afterCommitted.length} rows ` +
|
|
385
|
+
`that disagree with an ordinary read of the same committed state (${after.length} rows). ` +
|
|
386
|
+
`Divergences — ${describeDivergences(after, afterCommitted)}. ` +
|
|
387
|
+
`The module's _readCommitted connection appears to pin its state ACROSS statements. Pinning is required only for the life of a ` +
|
|
388
|
+
`single scan: every new committed read must re-pin to the state committed as of the moment that read begins, so a committed read ` +
|
|
389
|
+
`may never be staler than an ordinary read taken at the same instant.`);
|
|
344
390
|
}
|
|
345
391
|
/**
|
|
346
392
|
* The harness entered on an empty table, so removing everything removes exactly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"committed-read-conformance.js","sourceRoot":"","sources":["../../../../src/vtab/test-support/committed-read-conformance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"committed-read-conformance.js","sourceRoot":"","sources":["../../../../src/vtab/test-support/committed-read-conformance.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quereus/quereus",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.19.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Pure TypeScript SQL engine — no WASM, no native bindings. Runs in browsers, Node.js, React Native, edge workers, and anywhere JS runs.",
|
|
6
6
|
"keywords": [
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
"mutation:subsystem": "node mutation-subsystem.mjs"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@quereus/plugin-leveldb": "^4.
|
|
78
|
+
"@quereus/plugin-leveldb": "^4.19.2",
|
|
79
79
|
"@quereus/plugin-loader": "*",
|
|
80
|
-
"@quereus/store": "^4.
|
|
80
|
+
"@quereus/store": "^4.19.2",
|
|
81
81
|
"@stryker-mutator/core": "^9.6.1",
|
|
82
82
|
"@stryker-mutator/mocha-runner": "^9.6.1",
|
|
83
83
|
"@stryker-mutator/typescript-checker": "^9.6.1",
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule: CTE Optimization
|
|
3
|
-
*
|
|
4
|
-
* Required Characteristics:
|
|
5
|
-
* - Node must support CTE operations (CTECapable interface)
|
|
6
|
-
* - Node must be relational (produces rows)
|
|
7
|
-
* - Source must be cacheable for materialization
|
|
8
|
-
*
|
|
9
|
-
* Applied When:
|
|
10
|
-
* - CTE would benefit from materialization/caching based on cost analysis
|
|
11
|
-
*
|
|
12
|
-
* Benefits: Reduces redundant computation for repeated CTE access
|
|
13
|
-
*/
|
|
14
|
-
import type { PlanNode } from '../../nodes/plan-node.js';
|
|
15
|
-
import type { OptContext } from '../../framework/context.js';
|
|
16
|
-
export declare function ruleCteOptimization(node: PlanNode, context: OptContext): PlanNode | null;
|
|
17
|
-
//# sourceMappingURL=rule-cte-optimization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule-cte-optimization.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/cache/rule-cte-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAO7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA6ExF"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule: CTE Optimization
|
|
3
|
-
*
|
|
4
|
-
* Required Characteristics:
|
|
5
|
-
* - Node must support CTE operations (CTECapable interface)
|
|
6
|
-
* - Node must be relational (produces rows)
|
|
7
|
-
* - Source must be cacheable for materialization
|
|
8
|
-
*
|
|
9
|
-
* Applied When:
|
|
10
|
-
* - CTE would benefit from materialization/caching based on cost analysis
|
|
11
|
-
*
|
|
12
|
-
* Benefits: Reduces redundant computation for repeated CTE access
|
|
13
|
-
*/
|
|
14
|
-
import { createLogger } from '../../../common/logger.js';
|
|
15
|
-
import { CTENode } from '../../nodes/cte-node.js';
|
|
16
|
-
import { CacheNode } from '../../nodes/cache-node.js';
|
|
17
|
-
import { CapabilityDetectors, CachingAnalysis, PlanNodeCharacteristics } from '../../framework/characteristics.js';
|
|
18
|
-
const log = createLogger('optimizer:rule:cte-optimization');
|
|
19
|
-
export function ruleCteOptimization(node, context) {
|
|
20
|
-
// Guard: node must support CTE operations
|
|
21
|
-
if (!CapabilityDetectors.isCTE(node)) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
// Get CTE characteristics
|
|
25
|
-
const cteNode = node;
|
|
26
|
-
log('Optimizing CTE %s', cteNode.cteName);
|
|
27
|
-
// Source is already optimized by framework
|
|
28
|
-
const source = cteNode.getCTESource();
|
|
29
|
-
// Heuristics for when to cache CTEs:
|
|
30
|
-
// 1. CTE has materialization hint
|
|
31
|
-
// 2. CTE is estimated to be reasonably sized
|
|
32
|
-
// 3. CTE is not already cached
|
|
33
|
-
// NOTE: the `sourceSize > 0` gate below decides caching on a number that cannot
|
|
34
|
-
// carry the answer. A never-`ANALYZE`d table reports 0 rows, and that 0 means
|
|
35
|
-
// "unknown", not "empty" (`SchemaManager` hardcodes `TableSchema.estimatedRows`
|
|
36
|
-
// to 0 at CREATE TABLE), so today whether a CTE is cached turns on whether
|
|
37
|
-
// ANALYZE has run — and the rule never consults the reference count, so once a
|
|
38
|
-
// real estimate arrives it caches single-reference CTEs too, and double-buffers
|
|
39
|
-
// multi-reference ones against the materialization-advisory pass (see the NOTE
|
|
40
|
-
// below). Tracked in backlog `bug-cte-cache-gate-reads-unknown-as-empty`; do not
|
|
41
|
-
// paper over it with a `|| default` here, which caches single-reference CTEs.
|
|
42
|
-
const sourceSize = PlanNodeCharacteristics.estimatesRows(source);
|
|
43
|
-
const isAlreadyCached = CapabilityDetectors.isCached(source) && source.isCached();
|
|
44
|
-
const shouldCache = (cteNode.materializationHint === 'materialized' ||
|
|
45
|
-
(sourceSize > 0 && sourceSize < context.tuning.cte.maxSizeForCaching)) && !isAlreadyCached;
|
|
46
|
-
if (shouldCache) {
|
|
47
|
-
log('Adding cache to CTE %s (estimated rows: %d)', cteNode.cteName, sourceSize);
|
|
48
|
-
// Use characteristics-based cache threshold calculation
|
|
49
|
-
const cacheThreshold = Math.min(CachingAnalysis.getCacheThreshold(source), context.tuning.cte.maxCacheThreshold);
|
|
50
|
-
// NOTE: when the materialization-advisory pass later marks this CTE
|
|
51
|
-
// materialize (multi-referenced or MATERIALIZED hint), this inner
|
|
52
|
-
// CacheNode double-buffers: emitCTE buffers the rows per execution AND
|
|
53
|
-
// this cache buffers them again, driven only by the single first
|
|
54
|
-
// reference. Correct but a wasted buffer — if it shows up in memory
|
|
55
|
-
// profiles, drop the CTE-specific wrap here (needs its own test pass;
|
|
56
|
-
// it also changes single-reference CTE caching behavior).
|
|
57
|
-
const cachedSource = new CacheNode(source.scope, source, 'memory', cacheThreshold);
|
|
58
|
-
// Create new CTE with cached source (specific to CTENode implementation).
|
|
59
|
-
// `materialize` and `tableDescriptor` are both carried over: emitCTE keys its
|
|
60
|
-
// shared per-execution buffer on that identity, so a replacement that dropped
|
|
61
|
-
// the flag or minted a fresh descriptor would re-drive the source — a second
|
|
62
|
-
// write for a data-modifying body.
|
|
63
|
-
const result = new CTENode(node.scope, cteNode.cteName, cteNode.columns, cachedSource, cteNode.materializationHint, cteNode.isRecursive, cteNode.materialize, cteNode.tableDescriptor);
|
|
64
|
-
log('Created CTE with caching');
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
return null; // No transformation needed
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=rule-cte-optimization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule-cte-optimization.js","sourceRoot":"","sources":["../../../../../src/planner/rules/cache/rule-cte-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAmB,MAAM,oCAAoC,CAAC;AAEpI,MAAM,GAAG,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAE,OAAmB;IACtE,0CAA0C;IAC1C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAkB,CAAC;IACnC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C,2CAA2C;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAEtC,qCAAqC;IACrC,kCAAkC;IAClC,6CAA6C;IAC7C,+BAA+B;IAC/B,gFAAgF;IAChF,8EAA8E;IAC9E,gFAAgF;IAChF,2EAA2E;IAC3E,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,iFAAiF;IACjF,8EAA8E;IAC9E,MAAM,UAAU,GAAG,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,CACnB,OAAO,CAAC,mBAAmB,KAAK,cAAc;QAC9C,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACrE,IAAI,CAAC,eAAe,CAAC;IAEtB,IAAI,WAAW,EAAE,CAAC;QACjB,GAAG,CAAC,6CAA6C,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEhF,wDAAwD;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC9B,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACzC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CACpC,CAAC;QAEF,oEAAoE;QACpE,kEAAkE;QAClE,uEAAuE;QACvE,iEAAiE;QACjE,oEAAoE;QACpE,sEAAsE;QACtE,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,SAAS,CACjC,MAAM,CAAC,KAAK,EACZ,MAAM,EACN,QAAQ,EACR,cAAc,CACd,CAAC;QAEF,0EAA0E;QAC1E,8EAA8E;QAC9E,8EAA8E;QAC9E,6EAA6E;QAC7E,mCAAmC;QACnC,MAAM,MAAM,GAAG,IAAI,OAAO,CACzB,IAAI,CAAC,KAAK,EACV,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,YAAY,EACZ,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,eAAe,CACvB,CAAC;QAEF,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,2BAA2B;AACzC,CAAC"}
|