pub enum Presence {
In,
NotIn,
}Expand description
Which side of an index’s answer a Op::Restrict keeps.
Two operators in one, because they are one delta rule read in two directions: the same probe, the same reverse index, the same cost, and a program that shows both halves of a partition shares one index between them (§99.5 decision 4).
Variants§
In
map_contains(m, k(x)) — kept when the index holds the key. The intersection by key,
which is a semi-join.
NotIn
not map_contains(m, k(x)) — kept when it does not. The difference by key, which is an
anti-join, and §99.4’s one missing row that a program in the tree was already paying for.
Implementations§
Trait Implementations§
impl Copy for Presence
impl Eq for Presence
impl StructuralPartialEq for Presence
Auto Trait Implementations§
impl Freeze for Presence
impl RefUnwindSafe for Presence
impl Send for Presence
impl Sync for Presence
impl Unpin for Presence
impl UnwindSafe for Presence
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more