[Bug] Dbeaver cannot see the catalog and table information in the Flink engine
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [X] I have searched in the [issues](https://github.com/apache/incubator-kyuubi/issues?q=is%3Aissue) and found no similar issues.
### Describe the bug
Dbleaver cannot see the catalog and table information in the Flink engine


### Affects Version(s)
1.5.1
### Kyuubi Server Log Output
```logtalk
13:21:26.199 INFO org.apache.kyuubi.operation.ExecuteStatement: Query[e3fc1c1d-a95d-48a3-af82-aa18a245cf64] in ERROR_STATE
13:21:26.199 INFO org.apache.kyuubi.operation.ExecuteStatement: Processing hdpu's query[e3fc1c1d-a95d-48a3-af82-aa18a245cf64]: RUNNING_STATE -> ERROR_STATE, statement: SELECT version(), time taken: 0.015 seconds
13:21:26.210 INFO org.apache.kyuubi.operation.ExecuteStatement: Processing hdpu's query[e3fc1c1d-a95d-48a3-af82-aa18a245cf64]: ERROR_STATE -> CLOSED_STATE, statement: SELECT version()
13:21:26.212 INFO org.apache.kyuubi.client.KyuubiSyncThriftClient: TCloseOperationReq(operationHandle:TOperationHandle(operationId:THandleIdentifier(guid:E6 39 36 60 9B 3D 40 47 91 EE 9A B6 FC 7D 19 42, secret:B9 7D 7F 01 C8 79 4B C6 B9 7C A2 F4 F4 66 09 14), operationType:EXECUTE_STATEMENT, hasResultSet:true)) succeed on engine side
13:21:26.218 INFO org.apache.kyuubi.operation.GetCatalogs: Processing hdpu's query[9ee1eed4-2776-413c-9b86-dbb2fb461468]: INITIALIZED_STATE -> RUNNING_STATE, statement: GET_CATALOGS
13:21:26.221 INFO org.apache.kyuubi.operation.GetCatalogs: Processing hdpu's query[9ee1eed4-2776-413c-9b86-dbb2fb461468]: RUNNING_STATE -> FINISHED_STATE, statement: GET_CATALOGS, time taken: 0.003 seconds
13:21:26.246 INFO org.apache.kyuubi.operation.GetCatalogs: Processing hdpu's query[9ee1eed4-2776-413c-9b86-dbb2fb461468]: FINISHED_STATE -> CLOSED_STATE, statement: GET_CATALOGS
13:21:26.247 INFO org.apache.kyuubi.client.KyuubiSyncThriftClient: TCloseOperationReq(operationHandle:TOperationHandle(operationId:THandleIdentifier(guid:35 CF ED 61 81 66 47 A7 AF 4A 09 8E F1 5E A1 4D, secret:55 9F 18 2C D4 1F 4F 02 82 3F 90 AC 7E E4 BA B6), operationType:GET_CATALOGS, hasResultSet:true)) succeed on engine side
13:21:26.251 INFO org.apache.kyuubi.operation.GetSchemas: Processing hdpu's query[f9040630-a758-4044-9183-d0ab467a86a6]: INITIALIZED_STATE -> RUNNING_STATE, statement: GET_SCHEMAS
13:21:26.255 INFO org.apache.kyuubi.operation.GetSchemas: Processing hdpu's query[f9040630-a758-4044-9183-d0ab467a86a6]: RUNNING_STATE -> FINISHED_STATE, statement: GET_SCHEMAS, time taken: 0.004 seconds
13:21:26.276 INFO org.apache.kyuubi.operation.GetSchemas: Processing hdpu's query[f9040630-a758-4044-9183-d0ab467a86a6]: FINISHED_STATE -> CLOSED_STATE, statement: GET_SCHEMAS
13:21:26.277 INFO org.apache.kyuubi.client.KyuubiSyncThriftClient: TCloseOperationReq(operationHandle:TOperationHandle(operationId:THandleIdentifier(guid:E0 22 97 4E 55 17 41 76 AE C6 88 27 24 EB 3B E9, secret:2F 4A 80 0A E2 4F 43 E5 9D 49 BD CA C3 03 7E F4), operationType:GET_SCHEMAS, hasResultSet:true)) succeed on engine side
13:21:26.281 INFO org.apache.kyuubi.operation.GetTables: Processing hdpu's query[4009764f-e00f-4b64-8577-6c5f388bd1ce]: INITIALIZED_STATE -> RUNNING_STATE, statement: GET_TABLES
13:21:26.285 INFO org.apache.kyuubi.operation.GetTables: Processing hdpu's query[4009764f-e00f-4b64-8577-6c5f388bd1ce]: RUNNING_STATE -> FINISHED_STATE, statement: GET_TABLES, time taken: 0.004 seconds
13:21:26.297 INFO org.apache.kyuubi.operation.GetTables: Processing hdpu's query[4009764f-e00f-4b64-8577-6c5f388bd1ce]: FINISHED_STATE -> CLOSED_STATE, statement: GET_TABLES
13:21:26.298 INFO org.apache.kyuubi.client.KyuubiSyncThriftClient: TCloseOperationReq(operationHandle:TOperationHandle(operationId:THandleIdentifier(guid:FE 75 50 81 BE CC 40 33 B6 25 16 A6 E3 BA DB CF, secret:12 44 23 FD 83 9F 47 21 A7 DF AC B8 94 DD 48 FE), operationType:GET_TABLES, hasResultSet:true)) succeed on engine side
```
### Kyuubi Engine Log Output
```logtalk
Caused by: org.apache.calcite.sql.validate.SqlValidatorException: No match found for function signature version()
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_221]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_221]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_221]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_221]
at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:467) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:560) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:883) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:868) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4861) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.handleUnresolvedFunction(SqlValidatorImpl.java:1814) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:321) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:226) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5710) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5697) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:139) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1736) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1727) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:421) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4061) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3347) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:997) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:975) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:232) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:952) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:704) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:159) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.planner.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:107) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.planner.operations.SqlToOperationConverter.convert(SqlToOperationConverter.java:215) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:101) ~[flink-table_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.client.gateway.local.LocalExecutor.lambda$parseStatement$1(LocalExecutor.java:172) ~[flink-sql-client_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.client.gateway.context.ExecutionContext.wrapClassLoader(ExecutionContext.java:88) ~[flink-sql-client_2.12-1.14.4.jar:1.14.4]
at org.apache.flink.table.client.gateway.local.LocalExecutor.parseStatement(LocalExecutor.java:172) ~[flink-sql-client_2.12-1.14.4.jar:1.14.4]
... 7 more
```
### Kyuubi Server Configurations
```yaml
kyuubi.engine.type FLINK_SQL
```
### Kyuubi Engine Configurations
_No response_
### Additional context
_No response_
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
Contributor guide
Research direction
Start with the GetCatalogs, GetSchemas, and GetTables operations in the server log, then trace how the Flink SQL engine handles DBeaver's metadata requests and the failing SELECT version() query. Reproduce the issue with Kyuubi 1.5.1 and a FLINK_SQL engine; done means DBeaver can display catalog and table information without the metadata requests failing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, scala, sql
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100