in crates/iceberg/src/expr/visitors/page_index_evaluator.rs [538:569]
fn eq(
&mut self,
reference: &BoundReference,
datum: &Datum,
_predicate: &BoundPredicate,
) -> Result<RowSelection> {
let field_id = reference.field().id;
self.calc_row_selection(
field_id,
|min, max, nulls| {
if matches!(nulls, PageNullCount::AllNull) {
return Ok(false);
}
if let Some(min) = min {
if min.gt(datum) {
return Ok(false);
}
}
if let Some(max) = max {
if max.lt(datum) {
return Ok(false);
}
}
Ok(true)
},
MissingColBehavior::CantMatch,
)
}