pub struct RetrieveStep {
pub store_name: String,
pub where_expr: String,
pub alias: String,
pub order_by: String,
pub limit_expr: String,
pub aggregate: String,
pub group_by: String,
pub cache: String,
pub loc: Loc,
}Fields§
§store_name: String§where_expr: String§alias: String§order_by: Stringv2.21.0 — optional order_by: clause: a closed
comma-separated list of column [asc|desc] (same identifier
discipline as where: columns — no injection). Empty = no
ordering. Raw string, parsed + validated by the runtime
(filter::render_bounds) and at axon check (v1.31.0 axon-T807).
limit_expr: Stringv2.21.0 — optional limit: clause: a u32 literal OR a
${binding} resolved to a u32 at runtime. Empty = no limit.
Raw string ("100" or "${max}"), validated at axon check
(v1.31.0 axon-T808).
aggregate: Stringv2.33.0 — optional aggregate: clause: a member of the CLOSED
catalog count | sum(<col>) | avg(<col>) | min(<col>) |
max(<col>). Empty = a plain SELECT * retrieve. Raw string,
parsed + validated by the runtime (filter::parse_aggregate_clause)
and at axon check (v2.33.0 axon-T843/T844/T845).
group_by: Stringv2.33.0 — optional group_by: clause: a comma-separated list
of column identifiers (same discipline as order_by: columns).
Requires an aggregate:. Empty = no grouping.
cache: Stringv2.40.0 — optional cache: reference. A retrieve reads a store
(a storage effect — never pure), so caching it is always a WIDENING
that accepts staleness: the named cache MUST carry a finite ttl:
(axon-T865) and typically an invalidate_on:. Names a declared
cache (axon-T864); empty = uncached. Never governed by a
default: true policy (defaults only auto-cover provably-pure tools).
loc: Loc