hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "caofangkun (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-3945) union all datatype do not match may result wrong result
Date Tue, 29 Jan 2013 07:09:12 GMT

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

caofangkun commented on HIVE-3945:
----------------------------------

Hi Frankline Jose S  
"cast(sum(b.value) as String) as value"  is a walkaround way to  solve the problem.
but do you think it's necessary that we'd better throw an exception like below in this situation
?
Exception like:
FAILED: Error in semantic analysis: Schema of both sides of union should match


                
> 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

Mime
View raw message