private void convertRowColumn(VectorizedRowBatch batch, int batchIndex,
      Field field, int logicalColumnIndex) throws IOException {

    final int projectionColumnIndex = projectionColumnNums[logicalColumnIndex];
    final ColumnVector colVector = batch.cols[projectionColumnIndex];
    Object convertSourceWritable =
            field.deserializer.convert(colVector, batchIndex, field);

    /*
     * Convert our source object we just read into the target object and store that in the
     * VectorizedRowBatch.
     */
    convertVectorAssignRow.assignConvertRowColumn(
        batch, batchIndex, logicalColumnIndex, convertSourceWritable);
  }
Convert one row column value that is the current value in deserializeRead.

We deserialize into a writable and then pass that writable to an instance of VectorAssignRow
to convert the writable to the target data type and assign it into the VectorizedRowBatch.

@param batch
@param batchIndex
@param logicalColumnIndex
@throws IOException
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java