pub enum Relate {
Recognise,
Refuse,
}Expand description
Whether the decomposition may read a loop as a join.
The off switch docs/08 §8.3 item 8 requires of anything
the compiler decides for you — “a default nobody has run is a claim, so the switched-off path
belongs in a gate beside the fast one”. Recognising a join
(crate::relate) changes which operators a program compiles to without the program saying so,
which is exactly the kind of choice that item is about, and
scaling.rs::maintaining_a_view_whose_loop_looks_something_up_costs_the_same_at_any_size
measures both settings so the gate carries its own evidence that it can fail.
It is a compile-time switch rather than an AppConfig field because a plan is compiled once,
before a runtime exists: beck explain query --no-join and beck explain cost --no-join are
where a developer reaches it.
Variants§
Recognise
Read for x in xs: whose body looks something up as an equi-join (docs/99 §99.6).
Refuse
Leave every loop as the captured map_list its source spells, index nothing, and pay the
nested loop per event.