[ 
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)

Reply via email to