caofangkun created HIVE-3945:
--------------------------------
Summary: union all datatype do not match may result wrong result
Key: HIVE-3945
URL: https://issues.apache.org/jira/browse/HIVE-3945
Project: Hive
Issue Type: Bug
Components: Query Processor
Affects Versions: 0.9.0
Reporter: caofangkun
Priority: Minor
hive (default)> desc src;
key string
value string
select key, value FROM
( select 'key' as key, 'value' as value -- datatype: string, string
from src s1 limit 1
UNION ALL
select s2.key as key, sum(s2.value) as value -- datatype: strung, double
from src s2 group by s2.key
) unionsrc;
this query exec normally but has wrong result:
key 2.4081029415476845E-282 -- expected is 'value'
35.0
100 100.0
48 0.0
and sometimes when the string title is too long it may case
ArrayIndexOutOfBoundsException:
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.apache.hadoop.io.Text.set(Text.java:205)
at
org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryString.init(LazyBinaryString.java:48)
at
org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryStruct.uncheckedGetField(LazyBinaryStruct.java:216)
at
org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryStruct.getField(LazyBinaryStruct.java:197)
at
org.apache.hadoop.hive.serde2.lazybinary.objectinspector.LazyBinaryStructObjectInspector.getStructFieldData(LazyBinaryStructObjectInspector.java:61)
at
org.apache.hadoop.hive.ql.exec.UnionOperator.processOp(UnionOperator.java:125)
at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira