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