@quereus/quereus 4.22.0 → 4.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/core/database-cardinality-feedback.d.ts +133 -20
- package/dist/src/core/database-cardinality-feedback.d.ts.map +1 -1
- package/dist/src/core/database-cardinality-feedback.js +312 -39
- package/dist/src/core/database-cardinality-feedback.js.map +1 -1
- package/dist/src/core/database.d.ts +1 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +14 -6
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts +6 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +11 -2
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/cardinality-feedback.d.ts +6 -0
- package/dist/src/func/builtins/cardinality-feedback.d.ts.map +1 -1
- package/dist/src/func/builtins/cardinality-feedback.js +55 -3
- package/dist/src/func/builtins/cardinality-feedback.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +3 -1
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +2 -1
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.d.ts +25 -19
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +28 -21
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/framework/trace.js +2 -2
- package/dist/src/planner/framework/trace.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts +2 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +1 -0
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +5 -10
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +2 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +1 -0
- package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +11 -0
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node.js +3 -0
- package/dist/src/planner/nodes/plan-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts +3 -3
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +11 -5
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts +2 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +1 -0
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +14 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +52 -20
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/optimizer-tuning.d.ts +38 -7
- package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
- package/dist/src/planner/optimizer-tuning.js +7 -2
- package/dist/src/planner/optimizer-tuning.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +9 -0
- 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 +18 -12
- 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.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +7 -8
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +1 -1
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.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 +7 -0
- 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 +6 -2
- package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.js +20 -14
- package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +5 -0
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.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 +102 -53
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +15 -6
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -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 +8 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -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 +4 -3
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.d.ts +8 -8
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +10 -10
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/table-cardinality.d.ts +119 -30
- package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -1
- package/dist/src/planner/stats/table-cardinality.js +137 -29
- package/dist/src/planner/stats/table-cardinality.js.map +1 -1
- package/dist/src/planner/util/relative-rows.d.ts +29 -0
- package/dist/src/planner/util/relative-rows.d.ts.map +1 -0
- package/dist/src/planner/util/relative-rows.js +67 -0
- package/dist/src/planner/util/relative-rows.js.map +1 -0
- package/dist/src/planner/util/row-estimates.d.ts +23 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -1
- package/dist/src/planner/util/row-estimates.js +29 -0
- package/dist/src/planner/util/row-estimates.js.map +1 -1
- package/dist/src/runtime/cardinality-observations.d.ts +62 -7
- package/dist/src/runtime/cardinality-observations.d.ts.map +1 -1
- package/dist/src/runtime/cardinality-observations.js +74 -8
- package/dist/src/runtime/cardinality-observations.js.map +1 -1
- package/dist/src/runtime/emit/scan.d.ts +1 -1
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +78 -10
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/schema/manager.d.ts +5 -5
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +5 -5
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/vtab/filter-info.d.ts +16 -0
- package/dist/src/vtab/filter-info.d.ts.map +1 -1
- package/dist/src/vtab/filter-info.js +29 -0
- package/dist/src/vtab/filter-info.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +5 -3
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/module.d.ts +53 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -7,7 +7,7 @@ import { PlanNode, type UnaryRelationalNode, type PhysicalProperties, type Attri
|
|
|
7
7
|
import { TableReferenceNode } from './reference.js';
|
|
8
8
|
import type { RelationType } from '../../common/datatype.js';
|
|
9
9
|
import type { Scope } from '../scopes/scope.js';
|
|
10
|
-
import type
|
|
10
|
+
import { type FilterInfo } from '../../vtab/filter-info.js';
|
|
11
11
|
import type { ScalarPlanNode } from './plan-node.js';
|
|
12
12
|
import type { TableAccessCapable } from '../framework/characteristics.js';
|
|
13
13
|
import type { PredicateConstraint } from '../analysis/constraint-extractor.js';
|
|
@@ -199,6 +199,19 @@ export declare class IndexSeekNode extends TableAccessNode {
|
|
|
199
199
|
*/
|
|
200
200
|
readonly pushedConstraints?: readonly PredicateConstraint[] | undefined;
|
|
201
201
|
readonly nodeType = PlanNodeType.IndexSeek;
|
|
202
|
+
/**
|
|
203
|
+
* The rows per key the observed overlay holds for this seek's equality column set
|
|
204
|
+
* (`plannedRowsPerKey`, docs/progressive-optimizer.md §3.3), snapshotted at
|
|
205
|
+
* construction exactly as `TableReferenceNode.plannedRows` is, so clones through
|
|
206
|
+
* `withChildren` / `withProvenance` re-derive the same number within one synchronous
|
|
207
|
+
* compile. Undefined when the seek is not a single-key equality seek through a
|
|
208
|
+
* non-unique index (`equalitySeekKeyColumns`), when the catalog's statistics cover the
|
|
209
|
+
* set, when nothing has been observed, or when the node was built without a schema
|
|
210
|
+
* manager (planner unit tests). Relayed as `estimatedRows`; the module's own
|
|
211
|
+
* `filterInfo.indexInfoOutput.estimatedRows` is left as the module stated it, since the
|
|
212
|
+
* join rules compare that in the module's currency.
|
|
213
|
+
*/
|
|
214
|
+
readonly plannedRowsPerKey: number | undefined;
|
|
202
215
|
constructor(scope: Scope, source: TableReferenceNode, filterInfo: FilterInfo, indexName: string, seekKeys: ScalarPlanNode[], isRange?: boolean, providesOrdering?: {
|
|
203
216
|
column: number;
|
|
204
217
|
desc: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-access-nodes.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAwB,MAAM,gBAAgB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"table-access-nodes.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import { PlanNodeType } from './plan-node-type.js';
|
|
|
6
6
|
import { PlanNode } from './plan-node.js';
|
|
7
7
|
import { TableReferenceNode } from './reference.js';
|
|
8
8
|
import { Cached } from '../../util/cached.js';
|
|
9
|
+
import { equalitySeekKeyColumns } from '../../vtab/filter-info.js';
|
|
10
|
+
import { plannedRowsPerKey } from '../stats/table-cardinality.js';
|
|
9
11
|
import { addSingletonFd } from '../util/fd-utils.js';
|
|
10
12
|
import { collectColumnRefAttributeIds } from '../util/column-refs.js';
|
|
11
13
|
import { quereusError } from '../../common/errors.js';
|
|
@@ -342,6 +344,19 @@ export class IndexSeekNode extends TableAccessNode {
|
|
|
342
344
|
orderingLoadBearing;
|
|
343
345
|
pushedConstraints;
|
|
344
346
|
nodeType = PlanNodeType.IndexSeek;
|
|
347
|
+
/**
|
|
348
|
+
* The rows per key the observed overlay holds for this seek's equality column set
|
|
349
|
+
* (`plannedRowsPerKey`, docs/progressive-optimizer.md §3.3), snapshotted at
|
|
350
|
+
* construction exactly as `TableReferenceNode.plannedRows` is, so clones through
|
|
351
|
+
* `withChildren` / `withProvenance` re-derive the same number within one synchronous
|
|
352
|
+
* compile. Undefined when the seek is not a single-key equality seek through a
|
|
353
|
+
* non-unique index (`equalitySeekKeyColumns`), when the catalog's statistics cover the
|
|
354
|
+
* set, when nothing has been observed, or when the node was built without a schema
|
|
355
|
+
* manager (planner unit tests). Relayed as `estimatedRows`; the module's own
|
|
356
|
+
* `filterInfo.indexInfoOutput.estimatedRows` is left as the module stated it, since the
|
|
357
|
+
* join rules compare that in the module's currency.
|
|
358
|
+
*/
|
|
359
|
+
plannedRowsPerKey;
|
|
345
360
|
constructor(scope, source, filterInfo, indexName, seekKeys, isRange = false, providesOrdering, estimatedCostOverride, advertisement, rangeBoundedOn,
|
|
346
361
|
/** When true, suppress the lifted `monotonicOn` advertisement (defensive escalation). */
|
|
347
362
|
suppressMonotonic = false,
|
|
@@ -396,6 +411,10 @@ export class IndexSeekNode extends TableAccessNode {
|
|
|
396
411
|
this.orderingLoadBearing = orderingLoadBearing;
|
|
397
412
|
this.pushedConstraints = pushedConstraints;
|
|
398
413
|
assertSeekKeysRowIndependent(source, seekKeys, indexName);
|
|
414
|
+
const keyColumns = equalitySeekKeyColumns(filterInfo);
|
|
415
|
+
this.plannedRowsPerKey = keyColumns === undefined
|
|
416
|
+
? undefined
|
|
417
|
+
: plannedRowsPerKey(source.tableSchema, keyColumns, source.schemaManager?.getRowCountSources());
|
|
399
418
|
}
|
|
400
419
|
getAccessMethod() {
|
|
401
420
|
return 'index-seek';
|
|
@@ -424,22 +443,24 @@ export class IndexSeekNode extends TableAccessNode {
|
|
|
424
443
|
}
|
|
425
444
|
const base = {
|
|
426
445
|
ordering: this.providesOrdering,
|
|
427
|
-
// The
|
|
428
|
-
//
|
|
429
|
-
//
|
|
430
|
-
//
|
|
431
|
-
//
|
|
446
|
+
// The observed rows per key when the overlay answered for this seek's column set
|
|
447
|
+
// (snapshotted at construction), else the module's own row estimate for the
|
|
448
|
+
// access plan it chose, threaded here by `rule-select-access-path.
|
|
449
|
+
// selectPhysicalNode`. The module's number is the only one that tracks what this
|
|
450
|
+
// particular seek matches; the constant that used to sit here made every non-PK
|
|
451
|
+
// seek advertise the same cardinality whatever it returned, and every cost
|
|
452
|
+
// decision above the seek reads this.
|
|
432
453
|
//
|
|
433
454
|
// NOTE: "the module supplied no estimate" is not distinguishable at this
|
|
434
|
-
// point, by design. The rule builds this field as `accessPlan.rows
|
|
435
|
-
// so a missing
|
|
436
|
-
//
|
|
437
|
-
// modules always set `rows`, so only a third-party
|
|
438
|
-
//
|
|
439
|
-
// `
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
estimatedRows: Number(this.filterInfo.indexInfoOutput.estimatedRows),
|
|
455
|
+
// point, by design. The rule builds this field as `accessPlan.rows ?? 1000`,
|
|
456
|
+
// so a missing `rows` has already become 1000 before the node sees it, while
|
|
457
|
+
// a module's `rows: 0` arrives as 0. That `?? 1000` IS the no-answer
|
|
458
|
+
// fallback. Both shipped modules always set `rows`, so only a third-party
|
|
459
|
+
// module can reach it. If a module's declined estimate ever needs to read as
|
|
460
|
+
// `undefined` (the catalog layer's spelling, see
|
|
461
|
+
// `planner/stats/table-cardinality.ts`), change it there — do not invent a
|
|
462
|
+
// second convention here.
|
|
463
|
+
estimatedRows: this.plannedRowsPerKey ?? Number(this.filterInfo.indexInfoOutput.estimatedRows),
|
|
443
464
|
fds: sourcePhysical?.fds,
|
|
444
465
|
equivClasses: sourcePhysical?.equivClasses,
|
|
445
466
|
constantBindings: sourcePhysical?.constantBindings,
|
|
@@ -459,9 +480,10 @@ export class IndexSeekNode extends TableAccessNode {
|
|
|
459
480
|
// exactly ONCE. A multi-seek (`where id in (1, 2, 3)`) supplies one tuple per
|
|
460
481
|
// IN member — three seek keys against a one-column key — so a `>=` test passed
|
|
461
482
|
// for it and the node both reported one row and stamped `∅ → all columns`,
|
|
462
|
-
// which asserts the relation holds at most one row.
|
|
463
|
-
//
|
|
464
|
-
// are exactly the rewrites that
|
|
483
|
+
// which asserts the relation holds at most one row. Its consumers (key
|
|
484
|
+
// derivation via `keysOf` — a materialized view's backing key — uniqueness
|
|
485
|
+
// proofs, DISTINCT elision, sort elision) are exactly the rewrites that
|
|
486
|
+
// mis-key or silently drop rows on a false claim.
|
|
465
487
|
//
|
|
466
488
|
// A composite-key multi-seek that happens to reduce to a single tuple is
|
|
467
489
|
// declined here too (its `plan` is still `multiSeek`); that costs an
|
|
@@ -470,8 +492,16 @@ export class IndexSeekNode extends TableAccessNode {
|
|
|
470
492
|
// read above, already says 1 for a whole-PK point seek and 3 for the IN.
|
|
471
493
|
const isMultiSeek = accessPathPlan(this.filterInfo.accessPath) === 'multiSeek';
|
|
472
494
|
if (pk.length > 0 && this.seekKeys.length === pk.length && !isMultiSeek) {
|
|
473
|
-
// Full PK equality seek — at most one row
|
|
474
|
-
//
|
|
495
|
+
// Full PK equality seek — at most one row per evaluation of its keys. A
|
|
496
|
+
// correlated seek (the inner side of a nested-loop join, keyed on the outer
|
|
497
|
+
// row) is at most one row per OUTER row, so it must not stamp the singleton:
|
|
498
|
+
// at the join that FD says the whole result holds one row, which collapsed
|
|
499
|
+
// the join's key to the empty key (a materialized view over it was keyed on
|
|
500
|
+
// nothing and rejected its second row as a duplicate).
|
|
501
|
+
if (this.seekKeys.some(key => collectColumnRefAttributeIds(key).length > 0)) {
|
|
502
|
+
return { ...base, estimatedRows: 1 };
|
|
503
|
+
}
|
|
504
|
+
// Encode via the singleton FD `∅ → all_cols`.
|
|
475
505
|
const colCount = this.source.getType().columns.length;
|
|
476
506
|
const fds = addSingletonFd(base.fds ?? [], colCount);
|
|
477
507
|
return { ...base, estimatedRows: 1, fds };
|
|
@@ -492,7 +522,9 @@ export class IndexSeekNode extends TableAccessNode {
|
|
|
492
522
|
indexName: this.indexName,
|
|
493
523
|
seekKeys: this.seekKeys.map(key => key.toString()),
|
|
494
524
|
isRange: this.isRange,
|
|
495
|
-
providesOrdering: this.providesOrdering
|
|
525
|
+
providesOrdering: this.providesOrdering,
|
|
526
|
+
// Only when it answered, so plans over unobserved tables keep their shape in snapshots.
|
|
527
|
+
...(this.plannedRowsPerKey !== undefined ? { observedRowsPerKey: this.plannedRowsPerKey } : {}),
|
|
496
528
|
};
|
|
497
529
|
}
|
|
498
530
|
getSeekKeys() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-access-nodes.js","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-access-nodes.js","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,28 @@ export interface OptimizerTuning {
|
|
|
79
79
|
* comparator is a follow-up.
|
|
80
80
|
*/
|
|
81
81
|
readonly deltaPerRowFallbackRatio: number;
|
|
82
|
+
/**
|
|
83
|
+
* Engine cost units charged per millisecond of declared storage latency —
|
|
84
|
+
* first-row (`expectedLatencyMs`) or per-row (`expectedRowLatencyMs`) alike.
|
|
85
|
+
* One engine cost unit is one in-process sequentially scanned row
|
|
86
|
+
* (`COST_CONSTANTS.SEQ_SCAN_PER_ROW = 1.0`), so this is the number of rows the
|
|
87
|
+
* engine scans in a millisecond. Applied by `latencyCost` (cost/index.ts)
|
|
88
|
+
* wherever a rule ADDS a declared latency to engine work; the wall-clock gates
|
|
89
|
+
* (`parallel.*ThresholdMs`) and the fan-out gate's millisecond-against-
|
|
90
|
+
* millisecond comparison read raw milliseconds and never go through it.
|
|
91
|
+
*
|
|
92
|
+
* Default 1000: measured on the reference machine (`yarn bench`,
|
|
93
|
+
* `execution/full-scan-10k` — 10,000 rows in a 7.8–8.1 ms median on the
|
|
94
|
+
* memory backend, 12.9 ms on `store-mem`, i.e. roughly 800–1,300 rows per
|
|
95
|
+
* millisecond) and rounded DOWN, so a declared delay is slightly
|
|
96
|
+
* under-weighted rather than over-weighted. Plans are sensitive to the order
|
|
97
|
+
* of magnitude only; a host on very different hardware can set it.
|
|
98
|
+
*
|
|
99
|
+
* NOTE: deliberately not self-calibrated at startup. Timing a scan inside
|
|
100
|
+
* planning would make every plan machine- and load-dependent and every plan
|
|
101
|
+
* test nondeterministic; a fixed, documented ratio is the lesser evil.
|
|
102
|
+
*/
|
|
103
|
+
readonly latencyCostPerMs: number;
|
|
82
104
|
/** Set of rule IDs to skip during optimization (test/debug use) */
|
|
83
105
|
readonly disabledRules?: ReadonlySet<string>;
|
|
84
106
|
/** Development and debugging options */
|
|
@@ -101,18 +123,21 @@ export interface OptimizerTuning {
|
|
|
101
123
|
* Parallel-execution rule tuning. Consumed by `rule-fanout-lookup-join`
|
|
102
124
|
* (the FK→PK fan-out recognition rule), `rule-async-gather-union-all`
|
|
103
125
|
* (the UNION ALL gather recognition rule), and `rule-async-gather-zip-by-key`
|
|
104
|
-
* (the full-outer-on-shared-key zip gather recognition rule).
|
|
105
|
-
*
|
|
106
|
-
*
|
|
126
|
+
* (the full-outer-on-shared-key zip gather recognition rule). The
|
|
127
|
+
* `*ThresholdMs` gates and `branchSetupCost` are wall-clock milliseconds,
|
|
128
|
+
* compared against a subtree's raw `expectedLatencyMs` declaration — never
|
|
129
|
+
* through `latencyCostPerMs`; `concurrency` and its siblings are counts.
|
|
107
130
|
*/
|
|
108
131
|
readonly parallel: {
|
|
109
132
|
/** Don't form a fan-out / gather below this branch count. Default 2. */
|
|
110
133
|
readonly minBranches: number;
|
|
111
134
|
/**
|
|
112
|
-
* Per-branch fixed overhead, charged against
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
135
|
+
* Per-branch fixed overhead in wall-clock milliseconds, charged against
|
|
136
|
+
* the latency win: the fan-out gate fires when
|
|
137
|
+
* `(N − cap) × expectedLatencyMs > N × branchSetupCost`, milliseconds on
|
|
138
|
+
* both sides. Not a cost-unit figure — one engine cost unit is about a
|
|
139
|
+
* microsecond under `latencyCostPerMs`, so anchoring this to a cost
|
|
140
|
+
* constant would be off a thousandfold. Default 1.0.
|
|
116
141
|
*/
|
|
117
142
|
readonly branchSetupCost: number;
|
|
118
143
|
/** Static cap on in-flight branches per outer row. Default 8. */
|
|
@@ -236,6 +261,12 @@ export interface OptimizerTuning {
|
|
|
236
261
|
* statement re-plan on every execution.
|
|
237
262
|
*/
|
|
238
263
|
readonly replanCooldown: number;
|
|
264
|
+
/**
|
|
265
|
+
* Maximum equality column sets whose rows per key one table's entry remembers;
|
|
266
|
+
* least-recently-recorded evicted beyond it. A table is seldom seeked on more
|
|
267
|
+
* than a few distinct key sets (its foreign keys, say), so the default is small.
|
|
268
|
+
*/
|
|
269
|
+
readonly maxKeySetsPerTable: number;
|
|
239
270
|
};
|
|
240
271
|
}
|
|
241
272
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizer-tuning.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer-tuning.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,8BAA8B;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEtC;;;;;OAKG;IACH,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE;QACd,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,uCAAuC;QACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;QACxC,0DAA0D;QAC1D,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;QAC1C,8BAA8B;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACnC,CAAC;IAEF;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE;QACb,8BAA8B;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACnC,CAAC;IAEF,kCAAkC;IAClC,QAAQ,CAAC,YAAY,EAAE;QACtB,4EAA4E;QAC5E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,sDAAsD;QACtD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACvC,CAAC;IAEF,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE;QACf,gEAAgE;QAChE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,kDAAkD;QAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,uCAAuC;QACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;KAC/B,CAAC;IAEF,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE;QACd;;;;WAIG;QACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACnC,CAAC;IAEF;;;;;;;;OAQG;IACH,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAE1C,mEAAmE;IACnE,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE7C,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE;QACf,yDAAyD;QACzD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;KAC/B,CAAC;IAEF,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACpB,wDAAwD;QACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,4DAA4D;QAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,yDAAyD;QACzD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,wCAAwC;QACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAC1B,CAAC;IAEF
|
|
1
|
+
{"version":3,"file":"optimizer-tuning.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer-tuning.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,9 @@ export const DEFAULT_TUNING = {
|
|
|
28
28
|
mergeRowThreshold: 10000
|
|
29
29
|
},
|
|
30
30
|
deltaPerRowFallbackRatio: 0.5,
|
|
31
|
+
// Rows the engine scans per millisecond on the reference machine, rounded
|
|
32
|
+
// down — see the interface doc for the measurement.
|
|
33
|
+
latencyCostPerMs: 1000,
|
|
31
34
|
debug: {
|
|
32
35
|
validatePlan: false // Default to disabled in production
|
|
33
36
|
},
|
|
@@ -39,8 +42,9 @@ export const DEFAULT_TUNING = {
|
|
|
39
42
|
},
|
|
40
43
|
parallel: {
|
|
41
44
|
minBranches: 2,
|
|
42
|
-
//
|
|
43
|
-
//
|
|
45
|
+
// Milliseconds: compared directly against `expectedLatencyMs * (N - cap)`
|
|
46
|
+
// savings, so a branch fork is assumed to cost about a millisecond of
|
|
47
|
+
// wall-clock. Not measured; the gate is order-of-magnitude only.
|
|
44
48
|
branchSetupCost: 1.0,
|
|
45
49
|
concurrency: 8,
|
|
46
50
|
// Global in-flight budget for batched-outer fan-out lookup joins, shared
|
|
@@ -85,6 +89,7 @@ export const DEFAULT_TUNING = {
|
|
|
85
89
|
shiftFactor: 10,
|
|
86
90
|
maxTables: 512,
|
|
87
91
|
replanCooldown: 8,
|
|
92
|
+
maxKeySetsPerTable: 4,
|
|
88
93
|
},
|
|
89
94
|
};
|
|
90
95
|
//# sourceMappingURL=optimizer-tuning.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizer-tuning.js","sourceRoot":"","sources":["../../../src/planner/optimizer-tuning.ts"],"names":[],"mappings":"AA+
|
|
1
|
+
{"version":3,"file":"optimizer-tuning.js","sourceRoot":"","sources":["../../../src/planner/optimizer-tuning.ts"],"names":[],"mappings":"AA+RA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC9C,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,EAAE;IACxB,yBAAyB,EAAE,EAAE;IAC7B,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE;QACL,qBAAqB,EAAE,CAAC;QACxB,sBAAsB,EAAE,KAAK;QAC7B,wBAAwB,EAAE,CAAC;QAC3B,iBAAiB,EAAE,KAAK;KACxB;IACD,GAAG,EAAE;QACJ,iBAAiB,EAAE,KAAK;KACxB;IACD,YAAY,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,KAAK;KAC5B;IACD,KAAK,EAAE;QACN,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,IAAI;KAClB;IACD,IAAI,EAAE;QACL,iBAAiB,EAAE,KAAK;KACxB;IACD,wBAAwB,EAAE,GAAG;IAC7B,0EAA0E;IAC1E,oDAAoD;IACpD,gBAAgB,EAAE,IAAI;IACtB,KAAK,EAAE;QACN,YAAY,EAAE,KAAK,CAAC,oCAAoC;KACxD;IACD,SAAS,EAAE;QACV,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,GAAG;QAChB,cAAc,EAAE,CAAC;QACjB,OAAO,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACT,WAAW,EAAE,CAAC;QACd,0EAA0E;QAC1E,sEAAsE;QACtE,iEAAiE;QACjE,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,CAAC;QACd,yEAAyE;QACzE,wEAAwE;QACxE,qDAAqD;QACrD,qBAAqB,EAAE,EAAE;QACzB,oEAAoE;QACpE,oEAAoE;QACpE,oBAAoB;QACpB,iBAAiB,EAAE,EAAE;QACrB,wEAAwE;QACxE,2EAA2E;QAC3E,kEAAkE;QAClE,uBAAuB,EAAE,EAAE;QAC3B,0EAA0E;QAC1E,uEAAuE;QACvE,wCAAwC;QACxC,mBAAmB,EAAE,GAAG;QACxB,uEAAuE;QACvE,0EAA0E;QAC1E,gEAAgE;QAChE,iBAAiB,EAAE,EAAE;QACrB,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,mCAAmC;QACnC,wBAAwB,EAAE,EAAE;QAC5B,0EAA0E;QAC1E,2BAA2B;QAC3B,kBAAkB,EAAE,EAAE;QACtB,wEAAwE;QACxE,uEAAuE;QACvE,cAAc;QACd,kBAAkB,EAAE,KAAK;QACzB,uEAAuE;QACvE,oEAAoE;QACpE,wCAAwC;QACxC,eAAe,EAAE,SAAS;KAC1B;IACD,mBAAmB,EAAE;QACpB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,CAAC;QACjB,kBAAkB,EAAE,CAAC;KACrB;CACD,CAAC"}
|
|
@@ -119,6 +119,15 @@
|
|
|
119
119
|
* NOTE: the `orderingLoadBearing` decline is conservative when
|
|
120
120
|
* `seekPreservesTargetOrder` is false — a future enhancement could re-sort the
|
|
121
121
|
* pushed output by the leaf's advertised order.
|
|
122
|
+
*
|
|
123
|
+
* NOTE: this rewrite is not a priced candidate in `join-physical-selection` — it
|
|
124
|
+
* only sees semi joins that already chose hash or merge. A filtered target over a
|
|
125
|
+
* never-analyzed key source (priced at the 1000-row default) chooses an
|
|
126
|
+
* index-nested-loop semi join seeking the key source per target row instead, so
|
|
127
|
+
* this rule never sees it. Fine while key sources are measured or truly larger;
|
|
128
|
+
* if never-analyzed small key sources under filtered targets show up slow
|
|
129
|
+
* (one key-source seek per target row on remote storage), price the key-set seek
|
|
130
|
+
* inside that comparison, as the batched index-nested-loop is.
|
|
122
131
|
*/
|
|
123
132
|
import type { PlanNode } from '../../nodes/plan-node.js';
|
|
124
133
|
import type { OptContext } from '../../framework/context.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-key-set-seek.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-key-set-seek.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rule-key-set-seek.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-key-set-seek.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAsC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAob7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA2FnF"}
|
|
@@ -119,6 +119,15 @@
|
|
|
119
119
|
* NOTE: the `orderingLoadBearing` decline is conservative when
|
|
120
120
|
* `seekPreservesTargetOrder` is false — a future enhancement could re-sort the
|
|
121
121
|
* pushed output by the leaf's advertised order.
|
|
122
|
+
*
|
|
123
|
+
* NOTE: this rewrite is not a priced candidate in `join-physical-selection` — it
|
|
124
|
+
* only sees semi joins that already chose hash or merge. A filtered target over a
|
|
125
|
+
* never-analyzed key source (priced at the 1000-row default) chooses an
|
|
126
|
+
* index-nested-loop semi join seeking the key source per target row instead, so
|
|
127
|
+
* this rule never sees it. Fine while key sources are measured or truly larger;
|
|
128
|
+
* if never-analyzed small key sources under filtered targets show up slow
|
|
129
|
+
* (one key-source seek per target row on remote storage), price the key-set seek
|
|
130
|
+
* inside that comparison, as the batched index-nested-loop is.
|
|
122
131
|
*/
|
|
123
132
|
import { createLogger } from '../../../common/logger.js';
|
|
124
133
|
import { BloomJoinNode } from '../../nodes/bloom-join-node.js';
|
|
@@ -551,18 +560,15 @@ export function ruleKeySetSeek(node, context) {
|
|
|
551
560
|
// estimate is read because the logical `estimatedRows` getter reads
|
|
552
561
|
// `undefined` through a physical access node.
|
|
553
562
|
//
|
|
554
|
-
// NOTE:
|
|
555
|
-
//
|
|
556
|
-
//
|
|
557
|
-
//
|
|
558
|
-
// `
|
|
559
|
-
//
|
|
560
|
-
//
|
|
561
|
-
//
|
|
562
|
-
//
|
|
563
|
-
// behavior by `packages/quereus-store/test/live-row-count-plans.spec.ts`, which is
|
|
564
|
-
// what will report the change when that relay is fixed. The gate itself is correct
|
|
565
|
-
// and exists for modules that report real cardinality.
|
|
563
|
+
// NOTE: the key source is reached through an `IndexScan`/`SeqScan`, which relay
|
|
564
|
+
// `this.source.estimatedRows` — the planned count (`plannedRowCount`): a module's
|
|
565
|
+
// exact count when it reports one (`quereus-store` does), else the overlay or
|
|
566
|
+
// `ANALYZE`, else `undefined`. A never-analyzed memory-backed key source therefore
|
|
567
|
+
// still arrives here as `undefined` and proceeds; whether a scan should relay the
|
|
568
|
+
// module's `accessPlan.rows` instead is the arm on
|
|
569
|
+
// `debt-row-estimate-relay-has-no-guard`. No test exercises this gate with a sized
|
|
570
|
+
// key source: `where v in (select k from ksrc)` over store tables reaches the rule as
|
|
571
|
+
// a hash semi join, which this gate does not guard.
|
|
566
572
|
const keyRows = node.right.physical.estimatedRows;
|
|
567
573
|
if (keyRows !== undefined && keyRows > Math.min(pushdown.maxKeys, pushdown.breakEvenKeys)) {
|
|
568
574
|
log('decline: key source estimate %d exceeds the seek threshold min(%d, %d)', keyRows, pushdown.maxKeys, pushdown.breakEvenKeys);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-key-set-seek.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-key-set-seek.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-key-set-seek.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-key-set-seek.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-select-access-path.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,EAA4D,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AASxI,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAA8B,KAAK,mBAAmB,IAAI,0BAA0B,EAA2C,MAAM,wCAAwC,CAAC;AA2GrL,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAsFzF;AAgKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,0BAA0B,EAAE,EACzC,mBAAmB,UAAQ,GACzB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"rule-select-access-path.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,EAA4D,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AASxI,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAA8B,KAAK,mBAAmB,IAAI,0BAA0B,EAA2C,MAAM,wCAAwC,CAAC;AA2GrL,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAsFzF;AAgKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,0BAA0B,EAAE,EACzC,mBAAmB,UAAQ,GACzB,kBAAkB,CA+CpB;AA2+BD;;;;;;;;;;;;GAYG;AACH,KAAK,cAAc,GAAG,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAgBnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,0BAA0B,GAAG,MAAM,CAsB1F;AAgCD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,GAAG,cAAc,CAuBpJ;AAiDD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,CAa9F"}
|
|
@@ -336,8 +336,9 @@ export function selectPhysicalNode(tableRef, accessPlan, constraints, orderingLo
|
|
|
336
336
|
return createEmptyResultNode(tableRef);
|
|
337
337
|
}
|
|
338
338
|
// Default FilterInfo for the physical nodes. Each index arm below spreads this and
|
|
339
|
-
// overrides `idxStr` / `accessPath` for the index it chose.
|
|
340
|
-
|
|
339
|
+
// overrides `idxStr` / `accessPath` for the index it chose. `??`: a module's `rows: 0` is
|
|
340
|
+
// its estimate and is relayed as one; 1000 stands in only for a module that gave none.
|
|
341
|
+
const filterInfo = makeFullScanFilterInfo(accessPlan.cost, accessPlan.rows ?? 1000);
|
|
341
342
|
// Convert OrderingSpec[] to the format expected by physical nodes
|
|
342
343
|
const providesOrdering = accessPlan.providesOrdering?.map(spec => ({
|
|
343
344
|
column: spec.columnIndex,
|
|
@@ -907,12 +908,10 @@ function selectPhysicalNodeLegacy(tableRef, accessPlan, constraints, filterInfo,
|
|
|
907
908
|
* Create a sequential scan node
|
|
908
909
|
*/
|
|
909
910
|
function createSeqScan(tableRef, filterInfo, cost) {
|
|
910
|
-
//
|
|
911
|
-
//
|
|
912
|
-
//
|
|
913
|
-
|
|
914
|
-
// `bug-measured-empty-table-costed-as-thousand-rows`; don't re-file it.
|
|
915
|
-
const tableRows = tableRef.estimatedRows || 1000;
|
|
911
|
+
// `??`: a measured 0 (analyzed or observed empty) is relayed as 0; 1000 stands in only for
|
|
912
|
+
// a table nobody measured. No one-row floor is needed for the cost: `seqScanCost(0)` is
|
|
913
|
+
// `SEQ_SCAN_BASE`, never zero, so an empty table's scan still costs something.
|
|
914
|
+
const tableRows = tableRef.estimatedRows ?? 1000;
|
|
916
915
|
const scanCost = cost ?? seqScanCost(tableRows);
|
|
917
916
|
// Create default FilterInfo if not provided
|
|
918
917
|
const effectiveFilterInfo = filterInfo ?? makeFullScanFilterInfo(scanCost, tableRows);
|