|
36 | 36 |
|
37 | 37 | import java.util.List; |
38 | 38 | import java.util.Map; |
39 | | -import java.util.Objects; |
40 | 39 | import java.util.Optional; |
41 | 40 | import java.util.Set; |
| 41 | +import java.util.function.Function; |
42 | 42 |
|
43 | 43 | import static java.util.Objects.requireNonNull; |
44 | 44 | import static java.util.concurrent.TimeUnit.SECONDS; |
@@ -163,16 +163,19 @@ public Map<SchemaTableName, List<ColumnMetadata>> listTableColumns(ConnectorSess |
163 | 163 | schemaTableNames = listTables(session, Optional.ofNullable(prefix.getSchemaName())); |
164 | 164 | } |
165 | 165 | else { |
166 | | - schemaTableNames = ImmutableList.of(new SchemaTableName(prefix.getSchemaName(), prefix.getTableName())); |
| 166 | + SchemaTableName table = new SchemaTableName(schemaName, prefix.getTableName()); |
| 167 | + if (listTables(session, Optional.ofNullable(schemaName)).contains(table)) { |
| 168 | + schemaTableNames = ImmutableList.of(table); |
| 169 | + } |
| 170 | + else { |
| 171 | + schemaTableNames = ImmutableList.of(); |
| 172 | + } |
167 | 173 | } |
168 | 174 |
|
169 | 175 | return schemaTableNames.stream() |
170 | | - .map(tableName -> { |
171 | | - ConnectorTableHandle handle = getTableHandle(session, tableName); |
172 | | - return handle != null ? Map.entry(tableName, getTableMetadata(session, handle).getColumns()) : null; |
173 | | - }) |
174 | | - .filter(Objects::nonNull) |
175 | | - .collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)); |
| 176 | + .collect(ImmutableMap.toImmutableMap( |
| 177 | + Function.identity(), |
| 178 | + tableName -> getTableMetadata(session, getTableHandle(session, tableName)).getColumns())); |
176 | 179 | } |
177 | 180 |
|
178 | 181 | @Override |
|
0 commit comments