pub struct PushGuard {
pub col: ColId,
pub values: Vec<OwnedValue>,
}Expand description
predicate(row) ⇒ row[col] ∈ values — a finite single-column implication of a
connection’s pushed-down equality-shaped filter, extracted (in
crate::builder) from the same stripped condition the connection’s
RowPredicate was compiled from.
Backend-neutral pure data (like SqlCondition),
populated for both the memory and SQLite leaves.
values is deduplicated by extraction and is non-empty in practice — an
empty set is the legitimate encoding of a never-matching predicate (an empty
IN, or col = NULL which SQL folds to false); such a guard indexes its slot
nowhere (not even the scan list), which is exact because the
connection can receive no pushes.
(No derived PartialEq: OwnedValue deliberately has none — the engine’s
dual-comparator convention forces callers to pick values_identical vs
values_equal explicitly. Compare guards field-wise in tests.)
Fields§
§col: ColId§values: Vec<OwnedValue>