[
https://issues.apache.org/jira/browse/HIVE-20174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16558956#comment-16558956
]
Matt McCline commented on HIVE-20174:
-------------------------------------
The new Aggregation Unit Tests drive a set of random rows through row-mode
GenericUDAF*Evaluator* classes and through the vector-mode VectorUDAF* classes.
The random rows are fixed up to make sure interesting batches are created with
repeating values and repeating NULLs (I think I mentioned this in an earlier
JIRA).
So, I haven't been looking at formulating queries. I have found driving random
data against all data types and all aggregation functions to be so much more
fruitful than trying to write queries. I discovered to my surprise that some
of the VectorUDAF* were maintaining a isNull flag and using it to output NULLs
when the GenericUDAF*Evaluator* were not doing that.
> Vectorization: Fix NULL / Wrong Results issues in GROUP BY Aggregation
> Functions
> --------------------------------------------------------------------------------
>
> Key: HIVE-20174
> URL: https://issues.apache.org/jira/browse/HIVE-20174
> Project: Hive
> Issue Type: Bug
> Components: Hive
> Reporter: Matt McCline
> Assignee: Matt McCline
> Priority: Critical
> Fix For: 4.0.0
>
> Attachments: HIVE-20174.01.patch, HIVE-20174.02.patch,
> HIVE-20174.03.patch, HIVE-20174.04.patch, HIVE-20174.05.patch
>
>
> Write new UT tests that use random data and intentional isRepeating batches
> to checks for NULL and Wrong Results for vectorized aggregation functions.
>
> BUGs found:
> 1) AVG/VARIANCE (family) in PARTIAL1 mode was returning NULL instead of count
> = 0, sum = 0 (All data types). For AVG DECIMAL, only return NULL if there
> was an overflow.
> 2) AVG/MIN/MAX was not detecting repeated NULL correctly for the TIMESTAMP,
> INTERVAL_DAY_TIME, and String Family. Eliminated redundant code.
> 3) Fix incorrect calculation for VARIANCE (family) in PARTIAL2 and FINAL
> modes (HIVE-18758).
> 4) Fix row-mode AVG DECIMAL to enforce output type precision and scale in
> COMPLETE and FINAL modes.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)