[ https://issues.apache.org/jira/browse/ARROW-17601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17643984#comment-17643984 ]
Apache Arrow JIRA Bot commented on ARROW-17601: ----------------------------------------------- This issue was last updated over 90 days ago, which may be an indication it is no longer being actively worked. To better reflect the current state, the issue is being unassigned per [project policy|https://arrow.apache.org/docs/dev/developers/bug_reports.html#issue-assignment]. Please feel free to re-take assignment of the issue if it is being actively worked, or if you plan to start that work soon. > [C++] Error when creating Expression on Decimal128 types: precision out of > range > -------------------------------------------------------------------------------- > > Key: ARROW-17601 > URL: https://issues.apache.org/jira/browse/ARROW-17601 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Reporter: Neal Richardson > Assignee: Yibo Cai > Priority: Major > > Reproducer in R: > {code} > library(arrow) > library(dplyr) > tab <- Table$create(col1 = 1:4, col2 = 5:8) > tab <- tab$cast(schema(col1 = decimal128(33, 4), col2 = decimal128(15, 2))) > tab %>% mutate(col1 * col2) > # Error: Invalid: Decimal precision out of range [1, 38]: 49 > # /Users/me/arrow/cpp/src/arrow/compute/kernels/scalar_arithmetic.cc:1078 > DecimalType::Make(left_type.id(), precision, scale) > # /Users/me/arrow/cpp/src/arrow/compute/exec/expression.cc:413 > call.kernel->signature->out_type().Resolve(&kernel_context, types) > {code} > We don't have this problem integers and floats (see comment below). For > consistency with the other arithmetic functions, what I would expect would be > that we would expand the precision as much as we could within Decimal128–in > this case, Decimal128(38, 6)–and the compute function would either error _if_ > there is an overflow (in the _checked version) or just overflow in the > non-checked version. But it wouldn't error on determining the output type. -- This message was sent by Atlassian Jira (v8.20.10#820010)