Hi,

As the request of Kunal Khatua, I push this curiosity found in Drill 1.15.0
The Jira ticket is : https://issues.apache.org/jira/browse/DRILL-6978

I realized that TypeOf (drillTypeOf and sqlTypeOf) functions works
when request files but doesn't work in certain case
on "generated" data

This first request works :

SELECT typeof(md5), drillTypeOf(md5), sqlTypeOf(md5)
FROM dfs.tmp.`mytable.csv` LIMIT 2;
+----------+----------+--------------------+
|  EXPR$0  |  EXPR$1  |       EXPR$2       |
+----------+----------+--------------------+
| VARCHAR  | VARCHAR  | CHARACTER VARYING  |
| VARCHAR  | VARCHAR  | CHARACTER VARYING  |
+----------+----------+--------------------+


But this second doesn't :
SELECT typeOf(a) FROM (SELECT CAST (5 AS int) AS a) x;
Error: SYSTEM ERROR: IllegalArgumentException: Can not set
org.apache.drill.exec.vector.complex.reader.FieldReader field
org.apache.drill.exec.expr.fn.impl.UnionFunctions$GetType.input to
org.apache.drill.exec.expr.holders.IntHolder


And in a surprising way this third query works :
SELECT md5, typeof(t), drillTypeOf(t), sqlTypeOf(t)
FROM ((SELECT 'foo' AS t) UNION (SELECT 'bar' AS t)) x;
+-------+----------+----------+--------------------+
|  md5  |  EXPR$1  |  EXPR$2  |       EXPR$3       |
+-------+----------+----------+--------------------+
| foo   | VARCHAR  | VARCHAR  | CHARACTER VARYING  |
| bar   | VARCHAR  | VARCHAR  | CHARACTER VARYING  |
+-------+----------+----------+--------------------+

Thanks for any explanation and/or correction if necessary.

Reply via email to