Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-4456

Hive translate function is not working

    XMLWordPrintableJSON

    Details

      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

            Activity

              People

              • Assignee:
                volodymyr Vova Vysotskyi
                Reporter:
                arina Arina Ielchiieva
                Reviewer:
                Vitalii Diravka
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: