[ 
https://issues.apache.org/jira/browse/HIVE-3945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13564169#comment-13564169
 ] 

Frankline Jose S commented on HIVE-3945:
----------------------------------------

Hi, I just tried the following queries, Seems to work fine

// Union all - combine the result-set of two or more select statement.
   Union-all allow duplicate values while matches in both tables 

Input
33      35
55      55.62
20      44
55      100
44      44
33      33
33      55
44      44
33
55      55
        55

Query :>

select c.key, c.value from (
select a.key, a.value from uniontbl a where a.key='33'
union all
select b.key, sum( b.value) as value from uniontbl b where b.key='33'
group by b.key
)c;

o/p: 
33      35.0
33      33.0
33      55.0
33      NULL    --> current and above line blongs to alia  a   ( a.key, a.value 
)
33      123.0   --> belongs to alias b ( b.key, sum( b.value) )

select c.key, c.value  from (
select a.key, a.value from uniontbl a where a.key='55'
union all
select b.key, sum( b.value) as value from uniontbl b where b.key='55'
group by b.key )c

o/p
55      55.62
55      100.0
55      55.0    --> current and above line blongs to alia  a   ( a.key, a.value 
)
55      210.62  --> belongs to alias b ( b.key, sum( b.value) )


Can you give me an example scenario for this, in case I have misunderstood the 
problem. 


                
> 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