diff --git service/src/java/org/apache/hive/service/cli/operation/GetTablesOperation.java service/src/java/org/apache/hive/service/cli/operation/GetTablesOperation.java index 5ccdc94773..18f44c34fe 100644 --- service/src/java/org/apache/hive/service/cli/operation/GetTablesOperation.java +++ service/src/java/org/apache/hive/service/cli/operation/GetTablesOperation.java @@ -113,29 +113,30 @@ public void runInternal() throws HiveSQLException { } String tablePattern = convertIdentifierPattern(tableName, true); - for (String dbName : metastoreClient.getDatabases(schemaPattern)) { - for (TableMeta tableMeta : - metastoreClient.getTableMeta(dbName, tablePattern, tableTypeList)) { - String tableType = tableTypeMapping.mapToClientType(tableMeta.getTableType()); - rowSet.addRow(new Object[]{ - DEFAULT_HIVE_CATALOG, - tableMeta.getDbName(), - tableMeta.getTableName(), - tableType, - tableMeta.getComments(), - null, null, null, null, null - }); - - if (LOG.isDebugEnabled()) { - String debugMessage = getDebugMessage("table", RESULT_SET_SCHEMA); - LOG.debug(debugMessage, DEFAULT_HIVE_CATALOG, tableMeta.getDbName(), - tableMeta.getTableName(), tableType, tableMeta.getComments()); - } - } - if (LOG.isDebugEnabled() && rowSet.numRows() == 0) { - LOG.debug("No table metadata has been returned."); + // Note that the downstream API automatically inserts the default catalog name for our call. + // We should probably process the catalog names properly right here, instead. + // But if you do add catalog support, DO NOT ADD API CALLS PER CATALOG/DB. Use masks. + for (TableMeta tableMeta : + metastoreClient.getTableMeta(schemaPattern, tablePattern, tableTypeList)) { + String tableType = tableTypeMapping.mapToClientType(tableMeta.getTableType()); + rowSet.addRow(new Object[]{ + DEFAULT_HIVE_CATALOG, + tableMeta.getDbName(), + tableMeta.getTableName(), + tableType, + tableMeta.getComments(), + null, null, null, null, null + }); + + if (LOG.isDebugEnabled()) { + String debugMessage = getDebugMessage("table", RESULT_SET_SCHEMA); + LOG.debug(debugMessage, DEFAULT_HIVE_CATALOG, tableMeta.getDbName(), + tableMeta.getTableName(), tableType, tableMeta.getComments()); } } + if (LOG.isDebugEnabled() && rowSet.numRows() == 0) { + LOG.debug("No table metadata has been returned."); + } setState(OperationState.FINISHED); LOG.info("Fetching table metadata has been successfully finished"); } catch (Exception e) {