pub struct Select {
pub project: Vec<String>,
pub distinct: bool,
pub offset: usize,
pub limit: Option<usize>,
pub group: Option<GroupSpec>,
pub extends: Vec<(String, FExpr)>,
pub order: Vec<(FExpr, bool)>,
pub having: Vec<FExpr>,
pub from: Vec<String>,
pub from_named: Option<Vec<String>>,
pub plan: Plan,
pub star_counter: usize,
}Expand description
A lowered SELECT query: solution modifiers plus the evaluation plan tree.
Fields§
§project: Vec<String>Projected variable names (empty = SELECT *).
distinct: boolDISTINCT (or REDUCED) requested.
offset: usizeOFFSET (solutions to skip).
limit: Option<usize>LIMIT (max solutions), if any.
group: Option<GroupSpec>GROUP BY + aggregates, applied after the plan and before projection.
extends: Vec<(String, FExpr)>BIND/aggregate-alias assignments (result_var, expr), applied after
aggregation (e.g. (COUNT(?f) AS ?n) aliases an internal var to ?n).
order: Vec<(FExpr, bool)>ORDER BY keys (expr, descending), applied before projection/slice.
having: Vec<FExpr>HAVING conditions, applied after aggregation.
from: Vec<String>FROM <iri> graphs: when non-empty, the query’s default graph is the
union (RDF merge) of these named graphs.
from_named: Option<Vec<String>>FROM NAMED <iri> graphs: when Some, GRAPH may only see these.
plan: PlanThe graph-pattern evaluation plan.
star_counter: usizeMonotonic counter for minting query-unique fresh variable names while
lowering (e.g. the ?__qtN holders that desugar RDF-star quoted-triple
patterns). Kept on Select so it stays unique across every BGP in one
query — two joined BGPs must not both mint __qt1 and get unified.