Skip to content

Fix local IndexQuery result deserialization - #13743

Open
timoninmaxim wants to merge 1 commit into
apache:masterfrom
timoninmaxim:fix/local-index-query-binary
Open

timoninmaxim wants to merge 1 commit into
apache:masterfrom
timoninmaxim:fix/local-index-query-binary

Conversation

@timoninmaxim

@timoninmaxim timoninmaxim commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Summary

Local IndexQuery returned binary keys and values even when the cache was queried without withKeepBinary(). Both local and distributed queries obtain binary entries from IndexQueryProcessor, but only the distributed path converts them after merging sorted pages.

Convert entries when the local query iterator builds its result, after the shared index processor. This preserves binary entries for distributed merge sorting. Add a regression test with POJO keys and values that checks local regular and keep-binary queries and a sorted distributed query.

Testing

  • mvn -pl modules/indexing -am -Dtest=IndexQueryLocalTest -Dsurefire.failIfNoSpecifiedTests=false -DFORK_COUNT_SET_TO_1 test (Java 17): 5 tests passed.
  • The standalone reproducer returned BinaryObjectImpl for local IndexQuery on Ignite 2.17.0 and 2.18.0 before the fix.

@timoninmaxim
timoninmaxim force-pushed the fix/local-index-query-binary branch from f98246e to 302700b Compare October 23, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant