JingsongLi opened a new pull request, #1125: URL: https://github.com/apache/paimon-rust/pull/1125
### Purpose PyPaimon already accepts numeric, decimal, Boolean and integer-text REST authorization CASTs, but Native planning rejects many of them. Enable this existing subset in Rust core using Java CAST semantics, so those filters and column masks can stay on the Native path. ### Changes - Share numeric conversions and declared character widths between authorization expressions and schema-evolution readers. - Match Java integer truncation, saturation and narrowing; strict integer/Boolean text parsing; DECIMAL HALF_UP rounding and NULL on precision overflow; compact/wide decimal floating conversion; and decimal plain strings. - Reuse the existing integer default parser and BMP decimal-digit table without changing Format Table behavior. - Normalize LargeUtf8/Utf8View before typed access, including sliced old-file columns. - Validate original CAST source metadata for masks as well as filters. Refuse potentially nullable decimal masks on NOT NULL targets while preserving identity DECIMAL masks. - Add permanent vectors from actual Java CastExecutors / PredicateRemapper: 68 groups and 628 input rows, including ordered predicate evaluation and source rebinding. No new Python binding API. Boolean-to-DECIMAL and additional CAST categories outside the existing Python subset remain outside this change. Rebound source types continue to require the Python executor. ### Verification - `cargo test --locked -p paimon table::query_auth --lib`: 53 passed. - `cargo test --locked -p paimon arrow::evolution --lib`: 26 passed. - Nested evolution: 29 passed; string transforms: 5 passed; integer defaults: 2 passed. - `cargo test --locked -p paimon --test rest_catalog_test query_auth`: 38 passed. - `cargo +1.98.0 fmt --all -- --check` and full workspace Clippy with `--features fulltext,vortex -- -D warnings` passed. - Built the Python binding and verified a real LargeUtf8 old Parquet read with Python fallback blocked. - PyPaimon paired Native integration regressions are being finalized in the companion PR; its CI continues to build Rust main. -- 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]
