diff --git a/paimon-hive/paimon-hive-catalog/src/main/java/org/apache/paimon/hive/HiveCatalog.java b/paimon-hive/paimon-hive-catalog/src/main/java/org/apache/paimon/hive/HiveCatalog.java index 975c1c0b7aed..0be872a58cbf 100644 --- a/paimon-hive/paimon-hive-catalog/src/main/java/org/apache/paimon/hive/HiveCatalog.java +++ b/paimon-hive/paimon-hive-catalog/src/main/java/org/apache/paimon/hive/HiveCatalog.java @@ -437,17 +437,13 @@ protected void alterDatabaseImpl(String name, List changes) { @Override protected List listTablesImpl(String databaseName) { try { - List allTables = clients.run(client -> client.getAllTables(databaseName)); - List result = new ArrayList<>(allTables.size()); - for (String t : allTables) { - try { - Identifier identifier = new Identifier(databaseName, t); - Table table = getHmsTable(identifier); - if (isPaimonTable(identifier, table) - || (!formatTableDisabled() && isFormatTable(table))) { - result.add(t); - } - } catch (TableNotExistException ignored) { + List tableNames = clients.run(client -> client.getAllTables(databaseName)); + List hmsTables = + clients.run(client -> client.getTableObjectsByName(databaseName, tableNames)); + List result = new ArrayList<>(hmsTables.size()); + for (Table table : hmsTables) { + if (isPaimonTable(table) || (!formatTableDisabled() && isFormatTable(table))) { + result.add(table.getTableName()); } } return result; @@ -479,7 +475,7 @@ public TableSchema getDataTableSchema(Identifier identifier) throws TableNotExis private TableSchema getDataTableSchema(Identifier identifier, Table table) throws TableNotExistException { - if (!isPaimonTable(identifier, table)) { + if (!isPaimonTable(table)) { throw new TableNotExistException(identifier); } @@ -876,7 +872,7 @@ private Table renameHiveTable(Identifier fromTable, Identifier toTable) { protected void alterTableImpl(Identifier identifier, List changes) throws TableNotExistException, ColumnAlreadyExistException, ColumnNotExistException { Table table = getHmsTable(identifier); - if (!isPaimonTable(identifier, table)) { + if (!isPaimonTable(table)) { throw new UnsupportedOperationException("Only data table support alter table."); } @@ -1050,12 +1046,6 @@ public Table getHmsTable(Identifier identifier) throws TableNotExistException { } } - private boolean isPaimonTable(Identifier identifier, Table table) { - return isPaimonTable(table) - && tableExistsInFileSystem( - getTableLocation(identifier, table), identifier.getBranchNameOrDefault()); - } - private static boolean isPaimonTable(Table table) { boolean isPaimonTable = INPUT_FORMAT_CLASS_NAME.equals(table.getSd().getInputFormat())