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

Kevin Liew updated PHOENIX-2536:
--------------------------------
    Description: 
ANSI SQL specifies that 
{quote}If SUM is specified and DT is exact numeric with scale
              S, then the data type of the result is exact numeric with
              implementation-defined precision and scale S.
...
If DT is approximate numeric, then the data type of the
              result is approximate numeric with implementation-defined
              precision not less than the precision of DT.{quote}

However, when summing integer types (first operand) with float or double 
(second operand), Phoenix returns the value with the same data type as the 
first operand. 

Doing a sum with the first operand being a FLOAT or DOUBLE will return a 
DECIMAL with a fixed scale of 4. 

Doing any multiplication or division will also result in a DECIMAL with scale 4.

In all of the cases outlined above, the return data type does not meet the ANSI 
standard.

  was:
ANSI SQL specifies that 
{quote}If SUM is specified and DT is exact numeric with scale
              S, then the data type of the result is exact numeric with
              implementation-defined precision and scale S.
...
If DT is approximate numeric, then the data type of the
              result is approximate numeric with implementation-defined
              precision not less than the precision of DT.{quote}

However, when summing integer types (first operand) with float or double 
(second operand), Phoenix returns the value with the same data type as the 
first operand. 


> Return of aggregation functions do not have the correct data type
> -----------------------------------------------------------------
>
>                 Key: PHOENIX-2536
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2536
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.6.0
>            Reporter: Kevin Liew
>              Labels: function, phoenix
>
> ANSI SQL specifies that 
> {quote}If SUM is specified and DT is exact numeric with scale
>               S, then the data type of the result is exact numeric with
>               implementation-defined precision and scale S.
> ...
> If DT is approximate numeric, then the data type of the
>               result is approximate numeric with implementation-defined
>               precision not less than the precision of DT.{quote}
> However, when summing integer types (first operand) with float or double 
> (second operand), Phoenix returns the value with the same data type as the 
> first operand. 
> Doing a sum with the first operand being a FLOAT or DOUBLE will return a 
> DECIMAL with a fixed scale of 4. 
> Doing any multiplication or division will also result in a DECIMAL with scale 
> 4.
> In all of the cases outlined above, the return data type does not meet the 
> ANSI standard.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to