@Override
      public Object writeValue(ColumnVector column, int row)
          throws HiveException {

        final UnionColumnVector unionColumnVector = (UnionColumnVector) column;
        final int tag = unionColumnVector.tags[row];
        final SettableUnionObjectInspector unionOI =
            (SettableUnionObjectInspector) this.objectInspector;
        ObjectInspector fieldOI = unionOI.getObjectInspectors().get(tag);
        ColumnVector fieldColVector = unionColumnVector.fields[tag];
        final Object value =
            vectorExtractRow.extractRowColumn(
                fieldColVector, unionTypeInfo.getAllUnionObjectTypeInfos().get(tag), fieldOI, row);
        if (value == null) {
          return null;
        }

        unionOI.setFieldAndTag(obj, value, (byte) tag);
        return obj;
      }
Compiles the appropriate vector expression writers based on a struct object
inspector.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java