Dale Lane created FLINK-40166:
---------------------------------

             Summary: SQL query parsing fails if current catalog is unreachable
                 Key: FLINK-40166
                 URL: https://issues.apache.org/jira/browse/FLINK-40166
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
            Reporter: Dale Lane
         Attachments: flink-catalog-repro.zip

To recreate:
 * consider two catalogs: "workingcatalog" which is reachable, and 
"brokencatalog" which is not
 * set the current catalog to “brokencatalog”
 * parse a fully-qualified SQL statement which accesses a table in 
workingcatalog, such as “SELECT * FROM 
workingcatalog.workingdatabase.workingtable;”

This will fail with a CatalogException

The stack trace shows that this is because Flink is attempting to call 
databaseExists for the database “workingdatabase” but in the current catalog 
(“brokencatalog”).

{{Caused by: org.apache.flink.table.catalog.exceptions.CatalogException: Failed 
to connect to Kafka cluster for database 'workingdatabase' of catalog 
'brokencatalog'. }}
{{        at 
org.apache.flink.table.catalog.CatalogManager.lambda$permanentDatabaseExists$14(CatalogManager.java:1064)}}
{{        at java.base/java.util.Optional.map(Optional.java:260)}}
{{        at 
org.apache.flink.table.catalog.CatalogManager.permanentDatabaseExists(CatalogManager.java:1064)}}
{{        at 
org.apache.flink.table.catalog.CatalogManager.schemaExists(CatalogManager.java:1052)}}
{{        at 
org.apache.flink.table.planner.catalog.CatalogCalciteSchema.getSubSchema(CatalogCalciteSchema.java:61)}}
{{        at 
org.apache.calcite.jdbc.SimpleCalciteSchema.getImplicitSubSchema(SimpleCalciteSchema.java:146)}}
{{        at 
org.apache.calcite.jdbc.CalciteSchema.getSubSchema(CalciteSchema.java:260)}}
{{        at 
org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java:135)}}
{{        at 
org.apache.calcite.sql.validate.EmptyScope.resolveTable(EmptyScope.java:101)}}
{{        at 
org.apache.calcite.sql.validate.DelegatingScope.resolveTable(DelegatingScope.java:230)}}
{{        at 
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:116)}}
{{        at 
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:189)}}
{{        at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:88)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1133)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1108)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3486)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3468)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3823)}}
{{        at 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:61)}}
{{        at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:88)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1133)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1108)}}
{{        at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:282)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1075)}}
{{        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:824)}}
{{        at 
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:201)}}
{{        ... 5 more}}

 

A standalone recreate is attached



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to