arup-chauhan opened a new pull request, #4159:
URL: https://github.com/apache/solr/pull/4159
## Description
This PR adds parity coverage for `SOLR-18039` by validating repeated
`parents.preFilter` behavior on the byte-vector nested KNN paths. The core
parser fix was merged in [#4139](https://github.com/apache/solr/pull/4139);
this follow-up keeps scope narrow to test coverage only.
## Context from issue discussion
In [`SOLR-18039`](https://issues.apache.org/jira/browse/SOLR-18039), we
fixed repeated `parents.preFilter` handling and added focused float-path
coverage. The remaining gap
was parity validation for equivalent byte-vector nested parent-retrieval
flows, so this PR closes that gap without extending scope into parser
refactoring yet.
## Changes
- Added parity tests for repeated `parents.preFilter` in byte-vector
nested parent retrieval.
- Added parity tests for repeated `parents.preFilter` in byte-vector
nested parent retrieval with child `preFilter`.
- Assertions verify intersection semantics for multiple parent filters,
matching the expected behavior already covered on the float path.
## Behavior / Safety
- Compatibility: no API or runtime behavior changes.
- Fallback path: existing query execution and filter wiring remain
unchanged; this PR only adds coverage.
- Risk boundary: test-only change, focused on regression protection for
the byte-vector path.
- Unchanged: parser logic, scoring behavior, request parameter contract,
and single-filter behavior from
[#4139](https://github.com/apache/solr/pull/4139).
## Validation
Ran with Java `21` active (`jenv`/`JAVA_HOME` set to `21`):
- `./gradlew -p solr/core test --tests
org.apache.solr.search.join.BlockJoinNestedVectorsQParserTest --tests
org.apache.solr.search.join.BlockJoinNestedVectorsParentQParserTest`
Outcome: `BUILD SUCCESSFUL` (`:solr:core:test`, `17` tests).
- `./gradlew tidy`
Outcome: `BUILD SUCCESSFUL`.
- `./gradlew check -x test`
Outcome: `BUILD SUCCESSFUL`.
## Follow-ups
A separate small cleanup PR can still be done to consolidate shared
filter-subquery parsing between `preFilter` and `parents.preFilter` paths,
keeping behavior unchanged.
--
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]