arunkumarucet opened a new pull request, #19128: URL: https://github.com/apache/pinot/pull/19128
Follow-up to #19032, addressing the post-merge review comments. ### Correctness — null rows leaking into negative H3 filters (@KKcorps) `H3IndexFilterOperator` and `H3InclusionIndexFilterOperator` build match-all / complement results across all doc IDs. Skipped null geometries (no H3 posting) were being added to results for `ST_Contains/Within(...)=false`, lower-bound-only distance filters, and match-all distance ranges. Both operators now exclude the column's null doc IDs (from the null-value vector) from those results when query null handling is enabled. ### Performance — one exception per empty row on reload (@KKcorps) `GeoSpatialIndexCreator.toGeometry()` fast-paths the empty default-null byte array to `null` instead of throwing (and catching) a `BufferUnderflowException` per row. `H3IndexHandler` now decodes each dictionary id at most once (caches by dictId) instead of per doc; the raw path uses the same fast-path. ### Tests - `SegmentPreProcessorTest` now covers `V1/V3 × DICTIONARY/RAW` reload paths (raw case asserts no dictionary + H3 index present). - `H3IndexQueriesTest` adds a null-handling query test asserting null rows are excluded from match-all / lower-bound / negative-`ST_Within` results. **Note on the scan-path comparison requested in review:** the geospatial transform functions throw `BufferUnderflowException` on null/empty geometry input even under null handling, so the scan path cannot serve as an oracle for all-null rows. The new test asserts the exact non-null count instead (which fails pre-fix, since match-all previously returned all rows). Happy to also harden the scan path in a separate PR if desired. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
