pub struct Select {Show 13 fields
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 union_default: bool,
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.
union_default: boolUnion default graph (opt-in, non-standard): when set and the query
has no FROM of its own, the active default graph becomes the RDF merge
of the file’s default graph and every named graph — the mode Virtuoso,
GraphDB and Jena TDB (tdb:unionDefaultGraph) offer. Plain SPARQL says a
pattern outside GRAPH matches only the real default graph, so this is
NEVER set by the parser — only by eval_query_with when the caller
asked for it. An explicit FROM wins (the query named its own dataset).
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.