[
https://issues.apache.org/jira/browse/ARROW-14110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17432548#comment-17432548
]
David Li commented on ARROW-14110:
----------------------------------
See ML discussion at
[https://lists.apache.org/thread.html/r8cc9d7af40351b1f172c5b71b605aae8d8168b6910bc5d797a5387a6%40%3Cdev.arrow.apache.org%3E].
Some notes:
* [SQL
Server|https://docs.microsoft.com/en-us/sql/t-sql/data-types/precision-scale-and-length-transact-sql?view=sql-server-ver15]
not only saturates at max precision, but can also reduce scale to try to
accomodate.
* Other types do not promote to wider types automatically, so decimal may be
an exception in this regard.
* We may add options for different such behaviors as needed.
> [C++] Decimal promotion rules should consider inflating type
> ------------------------------------------------------------
>
> Key: ARROW-14110
> URL: https://issues.apache.org/jira/browse/ARROW-14110
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++
> Reporter: Weston Pace
> Priority: Major
> Labels: kernel
>
> I'm not sure how strongly I feel about this but, for example:
> {code:python}
> Decimal(20, 4) / Decimal(20, 4) => Decimal(41, 21)
> {code}
> Decimal(20, 4) is in range for 128 but Decimal(41, 21) is out of range for
> 128 (but in range for 256).
> Currently calling divide with two 128 bit decimals will fail but it could
> promote to a decimal 256.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)