[
https://issues.apache.org/jira/browse/HIVE-3945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13565126#comment-13565126
]
Frankline Jose S commented on HIVE-3945:
----------------------------------------
Hi Caofangkun,
Query is slightly modified in ( alias b )table, typecasted summation value to
String cast(sum(b.value) as String) as value
Jose (key) - 2.1700977105416958E-287 (value)
<==> After <==>
Jose (key) - jose (value)
table :- (key String, value String )
input :-
Jose - jose
Arun - arun
10 - 10
10 - 100
10.20 - 10.20
33 - 35
33 - 5
- 22
Query :-
select c.key, c.value from (
select a.key, a.value from uniontbl a limit 3
union all
select b.key, cast(sum(b.value) as String) as value from uniontbl b
group by b.key )c
output:-
22.0
10 110.0
10.20 10.2
33 40.0
Arun 0.0
Jose 0.0 -- above records belongs to alias b ( b.key, sum( b.value) )
Jose jose -- below records belongs to alias a ( a.key, a.value )
Arun arun
10 10
> 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