in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/tools/lineage/ColumnLineageExtractor.java [96:116]
private static Set<ColumnLineage> extractColumnLevelLineageForOutputColumns(
String targetTableName,
List<ResolvedOutputColumn> outputColumns,
ResolvedStatement statement) {
HashSet<ColumnLineage> result = new HashSet<>();
for (ResolvedOutputColumn outputColumn : outputColumns) {
List<ResolvedColumn> expandedResolvedColumns = expandColumn(outputColumn.getColumn());
for (ResolvedColumn expandedResolvedColumn : expandedResolvedColumns) {
List<ResolvedColumn> parentColumns =
ParentColumnFinder.findParentsForColumn(statement, expandedResolvedColumn);
ColumnLineage lineageEntry =
buildColumnLineage(targetTableName, outputColumn.getName(), parentColumns);
result.add(lineageEntry);
}
}
return result;
}