diff --git a/dinky-client/dinky-client-base/src/main/java/org/dinky/utils/FlinkTableMetadataUtil.java b/dinky-client/dinky-client-base/src/main/java/org/dinky/utils/FlinkTableMetadataUtil.java index 5260c5fdcf..7863e78176 100644 --- a/dinky-client/dinky-client-base/src/main/java/org/dinky/utils/FlinkTableMetadataUtil.java +++ b/dinky-client/dinky-client-base/src/main/java/org/dinky/utils/FlinkTableMetadataUtil.java @@ -26,7 +26,9 @@ import org.dinky.data.model.Table; import org.dinky.executor.CustomTableEnvironment; +import org.apache.flink.table.catalog.CatalogBaseTable; import org.apache.flink.table.catalog.ObjectIdentifier; +import org.apache.flink.table.catalog.ObjectPath; import org.apache.flink.table.types.logical.DecimalType; import org.apache.flink.table.types.logical.LogicalType; import org.apache.flink.table.types.logical.TimestampType; @@ -65,6 +67,15 @@ public static void setSchemaInfo( customTableEnvironment.useDatabase(database); for (String tableName : customTableEnvironment.getCatalogManager().listTables(catalogName, database)) { Table table = Table.build(tableName, catalogName); + customTableEnvironment.getCatalogManager().getCatalog(catalogName).ifPresent(t -> { + try { + CatalogBaseTable baseTable = t.getTable(new ObjectPath(database, tableName)); + table.setComment(baseTable.getComment()); + table.setOptions(baseTable.getOptions().toString()); + } catch (Exception e) { + // nothing to do + } + }); tables.add(table); } schema.setTables(tables); @@ -99,6 +110,7 @@ public static List getColumnList( .type(logicalType.getTypeRoot().name()) .keyFlag(isPrimaryKey.get()) .isNullable(logicalType.isNullable()) + .comment(flinkColumn.getComment().orElse("")) .position(i) .build(); if (logicalType instanceof VarCharType) {