private ArrayList<FieldNode> prunedInputList(List<FieldNode> prunedCols, PTFInputDef tDef) {
      ArrayList<FieldNode> prunedInputCols = new ArrayList<>();

      StructObjectInspector OI = tDef.getOutputShape().getOI();
      for(StructField f : OI.getAllStructFieldRefs()) {
        String fName = f.getFieldName();
        FieldNode fn = lookupColumn(prunedCols, fName);
        if (fn != null) {
          prunedInputCols.add(fn);
        }
      }
      return prunedInputCols;
    }
- 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