Skip to main content

resolve_time_range_bucket_clause

Function resolve_time_range_bucket_clause 

Source
pub fn resolve_time_range_bucket_clause(
    field: &str,
    selector: TimeRangeSelector,
    grid: Option<TimeRangeGridSpec>,
    document_type: DocumentTypeRef<'_>,
    block_time_ms: u64,
) -> Result<(WhereClause, ResolvedTimeRange), Error>
Expand description

Resolves a time-range selection on field into a concrete equality WhereClause on the bucketed source field, using the named grid’s timeRange transform and an authoritative block_time_ms.

The server supplies block_time_ms from current block time and the verifier re-derives it from the quorum-signed response metadata time_ms, so both produce the identical concrete equality query — the existing index/count proofs apply unchanged and the engine never needs a dedicated time-range operator.

grid selects among several time-range indexes on the same field: None is accepted only while exactly one grid buckets the field (the common case); with two or more grids the caller must name one, and naming a grid no index declares is an error either way.

What comes back is an ordinary equality clause, byte-identical to one a client could have written by hand against a raw timestamp, plus the ResolvedTimeRange provenance callers must record on the query (see DriveDocumentQuery::resolved_time_ranges), which DriveDocumentQuery::find_best_index and the aggregate index pickers consume through index_admissible_for_resolved_time_range to pin selection to the grid’s index — and to keep raw queries off it.