public void visit()

in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/tools/lineage/ParentColumnFinder.java [318:336]


  public void visit(ResolvedSetOperationScan setOperationScan) {
    List<ResolvedColumn> generatedColumns = setOperationScan.getColumnList();
    List<ResolvedSetOperationItem> setOperationItems = setOperationScan.getInputItemList();

    for (int i = 0; i < generatedColumns.size(); i++) {
      int columnIndex = i;
      ResolvedColumn generatedColumn = generatedColumns.get(columnIndex);
      List<ResolvedColumn> parentColumns =
          setOperationItems.stream()
              .map(ResolvedSetOperationItem::getOutputColumnList)
              .map(outputColumnList -> outputColumnList.get(columnIndex))
              .collect(Collectors.toList());
      addParentsToColumn(generatedColumn, parentColumns);
    }

    setOperationItems.stream()
        .map(ResolvedSetOperationItem::getScan)
        .forEach(innerScan -> innerScan.accept(this));
  }