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]

Reply via email to