pub fn satisfied(&self, values: &[Value]) -> bool {
        match self {
            Predicate::LessThan(index, other) => values[*index].lt(other.value(values)),
            Predicate::LessEqual(index, other) => values[*index].le(other.value(values)),
            Predicate::GreaterThan(index, other) => values[*index].gt(other.value(values)),
            Predicate::GreaterEqual(index, other) => values[*index].ge(other.value(values)),
            Predicate::Equal(index, other) => values[*index].eq(other.value(values)),
            Predicate::NotEqual(index, other) => values[*index].ne(other.value(values)),
            Predicate::Any(predicates) => predicates.iter().any(|p| p.satisfied(values)),
            Predicate::All(predicates) => predicates.iter().all(|p| p.satisfied(values)),
            Predicate::Not(predicate) => !predicate.satisfied(values),
        }
    }
Indicates if the predicate is satisfied.
interactive/src/plan/filter.rs