xiaobai0529 opened a new pull request, #54910: URL: https://github.com/apache/arrow/pull/54910
## Summary - Route the Substrait decimal conversion through \Decimal128Type::Make()\. - Add a regression test using the 220-byte plan from GH-50230. ## Root cause The decimal arm used \FromProtoImpl<Decimal128Type>\, which constructs the type with \std::make_shared\ and bypasses the validating factory. An untrusted precision of 42 reached the constructor's fatal \ARROW_CHECK_OK\, aborting \DeserializePlan\ instead of returning \Status::Invalid\. Fixes #50230 ## Verification - Without the production change, the regression test aborts at \Decimal precision out of range [1, 38]: 42\. - With the change, focused regression test passes. - Full \rrow-substrait-substrait-test\ suite: 101 passed. - \clang-format --dry-run --Werror\ and \git diff --check\ passed. ## AI assistance I used an AI coding assistant for investigation and drafting this patch. I reviewed the final diff and ran the before/after tests locally. -- 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]
