@quereus/quereus 4.21.1 → 4.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/core/database-cardinality-feedback.d.ts +146 -0
- package/dist/src/core/database-cardinality-feedback.d.ts.map +1 -0
- package/dist/src/core/database-cardinality-feedback.js +274 -0
- package/dist/src/core/database-cardinality-feedback.js.map +1 -0
- package/dist/src/core/database-transaction.d.ts +9 -2
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +27 -9
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database.d.ts +4 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +78 -7
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts +11 -2
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +46 -2
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/cardinality-feedback.d.ts +9 -0
- package/dist/src/func/builtins/cardinality-feedback.d.ts.map +1 -0
- package/dist/src/func/builtins/cardinality-feedback.js +54 -0
- package/dist/src/func/builtins/cardinality-feedback.js.map +1 -0
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +2 -0
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts +7 -0
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +10 -2
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/optimizer-tuning.d.ts +29 -0
- package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
- package/dist/src/planner/optimizer-tuning.js +7 -1
- package/dist/src/planner/optimizer-tuning.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +6 -6
- package/dist/src/planner/stats/catalog-stats.d.ts +11 -2
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +14 -5
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/table-cardinality.d.ts +52 -18
- package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -1
- package/dist/src/planner/stats/table-cardinality.js +46 -18
- package/dist/src/planner/stats/table-cardinality.js.map +1 -1
- package/dist/src/runtime/cardinality-observations.d.ts +30 -0
- package/dist/src/runtime/cardinality-observations.d.ts.map +1 -0
- package/dist/src/runtime/cardinality-observations.js +37 -0
- package/dist/src/runtime/cardinality-observations.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +29 -0
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +3 -0
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +4 -0
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/types.d.ts +12 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/manager.d.ts +7 -0
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +8 -0
- package/dist/src/schema/manager.js.map +1 -1
- package/package.json +3 -3
|
@@ -33,15 +33,15 @@ import { combineResidualExpressions } from '../access/rule-select-access-path.js
|
|
|
33
33
|
import { isIndexStyleContext } from '../shared/index-style-context.js';
|
|
34
34
|
const log = createLogger('optimizer:rule:grow-retrieve');
|
|
35
35
|
/**
|
|
36
|
-
* The row count for a `BestAccessPlanRequest`: the
|
|
37
|
-
*
|
|
36
|
+
* The row count for a `BestAccessPlanRequest`: the measured count, or `undefined` when
|
|
37
|
+
* nothing has measured it. Never a fabricated number.
|
|
38
38
|
*
|
|
39
|
-
* `TableReferenceNode.estimatedRows` is `
|
|
40
|
-
*
|
|
41
|
-
* empty" and `undefined` means "nobody knows".
|
|
39
|
+
* `TableReferenceNode.estimatedRows` is `plannedRowCount(tableSchema, …)` — an exact
|
|
40
|
+
* count observed during execution, else `ANALYZE`'s (or a module's reported statistics),
|
|
41
|
+
* where a real `0` means "measured, empty" and `undefined` means "nobody knows".
|
|
42
42
|
*
|
|
43
43
|
* `context.stats.tableRows()` is deliberately NOT consulted here. `CatalogStatsProvider`
|
|
44
|
-
* reads that same `
|
|
44
|
+
* reads that same `plannedRowCount` and, finding nothing, falls back to
|
|
45
45
|
* `NaiveStatsProvider`'s fixed 1000 — so routing through it would hand the module a
|
|
46
46
|
* made-up size indistinguishable from a real 1000-row `ANALYZE` result, and lock out
|
|
47
47
|
* every module that can size itself better (`quereus-store` keeps a live row count).
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
* Catalog-backed statistics types and provider
|
|
3
3
|
*
|
|
4
4
|
* Reads real statistics from TableSchema.statistics (populated by ANALYZE or VTab)
|
|
5
|
-
* and falls back to NaiveStatsProvider heuristics when unavailable.
|
|
5
|
+
* and falls back to NaiveStatsProvider heuristics when unavailable. Table row
|
|
6
|
+
* counts additionally consult the observed row-count overlay first (see
|
|
7
|
+
* `plannedRowCount`); column statistics never do.
|
|
6
8
|
*/
|
|
7
9
|
import type { SqlValue } from '../../common/types.js';
|
|
8
10
|
import type { ScalarPlanNode } from '../nodes/plan-node.js';
|
|
9
11
|
import type { TableSchema } from '../../schema/table.js';
|
|
10
12
|
import type { ColumnStatsResolver, StatsProvider } from './index.js';
|
|
11
13
|
import { NaiveStatsProvider } from './index.js';
|
|
14
|
+
import { type ObservedRowCounts } from './table-cardinality.js';
|
|
12
15
|
/**
|
|
13
16
|
* An equi-height histogram bucket.
|
|
14
17
|
* Buckets are cumulative: `cumulativeCount` is the total rows up to and including this bucket.
|
|
@@ -60,8 +63,14 @@ export interface TableStatistics {
|
|
|
60
63
|
* Falls back to a NaiveStatsProvider when real statistics are not available.
|
|
61
64
|
*/
|
|
62
65
|
export declare class CatalogStatsProvider implements StatsProvider {
|
|
66
|
+
private readonly observed?;
|
|
63
67
|
private readonly fallback;
|
|
64
|
-
|
|
68
|
+
/**
|
|
69
|
+
* @param observed The owning database's observed row-count overlay. Must be the
|
|
70
|
+
* same overlay `TableReferenceNode` reads through its `SchemaManager`, or scan
|
|
71
|
+
* cardinality and selectivity denominators disagree.
|
|
72
|
+
*/
|
|
73
|
+
constructor(fallback?: NaiveStatsProvider, observed?: ObservedRowCounts | undefined);
|
|
65
74
|
tableRows(table: TableSchema): number | undefined;
|
|
66
75
|
selectivity(table: TableSchema, predicate: ScalarPlanNode, resolve?: ColumnStatsResolver): number | undefined;
|
|
67
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-stats.d.ts","sourceRoot":"","sources":["../../../../src/planner/stats/catalog-stats.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"catalog-stats.d.ts","sourceRoot":"","sources":["../../../../src/planner/stats/catalog-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* Catalog-backed statistics types and provider
|
|
3
3
|
*
|
|
4
4
|
* Reads real statistics from TableSchema.statistics (populated by ANALYZE or VTab)
|
|
5
|
-
* and falls back to NaiveStatsProvider heuristics when unavailable.
|
|
5
|
+
* and falls back to NaiveStatsProvider heuristics when unavailable. Table row
|
|
6
|
+
* counts additionally consult the observed row-count overlay first (see
|
|
7
|
+
* `plannedRowCount`); column statistics never do.
|
|
6
8
|
*/
|
|
7
9
|
import { NaiveStatsProvider } from './index.js';
|
|
8
10
|
import { createLogger } from '../../common/logger.js';
|
|
9
|
-
import {
|
|
11
|
+
import { plannedRowCount } from './table-cardinality.js';
|
|
10
12
|
import { selectivityFromHistogram } from './histogram.js';
|
|
11
13
|
import { combineConjunctive, combineDisjunctive } from './selectivity-combine.js';
|
|
12
14
|
import { splitConjuncts, splitDisjuncts } from '../analysis/predicate-conjuncts.js';
|
|
@@ -26,15 +28,22 @@ const lowerBound = (value) => ({ kind: 'lowerBound', value });
|
|
|
26
28
|
* Falls back to a NaiveStatsProvider when real statistics are not available.
|
|
27
29
|
*/
|
|
28
30
|
export class CatalogStatsProvider {
|
|
31
|
+
observed;
|
|
29
32
|
fallback;
|
|
30
|
-
|
|
33
|
+
/**
|
|
34
|
+
* @param observed The owning database's observed row-count overlay. Must be the
|
|
35
|
+
* same overlay `TableReferenceNode` reads through its `SchemaManager`, or scan
|
|
36
|
+
* cardinality and selectivity denominators disagree.
|
|
37
|
+
*/
|
|
38
|
+
constructor(fallback, observed) {
|
|
39
|
+
this.observed = observed;
|
|
31
40
|
this.fallback = fallback ?? new NaiveStatsProvider();
|
|
32
41
|
}
|
|
33
42
|
tableRows(table) {
|
|
34
|
-
const rows =
|
|
43
|
+
const rows = plannedRowCount(table, this.observed);
|
|
35
44
|
if (rows === undefined)
|
|
36
45
|
return this.fallback.tableRows(table);
|
|
37
|
-
log('Table %s: rowCount=%d (source: catalog)', table.name, rows);
|
|
46
|
+
log('Table %s: rowCount=%d (source: observed or catalog)', table.name, rows);
|
|
38
47
|
return rows;
|
|
39
48
|
}
|
|
40
49
|
selectivity(table, predicate, resolve) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-stats.js","sourceRoot":"","sources":["../../../../src/planner/stats/catalog-stats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog-stats.js","sourceRoot":"","sources":["../../../../src/planner/stats/catalog-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The base-table row-count seam.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Every planner reading of a base table's size goes through {@link plannedRowCount}:
|
|
5
|
+
* the count observed during execution (the per-database overlay, see
|
|
6
|
+
* `core/database-cardinality-feedback.ts`), else the catalog's count, else
|
|
7
|
+
* `undefined`. `TableReferenceNode` (every scan's base cardinality, and the
|
|
8
|
+
* `BestAccessPlanRequest.estimatedRows` hint) and `CatalogStatsProvider.tableRows`
|
|
9
|
+
* (selectivity denominators, MV sizing) both call it, so scan cardinality and the
|
|
10
|
+
* stats-provider estimate cannot drift apart within one plan.
|
|
10
11
|
*
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* There are exactly two spellings: `undefined` means "nobody knows" and a number —
|
|
13
|
+
* including a real 0 — means "measured". `undefined` must stay `undefined` here:
|
|
14
|
+
* callers apply their own fallback (e.g. NaiveStatsProvider's default of 1000), and
|
|
15
|
+
* folding a default in would change every un-analyzed table's cardinality.
|
|
14
16
|
*
|
|
15
|
-
* NOTE: `rowCount` is a snapshot from the last `ANALYZE` — rows written
|
|
16
|
-
* afterwards are invisible until the next one.
|
|
17
|
+
* NOTE: the catalog `rowCount` is a snapshot from the last `ANALYZE` — rows written
|
|
18
|
+
* afterwards are invisible until the next one (or until a complete scan is observed).
|
|
17
19
|
*
|
|
18
|
-
* NOTE: a real 0 (analyzed
|
|
19
|
-
* `estimatedRows || default` spellings in `rule-select-access-path`,
|
|
20
|
+
* NOTE: a real 0 (analyzed or observed empty table) is distinct from `undefined`,
|
|
21
|
+
* but the `estimatedRows || default` spellings in `rule-select-access-path`,
|
|
20
22
|
* `rule-grow-retrieve` and `IndexSeekNode.computePhysical` collapse the two and
|
|
21
|
-
* substitute their default — so
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* substitute their default — so a measured empty table reaches `getBestAccessPlan`
|
|
24
|
+
* as "unknown" (1000) while a SeqScan over it reports 0. Harmless today (any plan
|
|
25
|
+
* over 0 rows is cheap); switch those to `??` if an empty-table plan ever costs out
|
|
26
|
+
* wrong.
|
|
25
27
|
*/
|
|
26
28
|
import type { TableSchema } from '../../schema/table.js';
|
|
29
|
+
/**
|
|
30
|
+
* Exact table sizes observed during execution. Answers only for the `TableSchema`
|
|
31
|
+
* object the count was observed against, so any schema swap (`ANALYZE`, `ALTER`,
|
|
32
|
+
* drop and re-create) silences an entry.
|
|
33
|
+
*/
|
|
34
|
+
export interface ObservedRowCounts {
|
|
35
|
+
observedRows(table: TableSchema): number | undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The catalog's row count — `TableSchema.statistics`, populated by `ANALYZE` or VTab
|
|
39
|
+
* reporting.
|
|
40
|
+
*
|
|
41
|
+
* NOTE: planner reads go through {@link plannedRowCount}. The remaining callers —
|
|
42
|
+
* assertion and watcher delta sizing, the lens prover's cardinality band,
|
|
43
|
+
* auto-analyze's staleness arithmetic — are catalog-only on purpose: none of them
|
|
44
|
+
* plans a query, and auto-analyze must not be fed numbers it did not collect.
|
|
45
|
+
*/
|
|
27
46
|
export declare function catalogRowCount(table: TableSchema): number | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* The base-table row count the planner uses: observed, else catalog (`ANALYZE`), else
|
|
49
|
+
* `undefined` (unknown). The overlay wins because an entry only answers for the exact
|
|
50
|
+
* `TableSchema` it was observed under and any `ANALYZE` swaps that object — an
|
|
51
|
+
* answering entry is always newer than the catalog numbers on the schema it names.
|
|
52
|
+
* Only the row count is overridden; column statistics are untouched.
|
|
53
|
+
*
|
|
54
|
+
* NOTE: accepted tradeoff — the result also becomes `BestAccessPlanRequest.estimatedRows`,
|
|
55
|
+
* and a self-sizing module (`StoreModule.sizeRequestFromLiveCount`) honors a supplied
|
|
56
|
+
* hint over its own running count, so between full scans it prices against the last
|
|
57
|
+
* observed size instead of its live one; one size per plan weighed over the fresher
|
|
58
|
+
* live count. Revisit when a module's live size reaches the planner
|
|
59
|
+
* (`feat-planner-asks-the-backend-how-big-a-table-is`) — it should outrank the overlay.
|
|
60
|
+
*/
|
|
61
|
+
export declare function plannedRowCount(table: TableSchema, observed: ObservedRowCounts | undefined): number | undefined;
|
|
28
62
|
//# sourceMappingURL=table-cardinality.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-cardinality.d.ts","sourceRoot":"","sources":["../../../../src/planner/stats/table-cardinality.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"table-cardinality.d.ts","sourceRoot":"","sources":["../../../../src/planner/stats/table-cardinality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;CACrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE/G"}
|
|
@@ -1,29 +1,57 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The base-table row-count seam.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Every planner reading of a base table's size goes through {@link plannedRowCount}:
|
|
5
|
+
* the count observed during execution (the per-database overlay, see
|
|
6
|
+
* `core/database-cardinality-feedback.ts`), else the catalog's count, else
|
|
7
|
+
* `undefined`. `TableReferenceNode` (every scan's base cardinality, and the
|
|
8
|
+
* `BestAccessPlanRequest.estimatedRows` hint) and `CatalogStatsProvider.tableRows`
|
|
9
|
+
* (selectivity denominators, MV sizing) both call it, so scan cardinality and the
|
|
10
|
+
* stats-provider estimate cannot drift apart within one plan.
|
|
10
11
|
*
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* There are exactly two spellings: `undefined` means "nobody knows" and a number —
|
|
13
|
+
* including a real 0 — means "measured". `undefined` must stay `undefined` here:
|
|
14
|
+
* callers apply their own fallback (e.g. NaiveStatsProvider's default of 1000), and
|
|
15
|
+
* folding a default in would change every un-analyzed table's cardinality.
|
|
14
16
|
*
|
|
15
|
-
* NOTE: `rowCount` is a snapshot from the last `ANALYZE` — rows written
|
|
16
|
-
* afterwards are invisible until the next one.
|
|
17
|
+
* NOTE: the catalog `rowCount` is a snapshot from the last `ANALYZE` — rows written
|
|
18
|
+
* afterwards are invisible until the next one (or until a complete scan is observed).
|
|
17
19
|
*
|
|
18
|
-
* NOTE: a real 0 (analyzed
|
|
19
|
-
* `estimatedRows || default` spellings in `rule-select-access-path`,
|
|
20
|
+
* NOTE: a real 0 (analyzed or observed empty table) is distinct from `undefined`,
|
|
21
|
+
* but the `estimatedRows || default` spellings in `rule-select-access-path`,
|
|
20
22
|
* `rule-grow-retrieve` and `IndexSeekNode.computePhysical` collapse the two and
|
|
21
|
-
* substitute their default — so
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* substitute their default — so a measured empty table reaches `getBestAccessPlan`
|
|
24
|
+
* as "unknown" (1000) while a SeqScan over it reports 0. Harmless today (any plan
|
|
25
|
+
* over 0 rows is cheap); switch those to `??` if an empty-table plan ever costs out
|
|
26
|
+
* wrong.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* The catalog's row count — `TableSchema.statistics`, populated by `ANALYZE` or VTab
|
|
30
|
+
* reporting.
|
|
31
|
+
*
|
|
32
|
+
* NOTE: planner reads go through {@link plannedRowCount}. The remaining callers —
|
|
33
|
+
* assertion and watcher delta sizing, the lens prover's cardinality band,
|
|
34
|
+
* auto-analyze's staleness arithmetic — are catalog-only on purpose: none of them
|
|
35
|
+
* plans a query, and auto-analyze must not be fed numbers it did not collect.
|
|
25
36
|
*/
|
|
26
37
|
export function catalogRowCount(table) {
|
|
27
38
|
return table.statistics?.rowCount;
|
|
28
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* The base-table row count the planner uses: observed, else catalog (`ANALYZE`), else
|
|
42
|
+
* `undefined` (unknown). The overlay wins because an entry only answers for the exact
|
|
43
|
+
* `TableSchema` it was observed under and any `ANALYZE` swaps that object — an
|
|
44
|
+
* answering entry is always newer than the catalog numbers on the schema it names.
|
|
45
|
+
* Only the row count is overridden; column statistics are untouched.
|
|
46
|
+
*
|
|
47
|
+
* NOTE: accepted tradeoff — the result also becomes `BestAccessPlanRequest.estimatedRows`,
|
|
48
|
+
* and a self-sizing module (`StoreModule.sizeRequestFromLiveCount`) honors a supplied
|
|
49
|
+
* hint over its own running count, so between full scans it prices against the last
|
|
50
|
+
* observed size instead of its live one; one size per plan weighed over the fresher
|
|
51
|
+
* live count. Revisit when a module's live size reaches the planner
|
|
52
|
+
* (`feat-planner-asks-the-backend-how-big-a-table-is`) — it should outrank the overlay.
|
|
53
|
+
*/
|
|
54
|
+
export function plannedRowCount(table, observed) {
|
|
55
|
+
return observed?.observedRows(table) ?? catalogRowCount(table);
|
|
56
|
+
}
|
|
29
57
|
//# sourceMappingURL=table-cardinality.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-cardinality.js","sourceRoot":"","sources":["../../../../src/planner/stats/table-cardinality.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"table-cardinality.js","sourceRoot":"","sources":["../../../../src/planner/stats/table-cardinality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAaH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB;IACjD,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB,EAAE,QAAuC;IAC1F,OAAO,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-execution sink for cardinality feedback: the exact row counts of base tables
|
|
3
|
+
* that a scan read in full during one execution (docs/progressive-optimizer.md §3.1).
|
|
4
|
+
*
|
|
5
|
+
* The scan leaf (`runtime/emit/scan.ts`) reports here when a qualifying scan runs to
|
|
6
|
+
* natural exhaustion; the run site hands the sink to
|
|
7
|
+
* `CardinalityFeedbackManager.publish` once the execution ends. Nothing here decides
|
|
8
|
+
* whether a count is worth keeping — that is the overlay's record policy.
|
|
9
|
+
*/
|
|
10
|
+
import type { TableSchema } from '../schema/table.js';
|
|
11
|
+
export declare class CardinalityObservations {
|
|
12
|
+
readonly rollbacksAtStart: number;
|
|
13
|
+
/**
|
|
14
|
+
* Keyed by schema object, not name: every scan in one execution was emitted from one
|
|
15
|
+
* compile, so a nested-loop inner's re-scans and a self-join's two scan sites share
|
|
16
|
+
* the object and collapse to one entry (last count wins) without composing a string
|
|
17
|
+
* per completed scan. The overlay re-keys by name when it records.
|
|
18
|
+
*/
|
|
19
|
+
private readonly counts;
|
|
20
|
+
/**
|
|
21
|
+
* @param rollbacksAtStart The overlay's rollback count when the execution began;
|
|
22
|
+
* opaque here. If it has moved by publication, work this execution may have seen
|
|
23
|
+
* was undone under it (`CardinalityFeedbackManager.publish`).
|
|
24
|
+
*/
|
|
25
|
+
constructor(rollbacksAtStart: number);
|
|
26
|
+
observe(table: TableSchema, rows: number): void;
|
|
27
|
+
get isEmpty(): boolean;
|
|
28
|
+
entries(): IterableIterator<[TableSchema, number]>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=cardinality-observations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardinality-observations.d.ts","sourceRoot":"","sources":["../../../src/runtime/cardinality-observations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,uBAAuB;IAcvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IAb7C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IAEzD;;;;OAIG;gBACkB,gBAAgB,EAAE,MAAM;IAE7C,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,IAAI,gBAAgB,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;CAGlD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-execution sink for cardinality feedback: the exact row counts of base tables
|
|
3
|
+
* that a scan read in full during one execution (docs/progressive-optimizer.md §3.1).
|
|
4
|
+
*
|
|
5
|
+
* The scan leaf (`runtime/emit/scan.ts`) reports here when a qualifying scan runs to
|
|
6
|
+
* natural exhaustion; the run site hands the sink to
|
|
7
|
+
* `CardinalityFeedbackManager.publish` once the execution ends. Nothing here decides
|
|
8
|
+
* whether a count is worth keeping — that is the overlay's record policy.
|
|
9
|
+
*/
|
|
10
|
+
export class CardinalityObservations {
|
|
11
|
+
rollbacksAtStart;
|
|
12
|
+
/**
|
|
13
|
+
* Keyed by schema object, not name: every scan in one execution was emitted from one
|
|
14
|
+
* compile, so a nested-loop inner's re-scans and a self-join's two scan sites share
|
|
15
|
+
* the object and collapse to one entry (last count wins) without composing a string
|
|
16
|
+
* per completed scan. The overlay re-keys by name when it records.
|
|
17
|
+
*/
|
|
18
|
+
counts = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* @param rollbacksAtStart The overlay's rollback count when the execution began;
|
|
21
|
+
* opaque here. If it has moved by publication, work this execution may have seen
|
|
22
|
+
* was undone under it (`CardinalityFeedbackManager.publish`).
|
|
23
|
+
*/
|
|
24
|
+
constructor(rollbacksAtStart) {
|
|
25
|
+
this.rollbacksAtStart = rollbacksAtStart;
|
|
26
|
+
}
|
|
27
|
+
observe(table, rows) {
|
|
28
|
+
this.counts.set(table, rows);
|
|
29
|
+
}
|
|
30
|
+
get isEmpty() {
|
|
31
|
+
return this.counts.size === 0;
|
|
32
|
+
}
|
|
33
|
+
entries() {
|
|
34
|
+
return this.counts.entries();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=cardinality-observations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardinality-observations.js","sourceRoot":"","sources":["../../../src/runtime/cardinality-observations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,OAAO,uBAAuB;IAcd;IAbrB;;;;;OAKG;IACc,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEzD;;;;OAIG;IACH,YAAqB,gBAAwB;QAAxB,qBAAgB,GAAhB,gBAAgB,CAAQ;IAAG,CAAC;IAEjD,OAAO,CAAC,KAAkB,EAAE,IAAY;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAItG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAChC,cAAc,EAAE,UAAU,EAC1B,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,QAAQ,EAAE,KACnB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;;;GAMG;AACH,wBAAgB,WAAW,CAC1B,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,EACjD,GAAG,EAAE,eAAe,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,GACrC,WAAW,
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAItG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAChC,cAAc,EAAE,UAAU,EAC1B,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,QAAQ,EAAE,KACnB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;;;GAMG;AACH,wBAAgB,WAAW,CAC1B,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,EACjD,GAAG,EAAE,eAAe,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,GACrC,WAAW,CAiOb"}
|
|
@@ -49,6 +49,10 @@ export function emitSeqScan(plan, ctx, filterInfoOverride) {
|
|
|
49
49
|
const reprWhere = REPR_STRICT
|
|
50
50
|
? `module '${schema.vtabModuleName}' query() row for ${schema.schemaName}.${schema.name}`
|
|
51
51
|
: '';
|
|
52
|
+
// Cardinality feedback (docs/progressive-optimizer.md §3.1): decided once here, so a
|
|
53
|
+
// non-qualifying site never even reads the sink. An override can stamp a limit/offset
|
|
54
|
+
// or a seek at run time, so any override disqualifies the site.
|
|
55
|
+
const observesWholeTable = !filterInfoOverride && enumeratesWholeTable(plan);
|
|
52
56
|
async function* run(runtimeCtx, ...dynamicArgs) {
|
|
53
57
|
// Use the captured module info instead of doing a fresh lookup
|
|
54
58
|
const capturedModuleInfo = ctx.getCapturedSchemaObject(moduleKey);
|
|
@@ -151,6 +155,10 @@ export function emitSeqScan(plan, ctx, filterInfoOverride) {
|
|
|
151
155
|
: `${schema.schemaName}.${effectiveName}`.toLowerCase());
|
|
152
156
|
if (tableCounters)
|
|
153
157
|
tableCounters.queryCalls++;
|
|
158
|
+
const observations = observesWholeTable ? runtimeCtx.cardinalityObservations : undefined;
|
|
159
|
+
// Unconditional on purpose: one local increment is cheaper per row than testing
|
|
160
|
+
// `observations`, and the count is only read after a completed loop.
|
|
161
|
+
let rowsYielded = 0;
|
|
154
162
|
throwIfAborted(runtimeCtx.signal);
|
|
155
163
|
for await (const row of asyncRowIterable) {
|
|
156
164
|
// Cooperative cancellation checkpoint: a request-timeout (or any
|
|
@@ -172,9 +180,14 @@ export function emitSeqScan(plan, ctx, filterInfoOverride) {
|
|
|
172
180
|
// must not depend on, or be perturbed by, counting.
|
|
173
181
|
if (tableCounters)
|
|
174
182
|
tableCounters.rowsScanned++;
|
|
183
|
+
rowsYielded++;
|
|
175
184
|
rowSlot.set(row);
|
|
176
185
|
yield row;
|
|
177
186
|
}
|
|
187
|
+
// Reached only on natural exhaustion — an early `return()` (LIMIT above, `get()`,
|
|
188
|
+
// EXISTS), an abort or an error never gets here, and a partial count is not a
|
|
189
|
+
// table size. Never move this into `finally`.
|
|
190
|
+
observations?.observe(schema, rowsYielded);
|
|
178
191
|
}
|
|
179
192
|
catch (e) {
|
|
180
193
|
// Preserve cancellation identity — don't re-wrap it as a generic query error.
|
|
@@ -205,4 +218,20 @@ export function emitSeqScan(plan, ctx, filterInfoOverride) {
|
|
|
205
218
|
}
|
|
206
219
|
return createValidatedInstruction(params, asRun(run), ctx, `${plan.nodeType}(${schema.name})`);
|
|
207
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Whether one complete pass of this scan site enumerates every row of its table: no
|
|
223
|
+
* seek, no constraint, no pushed limit/offset, and either no index or the primary one.
|
|
224
|
+
* A secondary-index walk is excluded — a partial index yields only the rows its
|
|
225
|
+
* predicate admits. A hand-built `FilterInfo` with no `accessPath` never qualifies.
|
|
226
|
+
*/
|
|
227
|
+
function enumeratesWholeTable(plan) {
|
|
228
|
+
if (plan instanceof IndexSeekNode)
|
|
229
|
+
return false;
|
|
230
|
+
const { constraints, limit, offset, accessPath } = plan.filterInfo;
|
|
231
|
+
if (constraints.length > 0 || limit !== undefined || offset !== undefined)
|
|
232
|
+
return false;
|
|
233
|
+
if (accessPath?.kind === 'fullScan')
|
|
234
|
+
return true;
|
|
235
|
+
return accessPath?.kind === 'index' && accessPath.index.role === 'primary' && accessPath.plan === 'scan';
|
|
236
|
+
}
|
|
208
237
|
//# sourceMappingURL=scan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../src/runtime/emit/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,9 @@ export declare class ParallelDriver {
|
|
|
89
89
|
* forked branch roll up into the parent's snapshot with no merge step. It is a
|
|
90
90
|
* plain object field, not one of the two strict-fork-wrapped maps, so
|
|
91
91
|
* incrementing it from a fork never trips the strict-fork parent-mutation guard.)
|
|
92
|
+
* (`cardinalityObservations` is the per-execution cardinality-feedback sink; shared
|
|
93
|
+
* by reference for the same reason as `workCounters` — a full scan completed inside
|
|
94
|
+
* a forked branch reports into the parent's sink, published once at execution end.)
|
|
92
95
|
*
|
|
93
96
|
* The parent is treated as immutable for the lifetime of the forks.
|
|
94
97
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-driver.d.ts","sourceRoot":"","sources":["../../../src/runtime/parallel-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAIN,qBAAqB,EACrB,qBAAqB,EAErB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,oGAAoG;AACpG,MAAM,WAAW,iBAAiB,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IAC1B
|
|
1
|
+
{"version":3,"file":"parallel-driver.d.ts","sourceRoot":"","sources":["../../../src/runtime/parallel-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAIN,qBAAqB,EACrB,qBAAqB,EAErB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,oGAAoG;AACpG,MAAM,WAAW,iBAAiB,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACH,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;IAqDvD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,CAAC,EACN,SAAS,EAAE,aAAa,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EACpC,IAAI,CAAC,EAAE,oBAAoB,GACzB,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAQtC"}
|
|
@@ -74,6 +74,9 @@ export class ParallelDriver {
|
|
|
74
74
|
* forked branch roll up into the parent's snapshot with no merge step. It is a
|
|
75
75
|
* plain object field, not one of the two strict-fork-wrapped maps, so
|
|
76
76
|
* incrementing it from a fork never trips the strict-fork parent-mutation guard.)
|
|
77
|
+
* (`cardinalityObservations` is the per-execution cardinality-feedback sink; shared
|
|
78
|
+
* by reference for the same reason as `workCounters` — a full scan completed inside
|
|
79
|
+
* a forked branch reports into the parent's sink, published once at execution end.)
|
|
77
80
|
*
|
|
78
81
|
* The parent is treated as immutable for the lifetime of the forks.
|
|
79
82
|
*/
|
|
@@ -120,6 +123,7 @@ export class ParallelDriver {
|
|
|
120
123
|
cteMaterializations: rctx.cteMaterializations,
|
|
121
124
|
inSetProbes: rctx.inSetProbes,
|
|
122
125
|
workCounters: rctx.workCounters,
|
|
126
|
+
cardinalityObservations: rctx.cardinalityObservations,
|
|
123
127
|
};
|
|
124
128
|
if (strict) {
|
|
125
129
|
markForkOf(childTableContexts, rctx.tableContexts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-driver.js","sourceRoot":"","sources":["../../../src/runtime/parallel-driver.ts"],"names":[],"mappings":"AACA,OAAO,EACN,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AAkBxD;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAc;IAC1B
|
|
1
|
+
{"version":3,"file":"parallel-driver.js","sourceRoot":"","sources":["../../../src/runtime/parallel-driver.ts"],"names":[],"mappings":"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"}
|