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

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

              Dates

                Created:
                Updated:
                Resolved: