[ 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)