You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2016/01/19 00:35:39 UTC

[jira] [Updated] (HIVE-12826) Vectorization: fix VectorUDAF* suspect isNull checks

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

Gopal V updated HIVE-12826:
---------------------------
    Summary: Vectorization: fix VectorUDAF* suspect isNull checks  (was: Vectorization: VectorUDAF* suspect isNull checks)

> Vectorization: fix VectorUDAF* suspect isNull checks
> ----------------------------------------------------
>
>                 Key: HIVE-12826
>                 URL: https://issues.apache.org/jira/browse/HIVE-12826
>             Project: Hive
>          Issue Type: Bug
>          Components: Vectorization
>    Affects Versions: 1.3.0, 2.0.0, 2.1.0
>            Reporter: Gopal V
>            Assignee: Gopal V
>         Attachments: HIVE-12826.1.patch
>
>
> for isRepeating=true, checking isNull[selected[i]] might return incorrect results (without a heavy array fill of isNull).
> VectorUDAFSum/Min/Max/Avg and SumDecimal impls need to be reviewed for this pattern.
> {code}
>     private void iterateHasNullsRepeatingSelectionWithAggregationSelection(
>       VectorAggregationBufferRow[] aggregationBufferSets,
>       int aggregateIndex,
>       <ValueType> value,
>       int batchSize,
>       int[] selection,
>       boolean[] isNull) {
>       
>       for (int i=0; i < batchSize; ++i) {
>         if (!isNull[selection[i]]) {
>           Aggregation myagg = getCurrentAggregationBuffer(
>             aggregationBufferSets, 
>             aggregateIndex,
>             i);
>           myagg.sumValue(value);
>         }
>       }
>     }
> {code}



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