mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-07-10 07:50:39 +00:00
* feat: add query regression perf harness Signed-off-by: discord9 <discord9@163.com> * feat: extend query regression cases Signed-off-by: discord9 <discord9@163.com> * ci: harden query regression workflows Signed-off-by: discord9 <discord9@163.com> * fix: address query regression review comments Signed-off-by: discord9 <discord9@163.com> * ci: limit query regression PR triggers Signed-off-by: discord9 <discord9@163.com> * ci: run full query regression case set Signed-off-by: discord9 <discord9@163.com> * refactor: model query regression scenarios Signed-off-by: discord9 <discord9@163.com> * fix: avoid unenforced query regression thresholds Signed-off-by: discord9 <discord9@163.com> --------- Signed-off-by: discord9 <discord9@163.com>
1.5 KiB
1.5 KiB
Agent Guidelines for Query Performance Tests
- Keep GitHub Actions YAML thin. Put non-trivial control flow, case expansion,
report generation, and metadata writing in scripts under
.github/scripts/; workflow steps should mostly invoke those scripts. - Query regression PR runs should build base/candidate binaries once, then run
the default case set. Do not hard-code a single case such as
promql_pushdown_7913into the workflow path. - The case DSL is not required to keep compatibility inside this PR. When the DSL changes, update TOML cases, the Python runner, Rust fixture generator, and docs together.
[case]is report metadata only.[scenario]is the executable regression configuration and must includekind, data layout, tables, queries, and thresholds. Keep scenario parsing explicit in bothtests/perf/query_regression_runner.pyandsrc/cmd/src/bin/query_perf_fixture.rs.- Keep the direct-SST generator generic. Issue-specific behavior belongs in case files and thresholds, not in Rust generator logic.
- Before pushing perf harness changes, run at least:
uv run --no-project python -m py_compile .github/scripts/query-regression-run.py .github/scripts/query-regression-summary.py .github/scripts/query-regression-pr-metadata.py tests/perf/query_regression_runner.pycargo fmt --all -- --checkcargo build -p cmd --bin query_perf_fixture- dry-run the Python runner and Rust fixture generator against all built-in cases when the DSL or workflow case selection changes.