public VariableWidthBlockBuilder(VariableWidthType type, BlockBuilderStatus blockBuilderStatus) { super(type); this.blockBuilderStatus = Objects.requireNonNull(blockBuilderStatus, "blockBuilderStatus is null"); this.sliceOutput = new DynamicSliceOutput((int) (blockBuilderStatus.getMaxBlockSizeInBytes() * 1.2)); }
private void entryAdded(int bytesWritten, boolean isNull) { if (valueIsNull.length <= positions) { growCapacity(); } valueIsNull[positions] = isNull; offsets[positions + 1] = sliceOutput.size(); positions++; blockBuilderStatus.addBytes(SIZE_OF_BYTE + SIZE_OF_INT + bytesWritten); }
@Override public boolean isFull() { return blockBuilderStatus.isFull(); }
private void entryAdded(int bytesWritten) { blockBuilderStatus.addBytes(SIZE_OF_BYTE + bytesWritten); if (sliceOutput.size() >= blockBuilderStatus.getMaxBlockSizeInBytes()) { blockBuilderStatus.setFull(); } }