private Object convertUnionRowColumn(
            ColumnVector colVector, int batchIndex, Field field) throws IOException {

      final SettableUnionObjectInspector unionOI = (SettableUnionObjectInspector) field.objectInspector;
      final UnionComplexTypeHelper unionHelper = (UnionComplexTypeHelper) field.getComplexHelper();
      final Field[] fields = unionHelper.getFields();
      final UnionColumnVector unionColumnVector = (UnionColumnVector) colVector;

      final Object union = unionOI.create();
      final int tag = deserializeRead.currentInt;
      unionOI.setFieldAndTag(union, new StandardUnion((byte) tag,
              convertComplexFieldRowColumn(unionColumnVector.fields[tag], batchIndex, fields[tag])), (byte) tag);
      deserializeRead.finishComplexVariableFieldsType();
      return union;
    }
Initialize for converting the source data type that are going to be read with the
DeserializedRead interface passed to the constructor to the target data types desired in
the VectorizedRowBatch.

No projection -- using the column range 0 .. columnCount-1

@param targetTypeInfos
@param columnsToIncludeTruncated
@throws HiveException
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java