Paul Rogers created DRILL-6366:
----------------------------------

             Summary: Inconsistency between typeof(), CAST types
                 Key: DRILL-6366
                 URL: https://issues.apache.org/jira/browse/DRILL-6366
             Project: Apache Drill
          Issue Type: Bug
    Affects Versions: 1.13.0
            Reporter: Paul Rogers


Drill supports the {{CAST(value AS type)}} syntax. However, Drill does not 
support the use of its own {{FLOAT4}} or {{FLOAT8}} types:

{noformat}
SELECT CAST(`balance` AS FLOAT4) AS `balance` FROM `csvh/cust.csvh`;
Error: VALIDATION ERROR: From line 1, column 26 to line 1, column 31: Unknown 
datatype name 'FLOAT4'

SELECT CAST(`balance` AS FLOAT8) AS `balance` FROM `csvh/cust.csvh`;
Error: VALIDATION ERROR: From line 1, column 26 to line 1, column 31: Unknown 
datatype name 'FLOAT8'
{noformat}

As it turns out, Drill requires the types {{FLOAT}} and {{DOUBLE}}

{noformat}
SELECT CAST(`balance` AS FLOAT) AS `balance`  FROM `csvh/cust.csvh`;
+----------+
| balance  |
+----------+
| 456.78   |
+----------+

SELECT CAST(`balance` AS DOUBLE) AS `balance`  FROM `csvh/cust.csvh`;
+----------+
| balance  |
+----------+
| 456.78   |
+----------+
{noformat}

The [documentation|http://drill.apache.org/docs/supported-data-types/] does 
only mention the SQL types ({{FLOAT}}, {{DOUBLE}}), so this may be OK. Except 
that {{typeof()}} reports internal types:

{noformat}
SELECT typeof(CAST(`balance` AS FLOAT)) AS `bal_type`  FROM `csvh/cust.csvh`;
+-----------+
| bal_type  |
+-----------+
| FLOAT4    |
+-----------+

SELECT typeof(CAST(`balance` AS DOUBLE)) AS `bal_type`  FROM `csvh/cust.csvh`;
+-----------+
| bal_type  |
+-----------+
| FLOAT8    |
+-----------+
{noformat}

As noted in DRILL-6362, {{typeof()}} does make up its own type names some 
times. Seems if it is going to make up type names, it should do so consistently 
to emit the type that the user should use in {{CAST}} to get a column of that 
type.




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

Reply via email to