Skip to content

Coverage lost with the legacy candidate_selection tests (follow-up of #580) #623

Description

@zzylol

Follow-up of #580. The legacy selection (asap_plan_selection::candidate_selection: global_selection, cost_sorted, recurrence_profiles) and its legacy-only test files are being deleted (Q52, approved 2026-10-04). Some behaviours were covered only by those tests, and the #509 stage pipeline (plan_stages) doesn't cover them yet. Listing them here so the coverage can be rebuilt on the stage pipeline, or explicitly dropped.

Accuracy propagation and exact composition

  • Max / avg over a quantile composes at query time, with accuracy propagated through the outer fold (integration-tests/tests/exact_composition.rs: max_and_avg_over_quantile_compose_at_query_time_with_statistics, avg_over_quantile_keeps_the_sum_over_count_rewrite_as_a_competitor, promql_max_by_zone_over_quantile_over_time_composes, identity_and_genuine_multi_row_folds_both_compose, a_shared_inner_summary_is_materialized_once_for_several_outer_folds, outer_summary_over_an_exact_function_composes_at_ingestion_time, every_exact_accumulator_is_finalized_before_an_outer_sketch, root_target_rejects_unproven_composition, custom_accuracy_rule_survives_root_target_and_materialization).
  • DDSketch quantile ratio: the shared relative-error target, domain proofs, signed evaluations, population size (promql_to_post_asap.rs: ddsketch_quantile_ratio_meets_the_shared_relative_error_target, ddsketch_ratio_without_domain_proof_is_uncertified, ddsketch_ratio_rejects_unsafe_domains, ddsketch_ratio_rejects_one_invalid_domain_when_the_other_is_missing, ddsketch_ratio_bound_holds_for_signed_pinned_sketch_evaluations, ddsketch_ratio_requires_a_supported_population_size).
  • Approximate children are never relabelled exact through binary arithmetic (promql_binary_arithmetic_never_relabels_approximate_children_as_exact).

CSE share-vs-recompute by recurrence and consumer count

  • cost/recurrence.rs: plan_selection_uses_recurrence_profiles_for_cse_choices and the recurrence_profiles_* tests (mixed intervals across roots sharing a sub-DAG, invalid rates, unreachable sites, repeated-reference multiplicity).
  • candidate_selection.rs: cost_sorted_orders_shared_sub_dag_candidates_by_cse_share_decision, effective_consumer_count_corrects_a_nested_groups_share_decision, effective_repetition_materializes_a_cse_choice_for_a_single_edge_child, shared_ancestor_keeps_a_single_use_cse_descendant_selected, estimate_cost_does_not_scale_with_the_readers_own_consumer_count.

Rollup vs CSE

  • global_selection_compares_a_logical_rewrite_with_the_cse_choice, mixed_rewrite_group_keeps_and_selects_its_explicit_cse_pair, global_selection_propagates_uses_through_the_selected_rewrite, costed_logical_candidate_beats_uncosted_legacy_cse_choice.

Evidence-ranked physical cost

  • mixed_candidate_ranking_uses_explicit_candidate_costs, cost_sorted_pairs_each_candidate_with_its_own_estimate_cost, complete_plan_costs_reject_unbound_cse_arms, exact_composition.rs: missing_cost_statistics_preserve_the_conservative_retain_exact, unknown_runtime_capability_keeps_candidate_but_prevents_selection. See also Stage 3: evidence-driven cost (storage I/O, hand-off bytes) #615 (storage I/O and hand-off evidence).

Missing accuracy evidence is never selected

  • selection_never_chooses_a_candidate_missing_accuracy_evidence, grouping_cost_cannot_resurrect_unprovable_hydra_candidates, explicit_summary_infeasibility_prevents_selection, nothing_is_selected_when_the_root_target_rejects_every_summary. The frontend-promql tests for Hydra counts and uncalibrated UnivMon estimates were ported to plan_stages, so this is partly covered for those families.

Reconciled tighter-target propagation

  • global_selection_propagates_reconciled_consumers_to_the_tighter_group, cost_sorted_and_global_selection_handle_a_shared_looser_target, cost_sorted_and_global_selection_handle_a_single_consumer_looser_target.

Also legacy-only

  • integration-tests/tests/sql_to_post_asap.rs and promql_to_post_asap.rs pinned the post-ASAP shape that ASAPStrategies + global_selection produced for many SQL and PromQL queries (temporal reuse, joins, filters, top-k, binary arithmetic, exact workloads). Equivalent shape pins on Stage 1 candidates or the selected plan don't exist yet for most of them.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions