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