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> |
||
|---|---|---|
| .. | ||
| common | ||
| crash_recovery | ||
| index | ||
| sqlengine | ||
| CMakeLists.txt | ||
| collection_test.cc | ||
| utf8_collection_test.cc | ||