A planned join: one positive body atom position within a rule.
position is the 0-based index of the atom within the rule's positive body.
delta_position indicates the semi-naive delta slot when applicable, or
nil. strategy records how the join is executed; the default engine uses
:nested_loop.
Summary
Types
@type strategy() :: :nested_loop | :indexed
@type t() :: %ExDatalog.Planner.Join{ delta_position: non_neg_integer() | nil, position: non_neg_integer(), relation: String.t(), strategy: strategy() }