private List<ColumnInfo> buildPrunedRS(List<FieldNode> prunedCols, RowSchema oldRS)
        throws SemanticException {
      ArrayList<ColumnInfo> sig = new ArrayList<ColumnInfo>();
      HashSet<FieldNode> prunedColsSet = new HashSet<>(prunedCols);
      for (ColumnInfo cInfo : oldRS.getSignature()) {
        if (lookupColumn(prunedColsSet, cInfo.getInternalName()) != null) {
          sig.add(cInfo);
        }
      }
      return sig;
    }
- Pruning can only be done for Windowing. PTFs are black boxes,
  we assume all columns are needed.
- add column names referenced in WindowFn args and in WindowFn expressions
  to the pruned list of the child Select Op.
- finally we set the prunedColList on the ColumnPrunerContx;
  and update the RR &amp; signature on the PTFOp.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java