Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.5.0
Description
In Hive "select translate(name, 'A', 'B') from users" works fine.
But in Drill "select translate(name, 'A', 'B') from hive.`users`" returns the following error:
org.apache.drill.common.exceptions.UserRemoteException: PARSE ERROR: Encountered "," at line 1, column 22. Was expecting one of: "USING" ... "NOT" ... "IN" ... "BETWEEN" ... "LIKE" ... "SIMILAR" ... "=" ... ">" ... "<" ... "<=" ... ">=" ... "<>" ... "+" ... "-" ... "*" ... "/" ... "||" ... "AND" ... "OR" ... "IS" ... "MEMBER" ... "SUBMULTISET" ... "MULTISET" ... "[" ... "." ... "(" ... while parsing SQL query: select translate(name, 'A', 'B') from hive.users ^ [Error Id: ba21956b-3285-4544-b3b2-fab68b95be1f on localhost:31010]
Root cause:
Calcite follows the standard SQL reference.
SQL reference, ISO/IEC 9075-2:2011(E), section 6.30
<character transliteration> ::=
TRANSLATE <left paren> <character value expression>
USING <transliteration name> <right paren>
To fix:
1. add support to translate (expession, from_string, to_string) alternative syntax
2. add unit test in org.apache.drill.exec.fn.hive.TestInbuiltHiveUDFs
Changes can be made directly in Calcite and then upgrade to appropriate Calcite version.
Attachments
Issue Links
- Dependent
-
DRILL-3993 Rebase Drill on Calcite master branch
- Resolved
- links to