Skip to content

Comments

SOLR-18039: Add byte-path parity tests for repeated parents.preFilter#4159

Open
arup-chauhan wants to merge 1 commit intoapache:mainfrom
arup-chauhan:parents-prefilter-multi-value
Open

SOLR-18039: Add byte-path parity tests for repeated parents.preFilter#4159
arup-chauhan wants to merge 1 commit intoapache:mainfrom
arup-chauhan:parents-prefilter-multi-value

Conversation

@arup-chauhan
Copy link
Contributor

@arup-chauhan arup-chauhan commented Feb 23, 2026

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, this follow-up keeps scope narrow to test coverage only.

Context from issue discussion

In 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.

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.

Signed-off-by: Arup Chauhan <arupchauhan.connect@gmail.com>
@arup-chauhan
Copy link
Contributor Author

Hey @epugh @alessandrobenedetti, as mentioned, here is the quick update:

  • Added byte-path parity coverage for repeated parents.preFilter.
  • Included both variants: with and without child preFilter.
  • Re-ran focused validation locally (test for the two nested-vector suites, tidy, and check -x test) and all passed.

This is test-only follow-up coverage; no parser/runtime behavior changes.

@arup-chauhan arup-chauhan changed the title Add byte-path parity tests for repeated parents.preFilter SOLR-18039: Add byte-path parity tests for repeated parents.preFilter Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant