Yuliya Feldman created DRILL-4597:
-------------------------------------
Summary: Calcite type validation assertions when
planner.enable_type_inference is enabled for system tables
Key: DRILL-4597
URL: https://issues.apache.org/jira/browse/DRILL-4597
Project: Apache Drill
Issue Type: Bug
Components: Query Planning & Optimization
Reporter: Yuliya Feldman
With calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11 and type inference
enabled following query fails:
select concat(hostname, ':', user_port) from sys.drillbits where `current`=true;
with below exception
at
org.apache.calcite.sql.type.SqlTypeFactoryImpl.createSqlType(SqlTypeFactoryImpl.java:62)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.drill.exec.planner.sql.TypeInferenceUtils$DrillConcatSqlReturnTypeInference.inferReturnType(TypeInferenceUtils.java:420)
~[classes/:na]
at org.apache.calcite.sql.SqlOperator.inferReturnType(SqlOperator.java:468)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at org.apache.calcite.sql.SqlOperator.validateOperands(SqlOperator.java:435)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:287)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:222)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:4288)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:4275)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:130)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1495)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1478)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:440)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:3447)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:2995)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:86)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:877)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:863)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:210)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:837)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:551)
~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
at
org.apache.drill.exec.planner.sql.SqlConverter.validate(SqlConverter.java:155)
~[classes/:na]
at
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode(DefaultSqlHandler.java:596)
~[classes/:na]
at
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:192)
~[classes/:na]
at
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:164)
~[classes/:na]
at
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:94)
~[classes/:na]
at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:970)
[classes/:na]
at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:254)
[classes/:na]
So far we could not repro it on non-system tables, but any type inference on
system table leads to the exception
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)