Paul Rogers created DRILL-6376:
----------------------------------

             Summary: Doc: Return type of ROUND(x, y), TRUNC(x, y), TO_NUMBER 
is wrong
                 Key: DRILL-6376
                 URL: https://issues.apache.org/jira/browse/DRILL-6376
             Project: Apache Drill
          Issue Type: Bug
    Affects Versions: 1.13.0
            Reporter: Paul Rogers
            Assignee: Bridget Bevens


The documentation for [math 
functions|http://drill.apache.org/docs/math-and-trig/] claims that the return 
value of {{ROUND(x, y)}} and {{TRUNC(x, y)}} is {{DECIMAL}}. A test shows that 
this is not true:

{noformat}
SELECT typeof(ROUND(a, 2)) FROM (VALUES (1.2345)) AS T(a);
+---------+
| EXPR$0  |
+---------+
| FLOAT8  |
+---------+
SELECT typeof(TRUNC(a, 2)) FROM (VALUES (1.2345)) AS T(a);
+---------+
| EXPR$0  |
+---------+
| FLOAT8  |
+---------+
{noformat}

Maybe it is {{DECIMAL}} only if we enable decimal type? Let's try:

{noformat}
ALTER SESSION SET `planner.enable_decimal_data_type` = true;
SELECT typeof(TRUNC(a, 2)) FROM (VALUES (1.2345)) AS T(a);
+---------+
| EXPR$0  |
+---------+
| FLOAT8  |
+---------+
{noformat}

So, {{ROUND()}} and {{TRUNC()}} actually return {{DOUBLE}}.

The [type convertion|http://drill.apache.org/docs/data-type-conversion/] 
documentation says that {{TO_NUMBER(str, fmt)}} returns {{DECIMAL}}. Let's try:

{noformat}
ALTER SESSION SET `planner.enable_decimal_data_type` = true;
SELECT typeof(TO_NUMBER(a, '0')) FROM (VALUES ('1')) AS T(a);
+---------+
| EXPR$0  |
+---------+
| FLOAT8  |
+---------+
{noformat}

So, {{TO_NUMBER()}} actually returns {{DOUBLE}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to