private void storeListRowColumn(ColumnVector colVector,
                                    Field field, int batchIndex, boolean canRetainByteRef) throws IOException {

      final ListColumnVector listColVector = (ListColumnVector) colVector;
      final ColumnVector elementColVector = listColVector.child;
      int offset = listColVector.childCount;
      listColVector.isNull[batchIndex] = false;
      listColVector.offsets[batchIndex] = offset;

      final ListComplexTypeHelper listHelper = (ListComplexTypeHelper) field.getComplexHelper();

      int listLength = 0;
      while (deserializeRead.isNextComplexMultiValue()) {

        // Ensure child size.
        final int childCapacity = listColVector.child.isNull.length;
        if (childCapacity < offset / 0.75) {
          listColVector.child.ensureSize(childCapacity * 2, true);
        }

        storeComplexFieldRowColumn(
                elementColVector, listHelper.getElementField(), offset, canRetainByteRef);
        offset++;
        listLength++;
      }

      listColVector.childCount += listLength;
      listColVector.lengths[batchIndex] = listLength;
    }
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