[ 
https://issues.apache.org/jira/browse/CALCITE-7398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alessandro Solimando updated CALCITE-7398:
------------------------------------------
    Affects Version/s: 1.38.0
                           (was: 1.41.0)

> Incorrect int cast in VariantNonNull#cast for BIGINT
> ----------------------------------------------------
>
>                 Key: CALCITE-7398
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7398
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.38.0
>            Reporter: heng qian
>            Priority: Major
>              Labels: pull-request-available
>
> In `VariantNonNull.java`, the `cast()` method has a bug in the `BIGINT` case 
> at line 289:
> {code:java}
> case BIGINT: {             
>   long l = (int) value;  // Bug: should be (long) value             
>   ...     
> } {code}
>   The value field for BIGINT type is stored as Long (verified by the 
> constructor's assertion assert value instanceof Long). However, the code 
> incorrectly casts it to int before assigning to the long variable.
>   This causes a variant value with BIGINT runtime type to be null, since the 
> cast function throws exception in this place. 
> {code:java}
> java.lang.ClassCastException: class java.lang.Long cannot be cast to class 
> java.lang.Integer (java.lang.Long and java.lang.Integer are in module 
> java.base of loader 'bootstrap'){code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to