Skip to main content

validate_resolved_time_range_clause_shapes

Function validate_resolved_time_range_clause_shapes 

Source
pub fn validate_resolved_time_range_clause_shapes(
    where_clauses: &[WhereClause],
    resolved_time_ranges: &[ResolvedTimeRange],
) -> Result<(), Error>
Expand description

Rejects a query whose resolution provenance and clause shapes disagree: every field in resolved_time_ranges must appear in the where clauses as exactly one Equal clause — the only shape resolve_time_range_bucket_clause produces.

A range or In clause on a resolved field means the caller attached provenance to a clause the resolver never built. Executors that fan a clause out per value (the per-In-value count/sum paths rewrite each In value into an equality) would then present raw client values to the index pickers as if they were resolved bucket starts, and the pickers would admit the bucketed index for them. The wire path can never produce the mismatch — provenance is not parseable from the wire, and the abci handler pushes the resolved equality itself — so this guards direct API callers, and it runs identically under server and verify.