You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2017/11/03 23:19:00 UTC

[jira] [Created] (DRILL-5930) Table function escape handling does not handle lone backslash

Paul Rogers created DRILL-5930:
----------------------------------

             Summary: Table function escape handling does not handle lone backslash
                 Key: DRILL-5930
                 URL: https://issues.apache.org/jira/browse/DRILL-5930
             Project: Apache Drill
          Issue Type: Bug
    Affects Versions: 1.11.0
            Reporter: Paul Rogers
            Assignee: Paul Rogers
            Priority: Minor


Consider the following query from the test framework ({{Functional/table_function/positive/drill-3149_10.q}}):

{code}
select * from table(`table_function/colons.txt`(type=>'text',lineDelimiter=>'\\'))
{code}

Notice the double-backslash. Drill translates this into a single backslash. But, what happens if the user provides just a single backslash? Drill translates that into the empty string. Drill passes the empty string to the text reader, which fails with the error described in DRILL-5929.

Better would be to either:

* Leave lone back-slashes unchanged, or
* Fail a query with an lone backslash.

The fix for this bug prefers the first (because it is easiest.) However, this fix does not handle a triple backslash, which will be translated to a single backslash:

* \ \ --> \
* \ --> (nothing)

The code in question:

{code}
class FormatPluginOp ...
  FormatPluginConfig createConfigForTable(TableInstance t) {
...
          param = StringEscapeUtils.unescapeJava(param);
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)