Repository navigation
refactor: unify VictoriaMetrics parser contract - #600
Merged
Merged
Conversation
zzylol
force-pushed
the
refactor/query-engine-runtime-contract
branch
from
September 10, 2026 21:09
3dd9c90 to
33cea43
Compare
zzylol
force-pushed
the
refactor/vm-parser-contract
branch
2 times, most recently
from
September 10, 2026 21:32
ec4c760 to
08bbbe0
Compare
zzylol
changed the base branch from
refactor/query-engine-runtime-contract
to
chore/pin-promql-parser-d7606436
September 10, 2026 21:32
zzylol
force-pushed
the
chore/pin-promql-parser-d7606436
branch
from
September 10, 2026 21:33
06e4aae to
e14930b
Compare
zzylol
changed the base branch from
chore/pin-promql-parser-d7606436
to
main
September 10, 2026 21:33
zzylol
changed the base branch from
main
to
chore/pin-promql-parser-d7606436
September 10, 2026 21:33
zzylol
force-pushed
the
refactor/vm-parser-contract
branch
from
September 10, 2026 21:34
08bbbe0 to
daf33da
Compare
zzylol
changed the base branch from
chore/pin-promql-parser-d7606436
to
main
September 10, 2026 21:51
zzylol
force-pushed
the
refactor/vm-parser-contract
branch
from
September 10, 2026 21:51
daf33da to
ccb4024
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
VictoriaMetrics planning used a separate MetricsQL frontend while backend parsing was split across parser sources. That allowed parser behavior and supported syntax to drift across one planning contract.
What
Remove backend
asap-frontend-metricsql, route VictoriaMetrics acceleration through the shared ASAP PromQL frontend, and pin every Planner crate to merged Planner commit890504025e4f780880cc6c89d24edd6591af868a. PreserveQueryLanguage::MetricsQland VictoriaMetrics exact endpoints.How
Merged backend #603 owns the sole direct workspace parser declaration at ProjectASAP/promql-parser
d7606436; control plane and data plane inherit it. The stale standalone control-plane lockfile is removed so the root workspace lock is authoritative. Adapter identity follows parser syntax, while the binder requires successful frontend lowering before a query can accelerate.Before this PR
MetricsQL-specific parsing could create accelerated plans through a separate AST and dependency graph.
After this PR
The full stack resolves one v0.10 parser source at
d7606436.mad_over_timehas explicit lowering and can accelerate.distinct_over_timeandentropy_over_timeparse but fail closed in the lowerer/binder and use exact VictoriaMetrics fallback.default_rollupandtopk_over_timefail at the parser boundary and also use exact fallback.Verification
cargo +1.98.0 check -p data_plane --libcargo +1.98.0 tree -dand repository-wide manifest/lock inspection confirm onepromql-parsersource/revision and noasap-frontend-metricsqlormetricsql_parserdependency.cargo +1.98.0 fmt -p control_plane -p data_plane -- --checkgit diff --checkDependencies and limitations
Rebased onto backend main after #603 and pinned to the merge commit from Planner #385. Candidate-filtered MetricsQL exact leaves remain fail closed because matcher injection is defined only over the shared PromQL AST. Lowering
distinct_over_timeto HLL is intentionally outside this PR.