@Override public void setInitialCapacity(int numRecords, double density) { validityAllocationSizeInBytes = BitVectorHelper.getValidityBufferSize(numRecords); super.setInitialCapacity(numRecords, density); }
@Override public void setInitialCapacity(int numRecords) { validityAllocationSizeInBytes = BitVectorHelper.getValidityBufferSize(numRecords); super.setInitialCapacity(numRecords); }
/** * Get the size (number of bytes) of underlying buffers used by this vector. * * @return size of underlying buffers. */ @Override public int getBufferSize() { if (valueCount == 0) { return 0; } return super.getBufferSize() + BitVectorHelper.getValidityBufferSize(valueCount); }
/** * Get the potential buffer size for a particular number of records. * * @param valueCount desired number of elements in the vector * @return estimated size of underlying buffers if the vector holds * a given number of elements */ @Override public int getBufferSizeFor(final int valueCount) { if (valueCount == 0) { return 0; } return super.getBufferSizeFor(valueCount) + BitVectorHelper.getValidityBufferSize(valueCount); }
public StructVector(String name, BufferAllocator allocator, FieldType fieldType, CallBack callBack) { super(name, checkNotNull(allocator), fieldType, callBack); this.validityBuffer = allocator.getEmpty(); this.validityAllocationSizeInBytes = BitVectorHelper.getValidityBufferSize(BaseValueVector.INITIAL_VALUE_ALLOCATION); }
/** * Set the bit at a given index to provided value (1 or 0). Internally * takes care of allocating the buffer if the caller didn't do so. * * @param validityBuffer validity buffer of the vector * @param allocator allocator for the buffer * @param valueCount number of values to allocate/set * @param index index to be set * @param value value to set * @return ArrowBuf */ public static ArrowBuf setValidityBit(ArrowBuf validityBuffer, BufferAllocator allocator, int valueCount, int index, int value) { if (validityBuffer == null) { validityBuffer = allocator.buffer(getValidityBufferSize(valueCount)); } setValidityBit(validityBuffer, index, value); if (index == (valueCount - 1)) { validityBuffer.writerIndex(getValidityBufferSize(valueCount)); } return validityBuffer; }
private void setReaderAndWriterIndex() { validityBuffer.readerIndex(0); validityBuffer.writerIndex(BitVectorHelper.getValidityBufferSize(valueCount)); }
final int sizeInBytes = getValidityBufferSize(valueCount);
@Override protected ArrowBuf read(BufferAllocator allocator, int count) throws IOException { final int bufferSize = BitVectorHelper.getValidityBufferSize(count); ArrowBuf buf = allocator.buffer(bufferSize); // C++ integration test fails without this. buf.setZero(0, bufferSize); for (int i = 0; i < count; i++) { parser.nextToken(); BitVectorHelper.setValidityBit(buf, i, parser.readValueAs(Boolean.class) ? 1 : 0); } buf.writerIndex(bufferSize); return buf; } };
newBuffer = allocator.buffer(getValidityBufferSize(valueCount)); newBuffer.setZero(0, newBuffer.capacity()); if (fieldNode.getNullCount() != 0) {
int firstByteSource = BitVectorHelper.byteIndex(startIndex); int lastByteSource = BitVectorHelper.byteIndex(valueCount - 1); int byteSizeTarget = BitVectorHelper.getValidityBufferSize(length); int offset = startIndex % 8;