Repository navigation
[core] Register IsNaN for predicate JSON deserialization - #10917
Merged
JingsongLi merged 1 commit intoNov 1, 2026
Merged
Conversation
Contributor
|
+1 |
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.
Purpose
An
IS_NANrow filter returned by query authorization fails while planning a scan withCould not resolve leaf function 'IS_NAN'.IsNaNalready serializes to this name, butLeafFunctiondoes not register it for JSON deserialization.Register
IsNaN.INSTANCEwith the existing leaf functions.Tests
PredicateJsonSerdeTestfor exact JSON parsing and serialization round trips.IsNaNQueryAuthTest: write and commit a Parquet table containing NaN, a finite number, signed zeros, infinities and null; then read only the ID column under anIS_NANauthorization filter and check that only the NaN row remains. The catalog response is mocked; table storage, scanning and reading use the real implementation.The four new JSON parsing checks and both table-read cases fail on the upstream baseline before the fix. With the fix, the same five test classes pass: 125 JUnit invocations, including the existing query-auth and split serialization tests. The existing serde test provider also invokes no-op branches for fixtures that do not apply to a given test method.
Validated on Windows with JDK 8, with Checkstyle, Spotless and Enforcer enabled. The fresh reactor was packaged first to prepare codegen-loader resources; the final test run used:
mvn -o -B -ntp -pl paimon-core -am -DwildcardSuites=none -DfailIfNoTests=false \ -Dtest=PredicateJsonSerdeTest,IsNaNQueryAuthTest,TableQueryAuthResultTest,QueryAuthSplitTest,NestedFieldQueryAuthTest test