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)