in crates/iceberg/src/expr/visitors/strict_metrics_evaluator.rs [113:139]
fn visit_inequality(
&mut self,
reference: &BoundReference,
datum: &Datum,
cmp_fn: fn(&Datum, &Datum) -> bool,
use_lower_bound: bool,
) -> crate::Result<bool> {
let field_id = reference.field().id;
if self.may_contain_null(field_id) || self.may_contain_nan(field_id) {
return ROWS_MIGHT_NOT_MATCH;
}
let bound = if use_lower_bound {
self.lower_bound(field_id)
} else {
self.upper_bound(field_id)
};
if let Some(bound) = bound {
if cmp_fn(bound, datum) {
return ROWS_MUST_MATCH;
}
}
ROWS_MIGHT_NOT_MATCH
}