Hello, 

I just tried Drill with MS SQL Server and I found that Drill treats table names 
case-sensitively, contrary to https://drill.apache.org/docs/lexical-structure/ 
which indicates that table names are "case-insensitive unless enclosed in 
double quotation marks”. This presents a problem for users and existing SQL 
scripts that expect table names to be case-insensitive.

This works: select * from mysandbox.dbo.AD_Role
This does not work: select * from mysandbox.dbo.ad_role

I will paste the verbose error log below.
 
Regards,
Paul Mogren



2016-02-29 17:43:15,754 [292b367c-61e3-5ae5-9b8a-2dadb12f47e1:foreman] INFO  
o.a.drill.exec.work.foreman.Foreman - Query text for query id 
292b367c-61e3-5ae5-9b8a-2dadb12f47e1: select * from mysandbox.dbo.ad_role
2016-02-29 17:43:16,288 [292b367c-61e3-5ae5-9b8a-2dadb12f47e1:foreman] INFO  
o.a.d.e.planner.sql.DrillSqlWorker - User Error Occurred
org.apache.drill.common.exceptions.UserException: VALIDATION ERROR: From line 
1, column 15 to line 1, column 23: Table 'mysandbox.dbo.ad_role' not found




[Error Id: 6f4c3d19-c8d2-4ae1-8dab-0d0e46c9480f ]
        at 
org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:543)
 ~[drill-common-1.5.0.jar:1.5.0]
        at 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:202)
 [drill-java-exec-1.5.0.jar:1.5.0]
        at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:924) 
[drill-java-exec-1.5.0.jar:1.5.0]
        at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:250) 
[drill-java-exec-1.5.0.jar:1.5.0]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[na:1.8.0_40]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[na:1.8.0_40]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40]
Caused by: org.apache.calcite.tools.ValidationException: 
org.apache.calcite.runtime.CalciteContextException: From line 1, column 15 to 
line 1, column 23: Table 'mysandbox.dbo.ad_role' not found
        at 
org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:189) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.prepare.PlannerImpl.validateAndGetType(PlannerImpl.java:198) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode(DefaultSqlHandler.java:451)
 ~[drill-java-exec-1.5.0.jar:1.5.0]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:198)
 ~[drill-java-exec-1.5.0.jar:1.5.0]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:167)
 ~[drill-java-exec-1.5.0.jar:1.5.0]
        at 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:199)
 [drill-java-exec-1.5.0.jar:1.5.0]
        ... 5 common frames omitted
Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1, 
column 15 to line 1, column 23: Table 'mysandbox.dbo.ad_role' not found
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method) ~[na:1.8.0_40]
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 ~[na:1.8.0_40]
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 ~[na:1.8.0_40]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
~[na:1.8.0_40]
        at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:405) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:714) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:702) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:3931)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:106)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:86)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:877)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:863)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:2778)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:2763)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:2986)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:86)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:877)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:863)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:210) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:837)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:551)
 ~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at 
org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:187) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        ... 10 common frames omitted
Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Table 
'mysandbox.dbo.ad_role' not found
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method) ~[na:1.8.0_40]
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 ~[na:1.8.0_40]
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 ~[na:1.8.0_40]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
~[na:1.8.0_40]
        at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:405) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]
        at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:514) 
~[calcite-core-1.4.0-drill-r10.jar:1.4.0-drill-r10]


Reply via email to