public void setValueCount(int count) { vector.setValueCount(count); }
/** * Transfer this vector'data to another vector. The memory associated * with this vector is transferred to the allocator of target vector * for accounting and management purposes. */ @Override public void transfer() { to.clear(); dataTransferPair.transfer(); to.validityBuffer = validityBuffer.transferOwnership(to.allocator).buffer; to.offsetBuffer = offsetBuffer.transferOwnership(to.allocator).buffer; to.lastSet = lastSet; if (valueCount > 0) { to.setValueCount(valueCount); } clear(); }
/** * Slice this vector at desired index and length and transfer the * corresponding data to the target vector. * @param startIndex start position of the split in source vector. * @param length length of the split. */ @Override public void splitAndTransfer(int startIndex, int length) { final int startPoint = offsetBuffer.getInt(startIndex * OFFSET_WIDTH); final int sliceLength = offsetBuffer.getInt((startIndex + length) * OFFSET_WIDTH) - startPoint; to.clear(); to.allocateOffsetBuffer((length + 1) * OFFSET_WIDTH); /* splitAndTransfer offset buffer */ for (int i = 0; i < length + 1; i++) { final int relativeOffset = offsetBuffer.getInt((startIndex + i) * OFFSET_WIDTH) - startPoint; to.offsetBuffer.setInt(i * OFFSET_WIDTH, relativeOffset); } /* splitAndTransfer validity buffer */ splitAndTransferValidityBuffer(startIndex, length, to); /* splitAndTransfer data buffer */ dataTransferPair.splitAndTransfer(startPoint, sliceLength); to.lastSet = length; to.setValueCount(length); }