@quereus/quereus 4.17.1 → 4.19.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/common/types.d.ts +17 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +2 -1
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-auto-analyze.d.ts +3 -3
- package/dist/src/core/database-auto-analyze.d.ts.map +1 -1
- package/dist/src/core/database-auto-analyze.js +17 -11
- package/dist/src/core/database-auto-analyze.js.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.d.ts +11 -2
- package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.js +15 -10
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-watchers.d.ts.map +1 -1
- package/dist/src/core/database-watchers.js +2 -1
- package/dist/src/core/database-watchers.js.map +1 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +18 -10
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +38 -42
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +39 -64
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts +9 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +55 -26
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/building/default-scope.d.ts +11 -1
- package/dist/src/planner/building/default-scope.d.ts.map +1 -1
- package/dist/src/planner/building/default-scope.js +13 -2
- package/dist/src/planner/building/default-scope.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +161 -107
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts +8 -0
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +30 -25
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +15 -18
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +9 -0
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +28 -0
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/debug.d.ts +5 -0
- package/dist/src/planner/debug.d.ts.map +1 -1
- package/dist/src/planner/debug.js +5 -0
- package/dist/src/planner/debug.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +0 -22
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/characteristics.js +0 -3
- package/dist/src/planner/framework/characteristics.js.map +1 -1
- package/dist/src/planner/framework/pass.js +3 -3
- package/dist/src/planner/nodes/async-gather-node.d.ts +13 -0
- package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +19 -29
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.d.ts +9 -0
- package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.js +13 -0
- package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-node.d.ts +8 -5
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-node.js +14 -4
- package/dist/src/planner/nodes/cte-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-reference-node.d.ts +9 -1
- package/dist/src/planner/nodes/cte-reference-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-reference-node.js +13 -0
- package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
- package/dist/src/planner/nodes/delete-node.d.ts +7 -1
- package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/delete-node.js +12 -2
- package/dist/src/planner/nodes/delete-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +2 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js +8 -1
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/planner/nodes/insert-node.d.ts +8 -1
- package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/insert-node.js +12 -1
- package/dist/src/planner/nodes/insert-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +10 -0
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.js +1 -0
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.js +7 -0
- package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
- package/dist/src/planner/nodes/remote-query-node.d.ts +7 -1
- package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/remote-query-node.js +11 -0
- package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
- package/dist/src/planner/nodes/returning-node.d.ts +4 -0
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/returning-node.js +8 -1
- package/dist/src/planner/nodes/returning-node.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts +39 -0
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +77 -0
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts +14 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +22 -1
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/sink-node.d.ts +9 -1
- package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/sink-node.js +12 -0
- package/dist/src/planner/nodes/sink-node.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +21 -0
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +42 -3
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/update-node.d.ts +7 -1
- package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/update-node.js +9 -1
- package/dist/src/planner/nodes/update-node.js.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts +13 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.js +25 -1
- package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
- package/dist/src/planner/optimizer-tuning.d.ts +9 -9
- package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
- package/dist/src/planner/optimizer-tuning.js +0 -2
- package/dist/src/planner/optimizer-tuning.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +9 -21
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.js +19 -10
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +51 -28
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.d.ts.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js +14 -1
- package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.js +13 -10
- package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts +2 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js +45 -17
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +5 -3
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts +19 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +36 -3
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +4 -3
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts +14 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +200 -13
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +1 -1
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/index.d.ts.map +1 -1
- package/dist/src/planner/stats/index.js +3 -4
- package/dist/src/planner/stats/index.js.map +1 -1
- package/dist/src/planner/stats/table-cardinality.d.ts +6 -6
- package/dist/src/planner/stats/table-cardinality.js +7 -7
- package/dist/src/planner/stats/table-cardinality.js.map +1 -1
- package/dist/src/planner/util/column-refs.d.ts +17 -0
- package/dist/src/planner/util/column-refs.d.ts.map +1 -0
- package/dist/src/planner/util/column-refs.js +30 -0
- package/dist/src/planner/util/column-refs.js.map +1 -0
- package/dist/src/planner/util/row-estimates.d.ts +91 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -1
- package/dist/src/planner/util/row-estimates.js +134 -18
- package/dist/src/planner/util/row-estimates.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts +25 -5
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +144 -62
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +4 -6
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/insert.d.ts.map +1 -1
- package/dist/src/runtime/emit/insert.js +7 -0
- package/dist/src/runtime/emit/insert.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +3 -3
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/emit/update.d.ts.map +1 -1
- package/dist/src/runtime/emit/update.js +15 -10
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/emit/write-coercion.d.ts +7 -0
- package/dist/src/runtime/emit/write-coercion.d.ts.map +1 -0
- package/dist/src/runtime/emit/write-coercion.js +20 -0
- package/dist/src/runtime/emit/write-coercion.js.map +1 -0
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +2 -0
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/runtime/scalar-fusion.d.ts.map +1 -1
- package/dist/src/runtime/scalar-fusion.js +4 -0
- package/dist/src/runtime/scalar-fusion.js.map +1 -1
- package/dist/src/runtime/scheduler.d.ts +47 -0
- package/dist/src/runtime/scheduler.d.ts.map +1 -1
- package/dist/src/runtime/scheduler.js +105 -11
- package/dist/src/runtime/scheduler.js.map +1 -1
- package/dist/src/runtime/types.d.ts +18 -3
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js +7 -5
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +99 -2
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +100 -26
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/lens-prover.d.ts.map +1 -1
- package/dist/src/schema/lens-prover.js +2 -1
- package/dist/src/schema/lens-prover.js.map +1 -1
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +10 -3
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/table.d.ts +0 -2
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/vtab/best-access-plan.d.ts +89 -4
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +76 -1
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +27 -11
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/module.d.ts +7 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts +5 -2
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts.map +1 -1
- package/dist/src/vtab/test-support/committed-read-conformance.js +55 -9
- package/dist/src/vtab/test-support/committed-read-conformance.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts +0 -17
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +0 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +0 -69
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-fusion.js","sourceRoot":"","sources":["../../../src/runtime/scalar-fusion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"scalar-fusion.js","sourceRoot":"","sources":["../../../src/runtime/scalar-fusion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAalE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAuC,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAajD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAc,EAAE,GAAoB;IACjE,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,yFAAyF;AACzF,sFAAsF;AACtF,2FAA2F;AAC3F,4FAA4F;AAC5F,0FAA0F;AAC1F,uCAAuC;AAEvC,uFAAuF;AACvF,SAAS,QAAQ,CAAC,IAAc,EAAE,GAAoB,EAAE,KAAa;IACpE,IAAI,KAAK,GAAG,gBAAgB;QAAE,OAAO,SAAS,CAAC;IAE/C,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,8EAA8E;YAC9E,kEAAkE;YAClE,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAmB,CAAC,CAAC;YACnD,OAAO,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,YAAY,CAAC,eAAe;YAChC,OAAO,QAAQ,CAAC,wBAAwB,CAAC,IAA2B,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACpF,KAAK,YAAY,CAAC,kBAAkB;YACnC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,IAA8B,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjF,KAAK,YAAY,CAAC,OAAO;YACxB,yEAAyE;YACzE,yDAAyD;YACzD,OAAO,QAAQ,CAAE,IAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5D,KAAK,YAAY,CAAC,IAAI;YACrB,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9D,KAAK,YAAY,CAAC,aAAa;YAC9B,iEAAiE;YACjE,OAAO,QAAQ,CAAC,sBAAsB,CAAC,IAAyB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChF,KAAK,YAAY,CAAC,OAAO;YACxB,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAmB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACpE,KAAK,YAAY,CAAC,OAAO;YACxB,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAmB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACzE,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5B,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAoB,EAAE,GAAG,CAAC,CAAC;YAC1D,OAAO,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,YAAY,CAAC,QAAQ;YACzB,OAAO,QAAQ,CAAC,IAAoB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,YAAY,CAAC,kBAAkB;YACnC,OAAO,sBAAsB,CAAC,IAA8B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3E;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE,GAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAS,sBAAsB,CAC9B,IAA4B,EAC5B,GAAoB,EACpB,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;IACnC,qFAAqF;IACrF,iFAAiF;IACjF,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,MAAM,CAAC,cAAc,YAAY,aAAa;QAAE,OAAO,SAAS,CAAC;IAErE,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAEvC,MAAM,OAAO,GAAgB,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,YAAY,CACrB,YAAY,YAAY,wDAAwD;kBAC9E,iGAAiG,EACnG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,4EAA4E;AAC5E,SAAS,QAAQ,CAAC,IAAkB,EAAE,GAAoB,EAAE,KAAa;IACxE,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,YAAY,CACpB,GAAgB,EAChB,QAAmC,EACnC,GAAoB,EACpB,KAAa;IAEb,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC;YACL,6EAA6E;YAC7E,8EAA8E;YAC9E,OAAO,GAAG,CAAC;QACZ,KAAK,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,+EAA+E;YAC/E,8EAA8E;YAC9E,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,CAAC;oBAAE,OAAO,SAAS,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;YACD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,QAAQ,CAAC,IAAkB,EAAE,GAAoB,EAAE,KAAa;IACxE,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjC,iFAAiF;IACjF,sEAAsE;IACtE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,OAAO,CAAC,IAAI,EAAE,EAAE;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -5,7 +5,49 @@ export declare class Scheduler {
|
|
|
5
5
|
readonly instructions: Instruction[];
|
|
6
6
|
/** Index of the instruction that consumes the output of each instruction. */
|
|
7
7
|
readonly destinations: ResultDestination[];
|
|
8
|
+
/** Local indices of the instructions producing each instruction's arguments, in param order. */
|
|
9
|
+
private readonly argIndexes;
|
|
10
|
+
/**
|
|
11
|
+
* First global address occupied by this scheduler; meaningful only once
|
|
12
|
+
* {@link ensureAddressesAssigned} has run on the root of the program tree.
|
|
13
|
+
*/
|
|
14
|
+
private base;
|
|
15
|
+
private addressesAssigned;
|
|
8
16
|
constructor(root: Instruction);
|
|
17
|
+
/** Global address of local instruction `index` within the whole program tree. */
|
|
18
|
+
addressOf(index: number): number;
|
|
19
|
+
/** First global address of this scheduler's own instructions. */
|
|
20
|
+
get baseAddress(): number;
|
|
21
|
+
/** Global addresses of the instructions producing local instruction `index`'s arguments. */
|
|
22
|
+
dependencyAddressesOf(index: number): number[];
|
|
23
|
+
/**
|
|
24
|
+
* Assigns global addresses across this scheduler and everything nested under
|
|
25
|
+
* it, treating this scheduler as the root of the address space. Idempotent, and
|
|
26
|
+
* memoized so a cached scheduler pays it once.
|
|
27
|
+
*
|
|
28
|
+
* A nested scheduler never has to assign for itself: its root always runs
|
|
29
|
+
* first and stamps it on the way through, so the no-op guard below is what its
|
|
30
|
+
* own tracing-path call hits.
|
|
31
|
+
*
|
|
32
|
+
* NOTE: the space is per scheduler *tree*, always based at 0, so two
|
|
33
|
+
* independently-rooted trees traced by ONE tracer would collide. Fine today:
|
|
34
|
+
* only a statement's own root scheduler ever sees a `RuntimeContext` carrying a
|
|
35
|
+
* tracer — every other `Scheduler.run` site (materialized-view maintenance,
|
|
36
|
+
* assertions, the derived-row validator, the const evaluator) builds a fresh
|
|
37
|
+
* tracer-free context. If a site ever runs a second root on a traced context,
|
|
38
|
+
* bases must come from the tracer instead of from 0.
|
|
39
|
+
*/
|
|
40
|
+
ensureAddressesAssigned(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Stamps `base` on this scheduler and its nested programs; returns the next free address.
|
|
43
|
+
*
|
|
44
|
+
* NOTE: assumes the program graph is a TREE — `emitCall` allocates a fresh
|
|
45
|
+
* `Scheduler` per call site, so no scheduler is reachable twice today. A shared
|
|
46
|
+
* (or cyclic) sub-program would be stamped twice here, silently handing two
|
|
47
|
+
* instructions the same address; `WorkCounterCollector.walk` guards the same
|
|
48
|
+
* assumption defensively, and this would need the same guard.
|
|
49
|
+
*/
|
|
50
|
+
private assignAddresses;
|
|
9
51
|
run(ctx: RuntimeContext): OutputValue;
|
|
10
52
|
/**
|
|
11
53
|
* Run the context-leak check once `result` has settled: after a Promise
|
|
@@ -52,6 +94,11 @@ export declare class Scheduler {
|
|
|
52
94
|
* iterables via {@link wrapIterableForTracing}. For a resolved-scalar promise
|
|
53
95
|
* the async hook parks the ORIGINAL promise (deferring the await to the
|
|
54
96
|
* destination), exactly as before the collapse.
|
|
97
|
+
*
|
|
98
|
+
* Every event is reported under the instruction's *global* address
|
|
99
|
+
* ({@link addressOf}), not its scheduler-local index, so events from a nested
|
|
100
|
+
* sub-program cannot land on a main-program instruction that happens to share
|
|
101
|
+
* a local index.
|
|
55
102
|
*/
|
|
56
103
|
private tracingHooks;
|
|
57
104
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/runtime/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAUzE,KAAK,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAAC;AA4EvC,qBAAa,SAAS;IACrB,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAAM;IAC1C,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/runtime/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAUzE,KAAK,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAAC;AA4EvC,qBAAa,SAAS;IACrB,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAAM;IAC1C,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAC3C,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C;;;OAGG;IACH,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,IAAI,EAAE,WAAW;IA4C7B,iFAAiF;IACjF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,iEAAiE;IACjE,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,4FAA4F;IAC5F,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9C;;;;;;;;;;;;;;;;OAgBG;IACH,uBAAuB,IAAI,IAAI;IAK/B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAavB,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW;IAiCrC;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAgCjC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IA4CnB;;;;;;;;;;;;OAYG;YACW,YAAY;IAwE1B;;;;;;OAMG;YACW,sBAAsB;IAoBpC,sEAAsE;IACtE,OAAO,CAAC,cAAc;IAMtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,yBAAyB;IAqCjC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,UAAU,IAAI,uBAAuB,EAAE;CAQvC"}
|
|
@@ -10,7 +10,7 @@ const TRACED_ITERABLE_SYMBOL = Symbol('tracedIterable');
|
|
|
10
10
|
/**
|
|
11
11
|
* Wraps an async iterable to emit row-level trace events
|
|
12
12
|
*/
|
|
13
|
-
function wrapIterableForTracing(src, ctx,
|
|
13
|
+
function wrapIterableForTracing(src, ctx, address, instruction) {
|
|
14
14
|
// Prevent double-wrapping
|
|
15
15
|
if (src[TRACED_ITERABLE_SYMBOL]) {
|
|
16
16
|
return src;
|
|
@@ -21,7 +21,7 @@ function wrapIterableForTracing(src, ctx, instructionIndex, instruction) {
|
|
|
21
21
|
for await (const row of src) {
|
|
22
22
|
// Only emit row trace events for valid rows (non-empty arrays)
|
|
23
23
|
if (Array.isArray(row) && row.length > 0) {
|
|
24
|
-
tracer.traceRow(
|
|
24
|
+
tracer.traceRow(address, instruction, rowIndex++, row);
|
|
25
25
|
}
|
|
26
26
|
yield row;
|
|
27
27
|
}
|
|
@@ -34,18 +34,25 @@ export class Scheduler {
|
|
|
34
34
|
instructions = [];
|
|
35
35
|
/** Index of the instruction that consumes the output of each instruction. */
|
|
36
36
|
destinations;
|
|
37
|
+
/** Local indices of the instructions producing each instruction's arguments, in param order. */
|
|
38
|
+
argIndexes = [];
|
|
39
|
+
/**
|
|
40
|
+
* First global address occupied by this scheduler; meaningful only once
|
|
41
|
+
* {@link ensureAddressesAssigned} has run on the root of the program tree.
|
|
42
|
+
*/
|
|
43
|
+
base = 0;
|
|
44
|
+
addressesAssigned = false;
|
|
37
45
|
constructor(root) {
|
|
38
|
-
const argIndexes = [];
|
|
39
46
|
const buildPlan = (inst) => {
|
|
40
47
|
const instArgIndexes = inst.params.map(p => buildPlan(p));
|
|
41
48
|
const currentIndex = this.instructions.push(inst) - 1;
|
|
42
|
-
argIndexes[currentIndex] = instArgIndexes;
|
|
49
|
+
this.argIndexes[currentIndex] = instArgIndexes;
|
|
43
50
|
return currentIndex;
|
|
44
51
|
};
|
|
45
52
|
buildPlan(root);
|
|
46
53
|
this.destinations = new Array(this.instructions.length).fill(null);
|
|
47
54
|
for (let instIndex = 0; instIndex < this.instructions.length; ++instIndex) {
|
|
48
|
-
const instArgIndexes = argIndexes[instIndex];
|
|
55
|
+
const instArgIndexes = this.argIndexes[instIndex];
|
|
49
56
|
if (instArgIndexes) {
|
|
50
57
|
for (let argIndex = 0; argIndex < instArgIndexes.length; ++argIndex) {
|
|
51
58
|
this.destinations[instArgIndexes[argIndex]] = instIndex;
|
|
@@ -53,6 +60,83 @@ export class Scheduler {
|
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
62
|
}
|
|
63
|
+
// --- Instruction addressing -------------------------------------------------
|
|
64
|
+
//
|
|
65
|
+
// A query's instructions live in a *tree* of schedulers: the root program plus
|
|
66
|
+
// one nested `Scheduler` per `emitCall` (the only place `instruction.programs`
|
|
67
|
+
// is set, so every nested scheduler has exactly one owner). Each scheduler
|
|
68
|
+
// numbers its own instructions from 0, which is all the dispatch loops need —
|
|
69
|
+
// but two different schedulers then both have an instruction "1", and any
|
|
70
|
+
// consumer that joins on that number (`execution_trace()` joining trace events
|
|
71
|
+
// against the `scheduler_program()` listing) conflates them.
|
|
72
|
+
//
|
|
73
|
+
// So the tree gets one flat address space, depth-first and deterministic from
|
|
74
|
+
// the instruction tree alone:
|
|
75
|
+
//
|
|
76
|
+
// a scheduler with base B and N own instructions occupies
|
|
77
|
+
// B .. B+N-1 its own instructions, in scheduler order
|
|
78
|
+
// then, in order of (owning instruction index, program index),
|
|
79
|
+
// each nested program takes the next block, sized by its own subtree
|
|
80
|
+
//
|
|
81
|
+
// Addresses are assigned lazily and only on the tracing path: normal execution
|
|
82
|
+
// (the optimized and metrics dispatch loops) never needs them and must not pay
|
|
83
|
+
// for them.
|
|
84
|
+
/** Global address of local instruction `index` within the whole program tree. */
|
|
85
|
+
addressOf(index) {
|
|
86
|
+
return this.base + index;
|
|
87
|
+
}
|
|
88
|
+
/** First global address of this scheduler's own instructions. */
|
|
89
|
+
get baseAddress() {
|
|
90
|
+
return this.base;
|
|
91
|
+
}
|
|
92
|
+
/** Global addresses of the instructions producing local instruction `index`'s arguments. */
|
|
93
|
+
dependencyAddressesOf(index) {
|
|
94
|
+
return (this.argIndexes[index] ?? []).map(argIndex => this.addressOf(argIndex));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Assigns global addresses across this scheduler and everything nested under
|
|
98
|
+
* it, treating this scheduler as the root of the address space. Idempotent, and
|
|
99
|
+
* memoized so a cached scheduler pays it once.
|
|
100
|
+
*
|
|
101
|
+
* A nested scheduler never has to assign for itself: its root always runs
|
|
102
|
+
* first and stamps it on the way through, so the no-op guard below is what its
|
|
103
|
+
* own tracing-path call hits.
|
|
104
|
+
*
|
|
105
|
+
* NOTE: the space is per scheduler *tree*, always based at 0, so two
|
|
106
|
+
* independently-rooted trees traced by ONE tracer would collide. Fine today:
|
|
107
|
+
* only a statement's own root scheduler ever sees a `RuntimeContext` carrying a
|
|
108
|
+
* tracer — every other `Scheduler.run` site (materialized-view maintenance,
|
|
109
|
+
* assertions, the derived-row validator, the const evaluator) builds a fresh
|
|
110
|
+
* tracer-free context. If a site ever runs a second root on a traced context,
|
|
111
|
+
* bases must come from the tracer instead of from 0.
|
|
112
|
+
*/
|
|
113
|
+
ensureAddressesAssigned() {
|
|
114
|
+
if (this.addressesAssigned)
|
|
115
|
+
return;
|
|
116
|
+
this.assignAddresses(0);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Stamps `base` on this scheduler and its nested programs; returns the next free address.
|
|
120
|
+
*
|
|
121
|
+
* NOTE: assumes the program graph is a TREE — `emitCall` allocates a fresh
|
|
122
|
+
* `Scheduler` per call site, so no scheduler is reachable twice today. A shared
|
|
123
|
+
* (or cyclic) sub-program would be stamped twice here, silently handing two
|
|
124
|
+
* instructions the same address; `WorkCounterCollector.walk` guards the same
|
|
125
|
+
* assumption defensively, and this would need the same guard.
|
|
126
|
+
*/
|
|
127
|
+
assignAddresses(base) {
|
|
128
|
+
this.base = base;
|
|
129
|
+
this.addressesAssigned = true;
|
|
130
|
+
let next = base + this.instructions.length;
|
|
131
|
+
for (const instruction of this.instructions) {
|
|
132
|
+
if (!instruction.programs)
|
|
133
|
+
continue;
|
|
134
|
+
for (const program of instruction.programs) {
|
|
135
|
+
next = program.assignAddresses(next);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return next;
|
|
139
|
+
}
|
|
56
140
|
run(ctx) {
|
|
57
141
|
// Initialize context tracker if not already present
|
|
58
142
|
if (!ctx.contextTracker) {
|
|
@@ -66,6 +150,9 @@ export class Scheduler {
|
|
|
66
150
|
result = this.runSyncLoop(ctx, this.optimizedHooks());
|
|
67
151
|
}
|
|
68
152
|
else {
|
|
153
|
+
// Tracing is the only mode whose events are joined against an instruction
|
|
154
|
+
// listing, so it is the only mode that pays for global addressing.
|
|
155
|
+
this.ensureAddressesAssigned();
|
|
69
156
|
result = this.runSyncLoop(ctx, this.tracingHooks(ctx));
|
|
70
157
|
}
|
|
71
158
|
// Context-leak diagnostic. A program's result is frequently an unconsumed
|
|
@@ -266,33 +353,40 @@ export class Scheduler {
|
|
|
266
353
|
* iterables via {@link wrapIterableForTracing}. For a resolved-scalar promise
|
|
267
354
|
* the async hook parks the ORIGINAL promise (deferring the await to the
|
|
268
355
|
* destination), exactly as before the collapse.
|
|
356
|
+
*
|
|
357
|
+
* Every event is reported under the instruction's *global* address
|
|
358
|
+
* ({@link addressOf}), not its scheduler-local index, so events from a nested
|
|
359
|
+
* sub-program cannot land on a main-program instruction that happens to share
|
|
360
|
+
* a local index.
|
|
269
361
|
*/
|
|
270
362
|
tracingHooks(ctx) {
|
|
271
363
|
const tracer = ctx.tracer;
|
|
272
364
|
return {
|
|
273
|
-
onInput: (i, instruction, args) => tracer.traceInput(i, instruction, args),
|
|
365
|
+
onInput: (i, instruction, args) => tracer.traceInput(this.addressOf(i), instruction, args),
|
|
274
366
|
runInstruction: (_index, instruction, rctx, args) => instruction.run(rctx, ...args),
|
|
275
367
|
onSyncOutput: (i, instruction, output) => {
|
|
368
|
+
const address = this.addressOf(i);
|
|
276
369
|
let traced = output;
|
|
277
370
|
if (isAsyncIterable(traced)) {
|
|
278
|
-
traced = wrapIterableForTracing(traced, ctx,
|
|
371
|
+
traced = wrapIterableForTracing(traced, ctx, address, instruction);
|
|
279
372
|
}
|
|
280
|
-
tracer.traceOutput(
|
|
373
|
+
tracer.traceOutput(address, instruction, traced);
|
|
281
374
|
return traced;
|
|
282
375
|
},
|
|
283
376
|
onAsyncOutput: async (i, instruction, output) => {
|
|
377
|
+
const address = this.addressOf(i);
|
|
284
378
|
let resolved = output instanceof Promise ? await output : output;
|
|
285
379
|
// Default: keep the original output for flow control (re-defers a
|
|
286
380
|
// resolved-scalar promise to its destination).
|
|
287
381
|
let parkValue = output;
|
|
288
382
|
if (isAsyncIterable(resolved)) {
|
|
289
|
-
resolved = wrapIterableForTracing(resolved, ctx,
|
|
383
|
+
resolved = wrapIterableForTracing(resolved, ctx, address, instruction);
|
|
290
384
|
parkValue = resolved;
|
|
291
385
|
}
|
|
292
|
-
tracer.traceOutput(
|
|
386
|
+
tracer.traceOutput(address, instruction, resolved);
|
|
293
387
|
return parkValue;
|
|
294
388
|
},
|
|
295
|
-
onError: (i, instruction, error) => tracer.traceError(i, instruction, error),
|
|
389
|
+
onError: (i, instruction, error) => tracer.traceError(this.addressOf(i), instruction, error),
|
|
296
390
|
};
|
|
297
391
|
}
|
|
298
392
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/runtime/scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/runtime/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -221,6 +221,11 @@ export interface InstructionRuntimeStats {
|
|
|
221
221
|
}
|
|
222
222
|
/** * Trace event for instruction execution. */
|
|
223
223
|
export interface InstructionTraceEvent {
|
|
224
|
+
/**
|
|
225
|
+
* Global address of the traced instruction — `Scheduler.addressOf`, unique
|
|
226
|
+
* across the whole program tree (main program and every nested sub-program),
|
|
227
|
+
* not an index within whichever scheduler happened to be running.
|
|
228
|
+
*/
|
|
224
229
|
instructionIndex: number;
|
|
225
230
|
note?: string;
|
|
226
231
|
type: 'input' | 'output' | 'row' | 'error';
|
|
@@ -237,11 +242,22 @@ export interface InstructionTraceEvent {
|
|
|
237
242
|
}
|
|
238
243
|
/** Information about a sub-program for tracing purposes */
|
|
239
244
|
export interface SubProgramInfo {
|
|
245
|
+
/**
|
|
246
|
+
* Base address of the sub-program: the global address of its first instruction
|
|
247
|
+
* (`Scheduler.baseAddress`). Names a row that `scheduler_program()` actually
|
|
248
|
+
* lists, so trace output can be followed into the sub-program.
|
|
249
|
+
*/
|
|
240
250
|
programIndex: number;
|
|
241
251
|
instructionCount: number;
|
|
242
252
|
rootNote?: string;
|
|
243
253
|
}
|
|
244
|
-
/**
|
|
254
|
+
/**
|
|
255
|
+
* Interface for tracing instruction execution.
|
|
256
|
+
*
|
|
257
|
+
* Every `instructionIndex` here is a *global* address (`Scheduler.addressOf`),
|
|
258
|
+
* unique across the main program and every nested sub-program — not an index
|
|
259
|
+
* within the scheduler that is currently running.
|
|
260
|
+
*/
|
|
245
261
|
export interface InstructionTracer {
|
|
246
262
|
/** Called before an instruction executes */
|
|
247
263
|
traceInput(instructionIndex: number, instruction: Instruction, args: RuntimeValue[]): void;
|
|
@@ -253,7 +269,7 @@ export interface InstructionTracer {
|
|
|
253
269
|
traceRow(instructionIndex: number, instruction: Instruction, rowIndex: number, row: Row): void;
|
|
254
270
|
/** Gets collected trace events (if supported by the tracer) */
|
|
255
271
|
getTraceEvents?(): InstructionTraceEvent[];
|
|
256
|
-
/** Gets information about all sub-programs encountered during tracing */
|
|
272
|
+
/** Gets information about all sub-programs encountered during tracing, keyed by base address */
|
|
257
273
|
getSubPrograms?(): Map<number, {
|
|
258
274
|
scheduler: Scheduler;
|
|
259
275
|
parentInstructionIndex: number;
|
|
@@ -263,7 +279,6 @@ export interface InstructionTracer {
|
|
|
263
279
|
export declare class CollectingInstructionTracer implements InstructionTracer {
|
|
264
280
|
private events;
|
|
265
281
|
private subPrograms;
|
|
266
|
-
private nextSubProgramId;
|
|
267
282
|
traceInput(instructionIndex: number, instruction: Instruction, args: RuntimeValue[]): void;
|
|
268
283
|
traceOutput(instructionIndex: number, instruction: Instruction, result: OutputValue): void;
|
|
269
284
|
traceError(instructionIndex: number, instruction: Instruction, error: Error): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,6CAA6C;IAC7C,OAAO,EAAE,aAAa,CAAC;IACvB,gGAAgG;IAChG,aAAa,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACjD,yDAAyD;IACzD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,mDAAmD;IACnD,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IACjD;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjF;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,WAAW,CAAC;AAE3F,MAAM,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,KAAK,CAAC,KAAK,SAAS,YAAY,EAAE,EACjD,GAAG,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,WAAW,GACvD,cAAc,CAEhB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,GAAG,CAAC;CACV;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC9B;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IACjC,4CAA4C;IAC5C,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC3F,2CAA2C;IAC3C,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3F,iDAAiD;IACjD,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACnF,mEAAmE;IACnE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAC/F,+DAA+D;IAC/D,cAAc,CAAC,IAAI,qBAAqB,EAAE,CAAC;IAC3C,gGAAgG;IAChG,cAAc,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,kEAAkE;AAClE,qBAAa,2BAA4B,YAAW,iBAAiB;IACpE,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,WAAW,CAA+E;IAElG,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAa1F,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAU1F,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAUlF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAW9F,cAAc,IAAI,qBAAqB,EAAE;IAIzC,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvF,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;CAQlB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,sCAAsC;IACtC,UAAU,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,wCAAwC;IACxC,aAAa,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/C,oDAAoD;IACpD,oBAAoB,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,gDAAgD;IAChD,oBAAoB,IAAI,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAoC;IAEpD,UAAU,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3D,aAAa,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;IAI9C,oBAAoB,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAO5E,oBAAoB,IAAI,OAAO;CAG/B"}
|
|
@@ -39,7 +39,6 @@ export function asRun(run) {
|
|
|
39
39
|
export class CollectingInstructionTracer {
|
|
40
40
|
events = [];
|
|
41
41
|
subPrograms = new Map();
|
|
42
|
-
nextSubProgramId = 0;
|
|
43
42
|
traceInput(instructionIndex, instruction, args) {
|
|
44
43
|
const subPrograms = this.collectSubProgramInfo(instructionIndex, instruction);
|
|
45
44
|
this.events.push({
|
|
@@ -88,17 +87,20 @@ export class CollectingInstructionTracer {
|
|
|
88
87
|
clear() {
|
|
89
88
|
this.events = [];
|
|
90
89
|
this.subPrograms.clear();
|
|
91
|
-
this.nextSubProgramId = 0;
|
|
92
90
|
}
|
|
93
91
|
collectSubProgramInfo(instructionIndex, instruction) {
|
|
94
92
|
if (!instruction.programs || instruction.programs.length === 0) {
|
|
95
93
|
return undefined;
|
|
96
94
|
}
|
|
95
|
+
// Key sub-programs by their base address rather than an invented counter, so
|
|
96
|
+
// the ids reported here name rows that scheduler_program() also lists. The
|
|
97
|
+
// root scheduler has already assigned addresses by the time any instruction
|
|
98
|
+
// traces (see Scheduler.ensureAddressesAssigned).
|
|
97
99
|
return instruction.programs.map(scheduler => {
|
|
98
|
-
const
|
|
99
|
-
this.subPrograms.set(
|
|
100
|
+
const baseAddress = scheduler.baseAddress;
|
|
101
|
+
this.subPrograms.set(baseAddress, { scheduler, parentInstructionIndex: instructionIndex });
|
|
100
102
|
return {
|
|
101
|
-
programIndex:
|
|
103
|
+
programIndex: baseAddress,
|
|
102
104
|
instructionCount: scheduler.instructions.length,
|
|
103
105
|
rootNote: scheduler.instructions[scheduler.instructions.length - 1]?.note
|
|
104
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"AA8KA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,KAAK,CACpB,GAAyD;IAEzD,OAAO,GAAgC,CAAC;AACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"AA8KA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,KAAK,CACpB,GAAyD;IAEzD,OAAO,GAAgC,CAAC;AACzC,CAAC;AAwED,kEAAkE;AAClE,MAAM,OAAO,2BAA2B;IAC/B,MAAM,GAA4B,EAAE,CAAC;IACrC,WAAW,GAAG,IAAI,GAAG,EAAoE,CAAC;IAElG,UAAU,CAAC,gBAAwB,EAAE,WAAwB,EAAE,IAAoB;QAClF,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,gBAAgB;YAChB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,WAAW;SACX,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,gBAAwB,EAAE,WAAwB,EAAE,MAAmB;QAClF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,gBAAgB;YAChB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SAChC,CAAC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,gBAAwB,EAAE,WAAwB,EAAE,KAAY;QAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,gBAAgB;YAChB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,KAAK,CAAC,OAAO;SACpB,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,gBAAwB,EAAE,WAAwB,EAAE,QAAgB,EAAE,GAAQ;QACtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,gBAAgB;YAChB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ;YACR,GAAG;SACH,CAAC,CAAC;IACJ,CAAC;IAED,cAAc;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,cAAc;QACb,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,qBAAqB,CAAC,gBAAwB,EAAE,WAAwB;QAC/E,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,kDAAkD;QAClD,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAE3F,OAAO;gBACN,YAAY,EAAE,WAAW;gBACzB,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAAC,MAAM;gBAC/C,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI;aACzE,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,IAAoB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEO,WAAW,CAAC,MAAmB;QACtC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAwB,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAsB,CAAC,CAAC;IAChD,CAAC;IAEO,UAAU,CAAC,KAAmB;QACrC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,OAAO,YAAY,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK;YAAE,OAAO,iBAAiB,CAAC;QAClG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAiB,CAAC,CAAiB,CAAC;QACpG,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,UAAU,CAAC;QACjD,OAAO,KAAqB,CAAC;IAC9B,CAAC;CACD;AAgBD;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACzB,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEpD,UAAU,CAAC,UAAyB,EAAE,MAAc;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,UAAyB;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,oBAAoB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,UAAU;YACV,MAAM;SACN,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/B,CAAC;CACD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from '../core/database.js';
|
|
2
|
-
import type { TableSchema, IndexColumnSchema, UniqueConstraintSchema } from './table.js';
|
|
2
|
+
import type { TableSchema, IndexSchema, IndexColumnSchema, UniqueConstraintSchema } from './table.js';
|
|
3
3
|
import type * as AST from '../parser/ast.js';
|
|
4
4
|
import { type SqlValue } from '../common/types.js';
|
|
5
5
|
/**
|
|
@@ -159,6 +159,80 @@ export interface CatalogAssertion {
|
|
|
159
159
|
* Collects current schema state from the database into a catalog representation
|
|
160
160
|
*/
|
|
161
161
|
export declare function collectSchemaCatalog(db: Database, schemaName?: string): SchemaCatalog;
|
|
162
|
+
/**
|
|
163
|
+
* Maps each implicit-covering-structure index name to its exposure flag. An index
|
|
164
|
+
* is an implicit covering structure when it is the secondary BTree auto-built to
|
|
165
|
+
* back a declared (inline) UNIQUE constraint — identified by the deterministic
|
|
166
|
+
* auto-index name `uc.name ?? '_uc_<cols>'` (see
|
|
167
|
+
* `MemoryTableManager.ensureUniqueConstraintIndexes`). Constraints synthesized
|
|
168
|
+
* from a real `CREATE UNIQUE INDEX` (`derivedFromIndex` set) are excluded — that
|
|
169
|
+
* index is the user's, always shown. The flag is `true` when the constraint
|
|
170
|
+
* carries {@link EXPOSE_IMPLICIT_INDEX_TAG} (surface it), `false` otherwise
|
|
171
|
+
* (hide). Index names absent from the map are ordinary indexes (always shown).
|
|
172
|
+
*
|
|
173
|
+
* Keys are **lowercased** — index names are matched case-insensitively
|
|
174
|
+
* everywhere else in the engine (`createIndex`, `dropIndex`, `updateIndexTags`
|
|
175
|
+
* all compare on `toLowerCase()`), so callers must look up a lowercased name.
|
|
176
|
+
*/
|
|
177
|
+
export declare function implicitCoveringIndexExposure(tableSchema: TableSchema): Map<string, boolean>;
|
|
178
|
+
/**
|
|
179
|
+
* The {@link IndexSchema} a *read* surface should render for `index` on
|
|
180
|
+
* `tableSchema`. An exposed implicit covering structure describes itself as
|
|
181
|
+
* UNIQUE even though its own `IndexSchema` carries no flag (memory mode
|
|
182
|
+
* materializes it without one) or is synthesized from a constraint (store mode)
|
|
183
|
+
* — here the flag is a *display* fact: rendered DDL exists to re-parse into the
|
|
184
|
+
* object it describes, and `CREATE INDEX … ("x")` does not re-parse into
|
|
185
|
+
* something that enforces uniqueness. Uniqueness *enforcement* stays on the
|
|
186
|
+
* constraint (`uniqueConstraints`); nothing about the returned schema changes
|
|
187
|
+
* that.
|
|
188
|
+
*
|
|
189
|
+
* This is the single site answering "how does this index describe itself". Read
|
|
190
|
+
* surfaces reach it through {@link displayIndexesForTable}, which is the only
|
|
191
|
+
* caller that matters — call that, not this, unless you hold a lone index.
|
|
192
|
+
*
|
|
193
|
+
* Returns `index` unchanged unless it is an *exposed* implicit covering
|
|
194
|
+
* structure lacking the flag. Hidden implicit structures never reach a read
|
|
195
|
+
* surface (callers filter them first), but the check keys off
|
|
196
|
+
* `exposure.get(name) === true` rather than mere implicitness so that stays
|
|
197
|
+
* correct if the filters ever move.
|
|
198
|
+
*
|
|
199
|
+
* NOTE: read surfaces ONLY. Paths whose DDL is re-executed rather than read must
|
|
200
|
+
* keep rendering the raw `IndexSchema`: `buildCatalogEntry` (quereus-store's
|
|
201
|
+
* persistence bundle, which deliberately emits no `CREATE INDEX` line for these),
|
|
202
|
+
* `rebuildUserIndexes` (runtime/emit/alter-table.ts, which excludes implicit
|
|
203
|
+
* structures from its re-create loop), the memory/store schema-change *events*,
|
|
204
|
+
* and quereus-sync's replicated-index `assertDefinitionMatches`. Routing any of
|
|
205
|
+
* those through this helper would change what gets executed, not just what gets
|
|
206
|
+
* shown.
|
|
207
|
+
*
|
|
208
|
+
* Pass `exposure` to reuse one map across a whole table's indexes — building it
|
|
209
|
+
* is O(unique constraints).
|
|
210
|
+
*/
|
|
211
|
+
export declare function indexSchemaForDisplay(tableSchema: TableSchema, index: IndexSchema, exposure?: Map<string, boolean>): IndexSchema;
|
|
212
|
+
/** One index as a read surface should present it — see {@link displayIndexesForTable}. */
|
|
213
|
+
export interface DisplayIndex {
|
|
214
|
+
/** Already rendered through {@link indexSchemaForDisplay}. */
|
|
215
|
+
index: IndexSchema;
|
|
216
|
+
/** True for an *exposed* implicit covering structure — see {@link CatalogIndex.implicit}. */
|
|
217
|
+
implicit: boolean;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Every index of `tableSchema` a *read* surface should list, in catalog order:
|
|
221
|
+
* the materialized indexes minus the hidden implicit covering structures, then
|
|
222
|
+
* the exposed implicit structures the backend did not materialize (the store-mode
|
|
223
|
+
* case — empty in memory mode, where the name is already materialized, so nothing
|
|
224
|
+
* double-lists).
|
|
225
|
+
*
|
|
226
|
+
* This is the single enumeration `collectSchemaCatalog`, `schema()` and
|
|
227
|
+
* `index_info()` share. Each of them used to spell the same three steps out for
|
|
228
|
+
* itself — drop the hidden structures, append the store-mode synthetics, render
|
|
229
|
+
* the result — and a surface that got one wrong drifted from the others. Add a
|
|
230
|
+
* read surface by calling this, not by repeating the recipe.
|
|
231
|
+
*
|
|
232
|
+
* Write paths and the persistence bundle must NOT use it — see the NOTE on
|
|
233
|
+
* {@link indexSchemaForDisplay}.
|
|
234
|
+
*/
|
|
235
|
+
export declare function displayIndexesForTable(tableSchema: TableSchema): DisplayIndex[];
|
|
162
236
|
/**
|
|
163
237
|
* Rejects a UNIQUE constraint declaration whose implicit backing structure would
|
|
164
238
|
* claim a name already held on the same table — by another UNIQUE constraint's
|
|
@@ -308,16 +382,39 @@ export declare function assertNoDuplicateConstraintNames(astColumns: ReadonlyArr
|
|
|
308
382
|
* subset of {@link IndexSchema} (no `unique` flag — see below) so the read-path
|
|
309
383
|
* helpers (`indexSchemaToCatalog`, the `schema()` / `index_info()` TVFs) can
|
|
310
384
|
* consume it identically to a real index.
|
|
385
|
+
*
|
|
386
|
+
* {@link displayIndexesForTable} lifts it with
|
|
387
|
+
* {@link syntheticExposedIndexToIndexSchema} and renders it through
|
|
388
|
+
* {@link indexSchemaForDisplay} exactly as it does a materialized index — that
|
|
389
|
+
* is what keeps the two backends' answers identical.
|
|
311
390
|
*/
|
|
312
391
|
export interface SyntheticExposedIndex {
|
|
313
392
|
name: string;
|
|
314
393
|
/** Mirrors `ensureUniqueConstraintIndexes`: per-column index + declared collation. */
|
|
315
394
|
columns: ReadonlyArray<IndexColumnSchema>;
|
|
316
|
-
/**
|
|
395
|
+
/**
|
|
396
|
+
* Partial-index predicate from `uc.predicate`, when any.
|
|
397
|
+
*
|
|
398
|
+
* NOTE: unreachable today, and structurally so — `uc.predicate` is only ever
|
|
399
|
+
* set by `appendIndexToTableSchema` for a constraint synthesized from a
|
|
400
|
+
* `CREATE UNIQUE INDEX … WHERE`, and such a constraint carries
|
|
401
|
+
* `derivedFromIndex`, which `exposedImplicitIndexes` skips. So no exposed
|
|
402
|
+
* implicit structure can be partial, and `index_info().partial` reads 0 for
|
|
403
|
+
* every one of them. Kept because an inline `UNIQUE (…) WHERE …` would make it
|
|
404
|
+
* live immediately; if that grammar lands, pin `partial = 1` here.
|
|
405
|
+
*/
|
|
317
406
|
predicate?: AST.Expression;
|
|
318
407
|
/** User tags from `uc.exposedIndexTags` (the exposure flag stays on `uc.tags`). */
|
|
319
408
|
tags?: Readonly<Record<string, SqlValue>>;
|
|
320
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Lifts a {@link SyntheticExposedIndex} into the {@link IndexSchema} shape the DDL
|
|
412
|
+
* generators (`generateIndexDDL`, `indexToCanonicalDDL`) expect — a plain
|
|
413
|
+
* structural lift that stamps no flags of its own. `unique` is supplied
|
|
414
|
+
* afterwards by {@link indexSchemaForDisplay}, the same as for a materialized
|
|
415
|
+
* index; {@link displayIndexesForTable} does both.
|
|
416
|
+
*/
|
|
417
|
+
export declare function syntheticExposedIndexToIndexSchema(desc: SyntheticExposedIndex): IndexSchema;
|
|
321
418
|
/**
|
|
322
419
|
* Exposed implicit covering indexes that are NOT already materialized in
|
|
323
420
|
* `tableSchema.indexes` — i.e. the store-mode case. For each non-derived UNIQUE
|