in crates/iceberg/src/expr/visitors/manifest_evaluator.rs [206:231]
fn eq(
&mut self,
reference: &BoundReference,
datum: &Datum,
_predicate: &BoundPredicate,
) -> crate::Result<bool> {
let field = self.field_summary_for_reference(reference);
if field.lower_bound.is_none() || field.upper_bound.is_none() {
return ROWS_CANNOT_MATCH;
}
if let Some(lower_bound) = &field.lower_bound {
if lower_bound > datum {
return ROWS_CANNOT_MATCH;
}
}
if let Some(upper_bound) = &field.upper_bound {
if upper_bound < datum {
return ROWS_CANNOT_MATCH;
}
}
ROWS_MIGHT_MATCH
}