@Override public List<QualifiedTableName> listTables(QualifiedTablePrefix prefix) { checkNotNull(prefix, "prefix is null"); String schemaNameOrNull = prefix.getSchemaName().orNull(); LinkedHashSet<QualifiedTableName> tables = new LinkedHashSet<>(); for (ConnectorMetadataEntry entry : allConnectorsFor(prefix.getCatalogName())) { for (QualifiedTableName tableName : transform( entry.getMetadata().listTables(schemaNameOrNull), convertFromSchemaTableName(prefix.getCatalogName()))) { tables.add(tableName); } } return ImmutableList.copyOf(tables); }
@Override public Map<QualifiedTableName, List<ColumnMetadata>> listTableColumns( QualifiedTablePrefix prefix) { checkNotNull(prefix, "prefix is null"); LinkedHashMap<QualifiedTableName, List<ColumnMetadata>> tableColumns = new LinkedHashMap<>(); for (ConnectorMetadataEntry connectorMetadata : allConnectorsFor(prefix.getCatalogName())) { for (Entry<SchemaTableName, List<ColumnMetadata>> entry : connectorMetadata .getMetadata() .listTableColumns(prefix.asSchemaTablePrefix()) .entrySet()) { QualifiedTableName tableName = new QualifiedTableName( prefix.getCatalogName(), entry.getKey().getSchemaName(), entry.getKey().getTableName()); if (!tableColumns.containsKey(tableName)) { tableColumns.put(tableName, entry.getValue()); } } } return ImmutableMap.copyOf(tableColumns); }