JingsongLi opened a new pull request, #10531: URL: https://github.com/apache/paimon/pull/10531
## Summary Align PyPaimon's existing DECIMAL schema-evolution reads with Java and Native, and add REST parity regressions. - FLOAT/DOUBLE convert through Java decimal text and HALF_UP rounding. FLOAT first widens to DOUBLE, so FLOAT `1.005` yields `1.00` while DOUBLE `1.005` yields `1.01` at scale 2. - Decimal text supports scientific notation with Java rounding and precision checks. Valid overflow returns NULL after rounding; invalid text and unsupported Java scale ranges fail the read. - DECIMAL-to-DECIMAL changes enforce target precision for scale decreases, increases and equal scales. The previous path could retain out-of-range values or produce `0.00` from floating overflow. - Isolate conversion from caller `decimal` contexts, including mutable DefaultContext, rounding traps and exponent limits. - Share the existing Java floating-point text utility between partition paths and decimal conversion. - Test old/new Parquet files across append, PK and data evolution; projected-out filter columns, single-value stats, NULLs, ROW/ARRAY/MAP values, and nested leaf projection. Native tests fail if planning or reading falls back to Python. Depends on https://github.com/apache/paimon-rust/pull/1118. This PR is draft because Native CI builds Rust main; the locally rebuilt binding already passes these tests. ## Verification - Original Python regressions: 14 failed before the decimal repair; 3 context regressions failed before context isolation. - Focused cast/schema-evolution/schema-manager suites: 228 passed, 32 subtests passed. - Native REST decimal parity suite: 38 passed; 89 Native plans/reads and 62 Native writes/commits exercised. - Changed-file Flake8 passed. - All changed files parse with Python 3.6 grammar. - Independent review verified Java rounding, overflow, context independence and exponent validation. Reference outputs were obtained from actual Java CastExecutors; the Rust parser also passed 2,025 Java differential cases. -- 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]
