@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.
Files changed (59) hide show
  1. package/dist/src/core/database-cardinality-feedback.d.ts +146 -0
  2. package/dist/src/core/database-cardinality-feedback.d.ts.map +1 -0
  3. package/dist/src/core/database-cardinality-feedback.js +274 -0
  4. package/dist/src/core/database-cardinality-feedback.js.map +1 -0
  5. package/dist/src/core/database-transaction.d.ts +9 -2
  6. package/dist/src/core/database-transaction.d.ts.map +1 -1
  7. package/dist/src/core/database-transaction.js +27 -9
  8. package/dist/src/core/database-transaction.js.map +1 -1
  9. package/dist/src/core/database.d.ts +4 -0
  10. package/dist/src/core/database.d.ts.map +1 -1
  11. package/dist/src/core/database.js +78 -7
  12. package/dist/src/core/database.js.map +1 -1
  13. package/dist/src/core/statement.d.ts +11 -2
  14. package/dist/src/core/statement.d.ts.map +1 -1
  15. package/dist/src/core/statement.js +46 -2
  16. package/dist/src/core/statement.js.map +1 -1
  17. package/dist/src/func/builtins/cardinality-feedback.d.ts +9 -0
  18. package/dist/src/func/builtins/cardinality-feedback.d.ts.map +1 -0
  19. package/dist/src/func/builtins/cardinality-feedback.js +54 -0
  20. package/dist/src/func/builtins/cardinality-feedback.js.map +1 -0
  21. package/dist/src/func/builtins/index.d.ts.map +1 -1
  22. package/dist/src/func/builtins/index.js +2 -0
  23. package/dist/src/func/builtins/index.js.map +1 -1
  24. package/dist/src/planner/nodes/reference.d.ts +7 -0
  25. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  26. package/dist/src/planner/nodes/reference.js +10 -2
  27. package/dist/src/planner/nodes/reference.js.map +1 -1
  28. package/dist/src/planner/optimizer-tuning.d.ts +29 -0
  29. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  30. package/dist/src/planner/optimizer-tuning.js +7 -1
  31. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  32. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +6 -6
  33. package/dist/src/planner/stats/catalog-stats.d.ts +11 -2
  34. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  35. package/dist/src/planner/stats/catalog-stats.js +14 -5
  36. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  37. package/dist/src/planner/stats/table-cardinality.d.ts +52 -18
  38. package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -1
  39. package/dist/src/planner/stats/table-cardinality.js +46 -18
  40. package/dist/src/planner/stats/table-cardinality.js.map +1 -1
  41. package/dist/src/runtime/cardinality-observations.d.ts +30 -0
  42. package/dist/src/runtime/cardinality-observations.d.ts.map +1 -0
  43. package/dist/src/runtime/cardinality-observations.js +37 -0
  44. package/dist/src/runtime/cardinality-observations.js.map +1 -0
  45. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  46. package/dist/src/runtime/emit/scan.js +29 -0
  47. package/dist/src/runtime/emit/scan.js.map +1 -1
  48. package/dist/src/runtime/parallel-driver.d.ts +3 -0
  49. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  50. package/dist/src/runtime/parallel-driver.js +4 -0
  51. package/dist/src/runtime/parallel-driver.js.map +1 -1
  52. package/dist/src/runtime/types.d.ts +12 -0
  53. package/dist/src/runtime/types.d.ts.map +1 -1
  54. package/dist/src/runtime/types.js.map +1 -1
  55. package/dist/src/schema/manager.d.ts +7 -0
  56. package/dist/src/schema/manager.d.ts.map +1 -1
  57. package/dist/src/schema/manager.js +8 -0
  58. package/dist/src/schema/manager.js.map +1 -1
  59. 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 catalog's measured count, or
37
- * `undefined` when nothing has measured it. Never a fabricated number.
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 `catalogRowCount(tableSchema)` — populated only
40
- * by `ANALYZE` (or a module reporting statistics), where a real `0` means "measured,
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 `catalogRowCount` and, finding nothing, falls back to
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
- constructor(fallback?: NaiveStatsProvider);
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":"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"}
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 { catalogRowCount } from './table-cardinality.js';
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
- constructor(fallback) {
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 = catalogRowCount(table);
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
- * Shared base-table row-count helper.
2
+ * The base-table row-count seam.
3
3
  *
4
- * The catalog knows a table's row count only through `TableSchema.statistics`
5
- * (populated by `ANALYZE` or VTab reporting). There are exactly two spellings:
6
- * `undefined` means "nobody knows" and a number — including a real 0 — means
7
- * "measured". `undefined` must stay `undefined` here: callers apply their own
8
- * fallback (e.g. NaiveStatsProvider's default of 1000), and folding a default
9
- * in would change every un-analyzed table's cardinality.
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
- * `TableReferenceNode.estimatedRows` and `CatalogStatsProvider.tableRows` both
12
- * call this so the logical/physical estimate and the stats-provider estimate
13
- * cannot drift apart.
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, empty table) is distinct from `undefined`, but the
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 an analyzed empty table reaches
22
- * `getBestAccessPlan` as "unknown" (1000) while a SeqScan over it reports 0.
23
- * Harmless today (any plan over 0 rows is cheap); switch those to `??` if an
24
- * empty-table plan ever costs out wrong.
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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAEtE"}
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
- * Shared base-table row-count helper.
2
+ * The base-table row-count seam.
3
3
  *
4
- * The catalog knows a table's row count only through `TableSchema.statistics`
5
- * (populated by `ANALYZE` or VTab reporting). There are exactly two spellings:
6
- * `undefined` means "nobody knows" and a number — including a real 0 — means
7
- * "measured". `undefined` must stay `undefined` here: callers apply their own
8
- * fallback (e.g. NaiveStatsProvider's default of 1000), and folding a default
9
- * in would change every un-analyzed table's cardinality.
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
- * `TableReferenceNode.estimatedRows` and `CatalogStatsProvider.tableRows` both
12
- * call this so the logical/physical estimate and the stats-provider estimate
13
- * cannot drift apart.
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, empty table) is distinct from `undefined`, but the
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 an analyzed empty table reaches
22
- * `getBestAccessPlan` as "unknown" (1000) while a SeqScan over it reports 0.
23
- * Harmless today (any plan over 0 rows is cheap); switch those to `??` if an
24
- * empty-table plan ever costs out wrong.
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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,MAAM,UAAU,eAAe,CAAC,KAAkB;IACjD,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AACnC,CAAC"}
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,CAmNb"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4DG;IACH,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;IAoDvD;;;;;;;;;;;;;;;;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"}
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":"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"}
1
+ {"version":3,"file":"parallel-driver.js","sourceRoot":"","sources":["../../../src/runtime/parallel-driver.ts"],"names":[],"mappings":"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"}