in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/tools/lineage/ParentColumnFinder.java [168:182]
private List<ResolvedColumn> expandColumn(ResolvedColumn column) {
ArrayList<ResolvedColumn> result = new ArrayList<>();
result.add(column);
Type type = column.getType();
if (type.isStruct()) {
type.asStruct().getFieldList().stream()
.map(field -> buildColumnSubfield(column, field.getName(), field.getType()))
.flatMap(subColumn -> expandColumn(subColumn).stream())
.forEachOrdered(result::add);
}
return result;
}