[ 
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

Reply via email to