Repository navigation
fix(graph): compare integral store sort fields across number types - #114
Merged
yuluo-yx merged 1 commit intoOct 7, 2026
Merged
Conversation
dvd233
marked this pull request as ready for review
October 6, 2026 16:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe what this PR does / why we need it
Fix sorting Store fields whose values have different standard integral Java types.
For example, writing
1Land2147483648LtoFileSystemStoreand reading them back produces anIntegerand aLongunder Jackson's default untyped deserialization. Sorting that field currently throwsClassCastException. Values beyond the signed-long range can also becomeBigInteger.This is a minimal ARGI port of alibaba/spring-ai-alibaba#5001, following the contribution-location suggestion. The original PR remains separate.
Does this pull request fix one issue?
NONE in this repository.
Describe how you did it
Byte,Short,Integer,Long, and exactBigIntegervalues throughBigInteger, without floating-point conversion or narrowing large integers.The production change is 14 added lines with private helpers only. No public API, dependency, serialized format, schema, or default serializer setting changes.
Describe how to verify it
Source-bound native validation passed on
e3a102ae0c56b74591814f96453498d09185d67a, based on ARGIe24b9988ae0be6126f2bf927ea94ff9b989691ee, using Maven 3.10.0 and Temurin Java 17.0.20.1:ClassCastExceptionerrors and 3 passing controls, with zero assertion failures or skipped cases.spotless:applywas disabled.The runner checked the exact source commit, tree, parent, and changed-file hashes before and after each phase. Native baseline and candidate regression runs rebuilt 205 production and 88 test sources. The selected tests ran offline with IP egress disabled after dependency warm-up.
Local
make lintalso passed. Full reactor tests, Java 21, live external-service integration, current license-eye 0.9, Extensions, and aggregate compatibility verification are not claimed here.Special notes for reviews
Prepared with AI assistance, including automated tests and independent AI-assisted reviews. No human-review attestation is made. Please pay particular attention to the intentionally narrow integral whitelist and preservation of existing fallback semantics.
The own-fork validation harness is on a separate seven-file validation branch and is not part of this two-file PR. The selected Store suite includes the current locale and filesystem controls, local H2 tests, mocked SQL-dialect tests, and Store/graph integration tests.