JingsongLi opened a new pull request, #10551: URL: https://github.com/apache/paimon/pull/10551
### Purpose Move existing PyPaimon numeric REST authorization filters and column masks onto the Native path, and correct the Python execution path to Java semantics. Depends on apache/paimon-rust#1125. Kept as draft until that Rust change is available on main: CI still builds Rust main and is not pinned to a fork or PR branch. ### Changes - Share Java numeric conversions between schema-evolution reads and authorization CASTs: integer narrowing, strict integer/Boolean text parsing, DECIMAL HALF_UP rounding and NULL precision overflow, compact/wide decimal floating conversion, and decimal plain strings. - Preserve Java's original CAST executor when field references are rebound. Keep Number and Decimal runtime classes separate, including original longValue/doubleValue selection and integer-to-Boolean longValue conversion. - Preserve the existing schema-evolution integer-to-DECIMAL capability boundary. Boolean-to-DECIMAL and new CAST categories outside the existing Python subset are excluded. - Add actual Java golden vectors: 68 groups and 628 rows, with boundary results, errors, source rebinding and predicate evaluation order. - Add 162 strict Native integration cases across Append, primary-key and Data Evolution tables, covering masks, hidden dependencies, filtering before LIMIT and per-row short circuiting. Python fallback is blocked. - Add a real old Parquet LargeUtf8 regression, including fractional integer text and NULL values. ### Verification - After rebasing on current Paimon master, authorization, shared casting and nested / primary-key / append schema-evolution reader tests: 684 passed, 2134 subtests passed. - Native numeric, schema-evolution, decimal and authorization coverage: 477 distinct cases covered. After correcting the new disposable Parquet fixture's URL handling and rebuilding its split from updated metadata, its focused rerun plus the three-mode short-circuit suite passed (10 tests). The other 476 cases passed in the full run. - Native checks exercise real Rust planning, reading, writing and committing. - Flake8 passed; all 981 Python source license headers passed; changed files parse as Python 3.6 syntax. The golden results were generated with Paimon Java CastExecutors / PredicateRemapper and independently compared. Double-to-Decimal text was also verified on Java 8. -- 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]
