[ 
https://issues.apache.org/jira/browse/DRILL-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16214135#comment-16214135
 ] 

ASF GitHub Bot commented on DRILL-5878:
---------------------------------------

Github user HanumathRao commented on a diff in the pull request:

    https://github.com/apache/drill/pull/996#discussion_r146118431
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SchemaUtilites.java
 ---
    @@ -77,6 +77,22 @@ public static SchemaPlus findSchema(final SchemaPlus 
defaultSchema, final String
         return findSchema(defaultSchema, schemaPathAsList);
       }
     
    +  /**
    +   * Utility function to get the commonPrefix schema between two supplied 
schemas.
    +   * @param defaultSchema default schema
    +   * @param schemaPath current schema path
    +   * @param isCaseSensitive true if caseSensitive comparision is required.
    +   * @return common prefix schemaPath
    +   */
    +  public static String getPrefixSchemaPath(final String defaultSchema, 
final String schemaPath, final boolean isCaseSensitive) {
    +    if (!isCaseSensitive) {
    +      return Strings.commonPrefix(defaultSchema.toLowerCase(), 
schemaPath.toLowerCase());
    --- End diff --
    
    @paul-rogers  Thank you for this catch. I did try out some examples which 
were throwing schemanotfound exception. I have changed the code to handle it. 
getDefaultSchemaPath of session object returns the defaultSchema as String, 
hence I converted the SchemaPath to String by SchemaPathJOINER. As pointed out 
by your comment, this will loose some context information if the "." is part of 
the name. However, I also think that there is a bug in the defaultSchema code 
path as it is also loosing this information by converting it to String. For now 
I am not fixing that bug (which I am planning to fix in another JIRA) as I am 
not sure   about the changes in setting defaultSchema.
    
    Coming on to the specific valid use case which was throwing schemaNotFound 
exception is
    in dfs I have introduced "tmp.tmp1" in place of tmp.
    
    And if I query select * from dfs.`tmp.tmp1`.`employee.json` limit 1; this 
query reports SchemaNotFound exception even though a workspace with name 
tmp.tmp1 exists.
    
    This is currently working with new changes.


> TableNotFound exception is being reported for a wrong storage plugin.
> ---------------------------------------------------------------------
>
>                 Key: DRILL-5878
>                 URL: https://issues.apache.org/jira/browse/DRILL-5878
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: SQL Parser
>    Affects Versions: 1.11.0
>            Reporter: Hanumath Rao Maduri
>            Assignee: Hanumath Rao Maduri
>            Priority: Minor
>             Fix For: 1.12.0
>
>
> Drill is reporting TableNotFound exception for a wrong storage plugin. 
> Consider the following query where employee.json is queried using cp plugin.
> {code}
> 0: jdbc:drill:zk=local> select * from cp.`employee.json` limit 10;
> +--------------+--------------------+-------------+------------+--------------+-------------------------+-----------+----------------+-------------+------------------------+----------+----------------+-------------------+-----------------+---------+--------------------+
> | employee_id  |     full_name      | first_name  | last_name  | position_id  
> |     position_title      | store_id  | department_id  | birth_date  |       
> hire_date        |  salary  | supervisor_id  |  education_level  | 
> marital_status  | gender  |  management_role   |
> +--------------+--------------------+-------------+------------+--------------+-------------------------+-----------+----------------+-------------+------------------------+----------+----------------+-------------------+-----------------+---------+--------------------+
> | 1            | Sheri Nowmer       | Sheri       | Nowmer     | 1            
> | President               | 0         | 1              | 1961-08-26  | 
> 1994-12-01 00:00:00.0  | 80000.0  | 0              | Graduate Degree   | S    
>            | F       | Senior Management  |
> | 2            | Derrick Whelply    | Derrick     | Whelply    | 2            
> | VP Country Manager      | 0         | 1              | 1915-07-03  | 
> 1994-12-01 00:00:00.0  | 40000.0  | 1              | Graduate Degree   | M    
>            | M       | Senior Management  |
> | 4            | Michael Spence     | Michael     | Spence     | 2            
> | VP Country Manager      | 0         | 1              | 1969-06-20  | 
> 1998-01-01 00:00:00.0  | 40000.0  | 1              | Graduate Degree   | S    
>            | M       | Senior Management  |
> | 5            | Maya Gutierrez     | Maya        | Gutierrez  | 2            
> | VP Country Manager      | 0         | 1              | 1951-05-10  | 
> 1998-01-01 00:00:00.0  | 35000.0  | 1              | Bachelors Degree  | M    
>            | F       | Senior Management  |
> | 6            | Roberta Damstra    | Roberta     | Damstra    | 3            
> | VP Information Systems  | 0         | 2              | 1942-10-08  | 
> 1994-12-01 00:00:00.0  | 25000.0  | 1              | Bachelors Degree  | M    
>            | F       | Senior Management  |
> | 7            | Rebecca Kanagaki   | Rebecca     | Kanagaki   | 4            
> | VP Human Resources      | 0         | 3              | 1949-03-27  | 
> 1994-12-01 00:00:00.0  | 15000.0  | 1              | Bachelors Degree  | M    
>            | F       | Senior Management  |
> | 8            | Kim Brunner        | Kim         | Brunner    | 11           
> | Store Manager           | 9         | 11             | 1922-08-10  | 
> 1998-01-01 00:00:00.0  | 10000.0  | 5              | Bachelors Degree  | S    
>            | F       | Store Management   |
> | 9            | Brenda Blumberg    | Brenda      | Blumberg   | 11           
> | Store Manager           | 21        | 11             | 1979-06-23  | 
> 1998-01-01 00:00:00.0  | 17000.0  | 5              | Graduate Degree   | M    
>            | F       | Store Management   |
> | 10           | Darren Stanz       | Darren      | Stanz      | 5            
> | VP Finance              | 0         | 5              | 1949-08-26  | 
> 1994-12-01 00:00:00.0  | 50000.0  | 1              | Partial College   | M    
>            | M       | Senior Management  |
> | 11           | Jonathan Murraiin  | Jonathan    | Murraiin   | 11           
> | Store Manager           | 1         | 11             | 1967-06-20  | 
> 1998-01-01 00:00:00.0  | 15000.0  | 5              | Graduate Degree   | S    
>            | M       | Store Management   |
> +--------------+--------------------+-------------+------------+--------------+-------------------------+-----------+----------------+-------------+------------------------+----------+----------------+-------------------+-----------------+---------+--------------------+
> {code}
> However if cp1 is used instead of cp then Drill reports TableNotFound 
> exception.
> {code}
> 0: jdbc:drill:zk=local> select * from cp1.`employee.json` limit 10;
> Oct 16, 2017 1:40:02 PM org.apache.calcite.sql.validate.SqlValidatorException 
> <init>
> SEVERE: org.apache.calcite.sql.validate.SqlValidatorException: Table 
> 'cp1.employee.json' not found
> Oct 16, 2017 1:40:02 PM org.apache.calcite.runtime.CalciteException <init>
> SEVERE: org.apache.calcite.runtime.CalciteContextException: From line 1, 
> column 15 to line 1, column 17: Table 'cp1.employee.json' not found
> Error: VALIDATION ERROR: From line 1, column 15 to line 1, column 17: Table 
> 'cp1.employee.json' not found
> SQL Query null
> [Error Id: 280cb38f-4d71-4027-afbc-86df542f8f9a on 
> laptop-npjh4dhd.corp.maprtech.com:31010] (state=,code=0)
> {code}
> Ideally this should report an error similar to invalid schema.



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

Reply via email to