in zetasql-toolkit-spanner/src/main/java/com/google/zetasql/toolkit/catalog/spanner/SpannerResourceProviderImpl.java [164:184]
private List<SimpleTable> fetchTables(Statement query) {
Map<String, List<SimpleColumn>> tableColumns = new HashMap<>();
try (ResultSet resultSet = this.dbClient.singleUse().executeQuery(query)) {
while (resultSet.next()) {
String tableName = resultSet.getString("table_name");
String columnName = resultSet.getString("column_name");
String columnTypeStr = resultSet.getString("spanner_type");
Type columnType = ZetaSQLTypeParser.parse(columnTypeStr);
SimpleColumn column = new SimpleColumn(tableName, columnName, columnType);
tableColumns.computeIfAbsent(tableName, key -> new ArrayList<>()).add(column);
}
}
return tableColumns.entrySet().stream()
.map(
tableAndColumns ->
CatalogOperations.buildSimpleTable(
tableAndColumns.getKey(), tableAndColumns.getValue()))
.collect(Collectors.toList());
}