You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Xuefu Zhang (JIRA)" <ji...@apache.org> on 2013/11/12 07:16:17 UTC

[jira] [Updated] (HIVE-5800) Hive is inconsistent when handling strings in arithmetic operations

     [ https://issues.apache.org/jira/browse/HIVE-5800?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xuefu Zhang updated HIVE-5800:
------------------------------

    Description: 
Currently Hive is inconsistent in dealing with strings involved in arithmetic operations. For instance:
{code}
hive> desc test;
OK
i                   	int                 	None                
b                   	boolean             	None                
d                   	double              	None                
s                   	string              	None                
dec                 	decimal(5,2)        	None                
Hive> explain select dec/s from test;
...
STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Alias -> Map Operator Tree:
        test 
          TableScan
            alias: test
            Select Operator
              expressions:
                    expr: (dec / s)
                    type: decimal(65,30)
              outputColumnNames: _col0
hive> explain select dec*s from test;
...
STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Alias -> Map Operator Tree:
        test 
          TableScan
            alias: test
            Select Operator
              expressions:
                    expr: (dec * s)
                    type: double
{code}
MySQL consistently treats string in arithmetic operations as double (not an exact numeric type) and derives the operator result type accordingly. Hive should also be consistent.
{code}

{code}

  was:
Currently Hive is inconsistent in dealing with strings involved in arithmetic operations. For instance:
{code}
hive> desc test;
OK
i                   	int                 	None                
b                   	boolean             	None                
d                   	double              	None                
s                   	string              	None                
dec                 	decimal(5,2)        	None                
Hive> explain select dec/s from test;
...
STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Alias -> Map Operator Tree:
        test 
          TableScan
            alias: test
            Select Operator
              expressions:
                    expr: (dec / s)
                    type: decimal(65,30)
              outputColumnNames: _col0
hive> explain select dec*s from test;
...
STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Alias -> Map Operator Tree:
        test 
          TableScan
            alias: test
            Select Operator
              expressions:
                    expr: (dec * s)
                    type: double
{code}
MySQL consistently treats string in arithmetic operations as double and derives the operator result type accordingly. Hive should also be consistent.
{code}

{code}


> Hive is inconsistent when handling strings in arithmetic operations
> -------------------------------------------------------------------
>
>                 Key: HIVE-5800
>                 URL: https://issues.apache.org/jira/browse/HIVE-5800
>             Project: Hive
>          Issue Type: Bug
>          Components: Types
>    Affects Versions: 0.12.0
>            Reporter: Xuefu Zhang
>            Assignee: Xuefu Zhang
>
> Currently Hive is inconsistent in dealing with strings involved in arithmetic operations. For instance:
> {code}
> hive> desc test;
> OK
> i                   	int                 	None                
> b                   	boolean             	None                
> d                   	double              	None                
> s                   	string              	None                
> dec                 	decimal(5,2)        	None                
> Hive> explain select dec/s from test;
> ...
> STAGE PLANS:
>   Stage: Stage-1
>     Map Reduce
>       Alias -> Map Operator Tree:
>         test 
>           TableScan
>             alias: test
>             Select Operator
>               expressions:
>                     expr: (dec / s)
>                     type: decimal(65,30)
>               outputColumnNames: _col0
> hive> explain select dec*s from test;
> ...
> STAGE PLANS:
>   Stage: Stage-1
>     Map Reduce
>       Alias -> Map Operator Tree:
>         test 
>           TableScan
>             alias: test
>             Select Operator
>               expressions:
>                     expr: (dec * s)
>                     type: double
> {code}
> MySQL consistently treats string in arithmetic operations as double (not an exact numeric type) and derives the operator result type accordingly. Hive should also be consistent.
> {code}
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)