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: String§Fase 67.b — 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 (§38.d axon-T807).
limit_expr: String§Fase 67.b — 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
(§38.d axon-T808).
aggregate: String§Fase 76.d — 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 (§76.d axon-T843/T844/T845).
group_by: String§Fase 76.d — optional group_by: clause: a comma-separated list
of column identifiers (same discipline as order_by: columns).
Requires an aggregate:. Empty = no grouping.
cache: String§Fase 85.b — 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