JingsongLi opened a new pull request, #8742:
URL: https://github.com/apache/paimon/pull/8742
## What changed
- propagate unsupported scalar results across every child of
`UnionGlobalIndexReader`
- make the default batch-vector fan-out non-blocking and preserve
asynchronous failures
- close every union child before propagating the first close failure
- add focused regression tests for scalar, batch-vector, and close semantics
## Why
The Python union reader skipped a child result of `None` for scalar
predicates. Because `None` means unsupported rather than no matches, a union
spanning multiple row ranges could return only the supported ranges and
silently omit matching rows. Java already propagates the unsupported result for
this case.
The Python batch-vector default also called `Future.result()` before
returning, which blocked asynchronous readers and could surface child failures
synchronously.
## Impact
Scalar global-index scans now fall back safely instead of returning
incomplete results. Batch-vector callers receive an immediately returned Future
whose results retain input order and whose failures remain asynchronous.
## Tests
- `python3 -m pytest pypaimon/tests/union_global_index_reader_test.py
pypaimon/tests/global_index_evaluator_test.py
pypaimon/tests/vector_search_filter_test.py
pypaimon/tests/lumina_vector_index_test.py
pypaimon/tests/vindex_vector_index_test.py -q`
- `80 passed, 1 skipped, 15 subtests passed`
- `pycodestyle` and `pyflakes` on changed files
- Python license-header check: 642 files valid
- `git diff --check`
The bundled `flake8` launcher could not start because its plugin manager is
incompatible with the installed `importlib-metadata`; the underlying style and
unused-symbol checks were run separately.
--
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]