[ 
https://issues.apache.org/jira/browse/HIVE-13220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15215326#comment-15215326
 ] 

Prasanth Jayachandran commented on HIVE-13220:
----------------------------------------------

[~mmccline] DecimalColumnVector.set() is supposed to set isNull[i] like other 
column vectors. But isNull[i] = false state is not set within 
DecimalColumnVector. The isNull state is set before actually setting the value 
in VectorExpressions which is inconsistent with other column vectors. Like in 
the below branch isNull[i] = false is not set 
https://github.com/apache/hive/blob/master/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DecimalColumnVector.java#L120



> Set isNull[i] = false for non-null decimal values in DecimalColumnVector
> ------------------------------------------------------------------------
>
>                 Key: HIVE-13220
>                 URL: https://issues.apache.org/jira/browse/HIVE-13220
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 2.1.0
>            Reporter: Prasanth Jayachandran
>            Assignee: Matt McCline
>
> When fixing HIVE-13083 noticed that for non-null decimal values, set function 
> does not update the isNull state (isNull[i] should be set to false). Updating 
> this state in DecimalColumnVector breaks all decimal vector filter 
> expressions as the filter expression can change state on it's own.
> {code}
>         System.arraycopy(inputIsNull, 0, outputIsNull, 0, n);
>         for(int i = 0; i != n; i++) {
>           // The following may override a "false" null setting if an error or 
> overflow occurs.
>           DecimalUtil.addChecked(i, vector[i], value, outputColVector);
>         }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to