You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Gopal Vijayaraghavan (Jira)" <ji...@apache.org> on 2020/02/04 23:04:00 UTC

[jira] [Created] (HIVE-22828) Decimal64: NVL & CASE statements implicitly convert decimal64 to 128

Gopal Vijayaraghavan created HIVE-22828:
-------------------------------------------

             Summary: Decimal64: NVL & CASE statements implicitly convert decimal64 to 128 
                 Key: HIVE-22828
                 URL: https://issues.apache.org/jira/browse/HIVE-22828
             Project: Hive
          Issue Type: Bug
            Reporter: Gopal Vijayaraghavan


{code}
select  
sum(case when (ss_item_sk=1) then ss_sales_price else null end),
sum(case when (ss_item_sk=2) then ss_sales_price else ss_sales_price+1 end),
sum(case when (ss_item_sk=2) then 1.0BD+ss_sales_price else null end)
from store_sales where ss_sold_date_sk % 1111 = 1;
{code}

{code}
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.Decimal64ColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector
        at org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector.setElement(DecimalColumnVector.java:130)
        at org.apache.hadoop.hive.ql.exec.vector.expressions.IfExprColumnNull.evaluate(IfExprColumnNull.java:125)
        at org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.VectorUDAFSumDecimal.aggregateInputSelection(VectorUDAFSumDecimal.java:113)
        at org.apache.hadoop.hive.ql.exec.vector.VectorGroupByOperator$ProcessingModeBase.processAggregators(VectorGroupByOperator.java:221)
        at org.apache.hadoop.hive.ql.exec.vector.VectorGroupByOperator$ProcessingModeHashAggregate.doProcessBatch(VectorGroupByOperator.java:414)
{code}

https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java#L3950



--
This message was sent by Atlassian Jira
(v8.3.4#803005)