From 067b73f6058a88b56f21ec9957ce789d8f58fa92 Mon Sep 17 00:00:00 2001 From: discord9 <55937128+discord9@users.noreply.github.com> Date: Tue, 29 Sep 2026 15:47:23 +0800 Subject: [PATCH] test(perf): qualify millisecond range manipulation path Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> --- .../promql_constant_tag_concat_ms/case.toml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/perf/query_cases/promql_constant_tag_concat_ms/case.toml b/tests/perf/query_cases/promql_constant_tag_concat_ms/case.toml index 66e432d90f7..833d41d22eb 100644 --- a/tests/perf/query_cases/promql_constant_tag_concat_ms/case.toml +++ b/tests/perf/query_cases/promql_constant_tag_concat_ms/case.toml @@ -58,6 +58,23 @@ step_nanos = 15_000_000_000 time_range_layout = "non_overlapping_per_sst" series_layout = "timestamp_major" +# Range-vector qualification for the #9274 millisecond fast path: only the +# matrix selector `count_over_time(...[5m])` reaches RangeManipulateStream on +# this TIMESTAMP(3) fixture with zero offset, so ANALYZE VERBOSE is used to keep +# `PromRangeManipulateExec` in each measured sample. The instant selectors below +# remain the negative control (they never enter RangeManipulateStream). As the +# first configured query, this entry is also the runner's extra untimed +# pre-measurement validation probe. +[[scenario.queries]] +name = "range_count_over_time_5m_analyze" +kind = "tql" +query = "TQL ANALYZE VERBOSE (1704069000, 1704069900, '15s') count_over_time(promql_constant_tag_concat_ms[5m])" +warmup = 3 +iterations = 9 + +[scenario.queries.thresholds] +max_candidate_latency_regression_pct = 10 + [[scenario.queries]] name = "selector_full" kind = "tql"