void copyDoubleColumn(ColumnVector destination,
                        ColumnVector source,
                        int sourceOffset,
                        int length) {
    DoubleColumnVector castedSource = (DoubleColumnVector) source;
    DoubleColumnVector castedDestination = (DoubleColumnVector) destination;
    if (source.isRepeating) {
      castedDestination.isRepeating = true;
      castedDestination.noNulls = castedSource.noNulls;
      castedDestination.isNull[0] = castedSource.isNull[0];
      castedDestination.vector[0] = castedSource.vector[0];
    } else {
      if (!castedSource.noNulls) {
        castedDestination.noNulls = true;
        for(int r=0; r < length; ++r) {
          castedDestination.isNull[r] = castedSource.isNull[sourceOffset + r];
        }
      }
      for(int r=0; r < length; ++r) {
        castedDestination.vector[r] = castedSource.vector[sourceOffset + r];
      }
    }
  }
If the current batch is empty, get a new one.
@return true if we have rows available.
@throws IOException
ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java