[
https://issues.apache.org/jira/browse/ARROW-8568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17091300#comment-17091300
]
Jacek Pliszka commented on ARROW-8568:
--------------------------------------
The problem is here:
```
{color:#267f99}DecimalStatus{color}
{color:#267f99}BasicDecimal128{color}{color:#000000}::{color}{color:#795e26}Rescale{color}{color:#000000}({color}{color:#0000ff}int32_t{color}
{color:#001080}original_scale{color}{color:#000000},
{color}{color:#0000ff}int32_t{color}
{color:#001080}new_scale{color}{color:#000000},{color}
{color:#267f99}BasicDecimal128{color}{color:#0000ff}*{color}
{color:#001080}out{color}{color:#000000})
{color}{color:#0000ff}const{color}{color:#000000} {{color}
{color:#795e26}DCHECK_NE{color}{color:#000000}(out,
{color}{color:#0000ff}nullptr{color}{color:#000000});{color}
{color:#795e26}DCHECK_NE{color}{color:#000000}(original_scale,
new_scale);{color}
```
Firstly there is design question - should calling Rescale with original_scale
== new_scale be allowed ?
If not - I can fix it in my code somewhere. But IMHO Rescale should allow for
that and should handle data overflow then.
> [C++][Python] Crash on decimal cast in debug mode
> -------------------------------------------------
>
> Key: ARROW-8568
> URL: https://issues.apache.org/jira/browse/ARROW-8568
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++, Python
> Affects Versions: 0.17.0
> Reporter: Antoine Pitrou
> Priority: Major
>
> {code:python}
> >>> arr = pa.array([Decimal('123.45')])
> >>>
> >>>
> >>> arr
> >>>
> >>>
> <pyarrow.lib.Decimal128Array object at 0x7efbbddd4210>
> [
> 123.45
> ]
> >>> arr.type
> >>>
> >>>
> Decimal128Type(decimal(5, 2))
> >>> arr.cast(pa.decimal128(4, 2))
> >>>
> >>>
> ../src/arrow/util/basic_decimal.cc:626: Check failed: (original_scale) !=
> (new_scale)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)