void copyTimestampColumn(ColumnVector destination,
                           ColumnVector source,
                           int sourceOffset,
                           int length) {
    TimestampColumnVector castedSource = (TimestampColumnVector) source;
    TimestampColumnVector castedDestination = (TimestampColumnVector) destination;
    castedDestination.isRepeating = castedSource.isRepeating;
    castedDestination.noNulls = castedSource.noNulls;
    if (source.isRepeating) {
      castedDestination.isNull[0] = castedSource.isNull[0];
      castedDestination.time[0] = castedSource.time[0];
      castedDestination.nanos[0] = castedSource.nanos[0];
    } else {
      if (!castedSource.noNulls) {
        castedDestination.noNulls = true;
        for(int r=0; r < length; ++r) {
          castedDestination.isNull[r] = castedSource.isNull[sourceOffset + r];
          castedDestination.time[r] = castedSource.time[sourceOffset + r];
          castedDestination.nanos[r] = castedSource.nanos[sourceOffset + r];
        }
      } else {
        for (int r = 0; r < length; ++r) {
          castedDestination.time[r] = castedSource.time[sourceOffset + r];
          castedDestination.nanos[r] = castedSource.nanos[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