SIGN IN SIGN UP

fix: nullable scalar field filter leaks null documents without inverted index (#410)

When a nullable scalar field has no inverted index, the forward filter path
fails to handle null values from Arrow's filter evaluation:

1. get_forward_bit(): BooleanArray::operator[] returns nullopt for null entries,
   which is_filtered() treats as "no filter" (not filtered), letting null docs
   through. Fix: use value_or(false) to treat null as "not matched".

2. is_matched_by_forward_filter(): reads BooleanScalar.value without checking
   is_valid, which is UB for null scalars. Fix: check is_valid first.

Closes #409

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
F
feihongxu0824 committed
a9008b0fd27d8a4608cb25e2be1ef7272be22dfd
Parent: 3e02031
Committed by GitHub <noreply@github.com> on 5/18/2026, 12:25:06 PM