protected void setOutputOI(StructObjectInspector outputOI) {
    OI = outputOI;
  }
Based on Hive {@link GenericUDAFEvaluator}. Break up the responsibility of the old AbstractTableFunction
class into a Resolver and Evaluator.
<p>
The Evaluator also holds onto the {@link PartitionedTableFunctionDef}. This provides information
about the arguments to the function, the shape of the Input partition and the Partitioning details.
The Evaluator is responsible for providing the 2 execute methods:
<ol>
<li><b>execute:</b> which is invoked after the input is partitioned; the contract
is, it is given an input Partition and must return an output Partition. The shape of the output
Partition is obtained from the getOutputOI call.
<li><b>transformRawInput:</b> In the case where this function indicates that it will transform the raw input
before it is fed through the partitioning mechanics, this function is called. Again the contract is
t is given an input Partition and must return an Partition. The shape of the output Partition is
obtained from getRawInputOI() call.
</ol>
ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java