[ 
https://issues.apache.org/jira/browse/DRILL-4812?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Lavender updated DRILL-4812:
---------------------------------
    Description: 
Wildcards within the path of a query are not handled on windows and result in a 
"String index out of range" exception.

for example:

{noformat}
0: jdbc:drill:zk=local> SELECT SUM(qty) as num FROM 
dfs.parquet.`/trends/2016/1/*/*/3701`;
Error: VALIDATION ERROR: String index out of range: -1

SQL Query null
{noformat}

----

The problem exists within:

exec\java-exec\src\main\java\org\apache\drill\exec\store\dfs\FileSelection.java

private static Path handleWildCard(final String root)

This function is looking for the index of the system specific PATH_SEPARATOR 
which on windows is '\' (from System.getProperty("file.separator")).  The path 
passed in to handleWildcard will not ever have those type of path separators as 
the Path constructor (from org.apache.hadoop.fs.Path) sets all the path 
separators to '/'.

NOTE:

private static String removeLeadingSlash(String path)

in that same file explicitly looks for '/' and does not use the system specific 
PATH_SEPARATOR.

  was:
Wildcards within the path of a query are not handled on windows and result in a 
"String index out of range" exception.

for example:

0: jdbc:drill:zk=local> SELECT SUM(qty) as num FROM 
dfs.parquet.`/trends/2016/1/*/*/3701`;
Error: VALIDATION ERROR: String index out of range: -1

SQL Query null

----

The problem exists within:

exec\java-exec\src\main\java\org\apache\drill\exec\store\dfs\FileSelection.java

private static Path handleWildCard(final String root)

This function is looking for the index of the system specific PATH_SEPARATOR 
which on windows is '\' (from System.getProperty("file.separator")).  The path 
passed in to handleWildcard will not ever have those type of path separators as 
the Path constructor (from org.apache.hadoop.fs.Path) sets all the path 
separators to '/'.

NOTE:

private static String removeLeadingSlash(String path)

in that same file explicitly looks for '/' and does not use the system specific 
PATH_SEPARATOR.


> Wildcard queries fail on Windows
> --------------------------------
>
>                 Key: DRILL-4812
>                 URL: https://issues.apache.org/jira/browse/DRILL-4812
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Storage - Other
>    Affects Versions: 1.7.0
>         Environment: Windows 7
>            Reporter: Mike Lavender
>              Labels: easyfix, easytest, windows
>
> Wildcards within the path of a query are not handled on windows and result in 
> a "String index out of range" exception.
> for example:
> {noformat}
> 0: jdbc:drill:zk=local> SELECT SUM(qty) as num FROM 
> dfs.parquet.`/trends/2016/1/*/*/3701`;
> Error: VALIDATION ERROR: String index out of range: -1
> SQL Query null
> {noformat}
> ----
> The problem exists within:
> exec\java-exec\src\main\java\org\apache\drill\exec\store\dfs\FileSelection.java
> private static Path handleWildCard(final String root)
> This function is looking for the index of the system specific PATH_SEPARATOR 
> which on windows is '\' (from System.getProperty("file.separator")).  The 
> path passed in to handleWildcard will not ever have those type of path 
> separators as the Path constructor (from org.apache.hadoop.fs.Path) sets all 
> the path separators to '/'.
> NOTE:
> private static String removeLeadingSlash(String path)
> in that same file explicitly looks for '/' and does not use the system 
> specific PATH_SEPARATOR.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to