From 2b67d2300f6dd029e506bc4a16d022b5e0a0e215 Mon Sep 17 00:00:00 2001 From: pancx Date: Sat, 22 Feb 2025 12:14:04 +0800 Subject: [PATCH] [#6493] feat(CLI): Support table format output for Schema and Table command fix some bugs. --- .../apache/gravitino/cli/commands/ListSchema.java | 14 ++++++++++++-- .../apache/gravitino/cli/outputs/TableFormat.java | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListSchema.java b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListSchema.java index 5be4f4fcfe9..69bfb18e80b 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListSchema.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListSchema.java @@ -19,6 +19,8 @@ package org.apache.gravitino.cli.commands; +import org.apache.gravitino.Catalog; +import org.apache.gravitino.Schema; import org.apache.gravitino.cli.CommandContext; import org.apache.gravitino.cli.ErrorMessages; import org.apache.gravitino.client.GravitinoClient; @@ -48,9 +50,12 @@ public ListSchema(CommandContext context, String metalake, String catalog) { @Override public void handle() { String[] schemas = new String[0]; + Catalog tableCatalog = null; + try { GravitinoClient client = buildClient(metalake); - schemas = client.loadCatalog(catalog).asSchemas().listSchemas(); + tableCatalog = client.loadCatalog(catalog); + schemas = tableCatalog.asSchemas().listSchemas(); } catch (NoSuchMetalakeException err) { exitWithError(ErrorMessages.UNKNOWN_METALAKE); } catch (NoSuchCatalogException err) { @@ -64,6 +69,11 @@ public void handle() { return; } - printResults(schemas); + Schema[] schemaObjects = new Schema[schemas.length]; + for (int i = 0; i < schemas.length; i++) { + schemaObjects[i] = tableCatalog.asSchemas().loadSchema(schemas[i]); + } + + printResults(schemaObjects); } } diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java b/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java index f266b81b79c..c3a4fa3647d 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java @@ -616,7 +616,8 @@ public String getOutput(Table table) { columnType.addCell(column.dataType().simpleString()); columnAutoIncrement.addCell(column.autoIncrement()); columnNullable.addCell(column.nullable()); - columnComment.addCell(column.comment().isEmpty() ? "N/A" : column.comment()); + columnComment.addCell( + column.comment() == null || column.comment().isEmpty() ? "N/A" : column.comment()); } return getTableFormat(