public NullableVarBinaryWriterImpl(NullableVarBinaryVector vector, AbstractFieldWriter parent) { super(parent); this.mutator = vector.getMutator(); this.vector = vector; }
@Override public void allocate() { vector.allocateNew(); }
public void fromNotNullable(VarBinaryVector srce) { clear(); final int valueCount = srce.getAccessor().getValueCount(); // Create a new bits vector, all values non-null fillBitsVector(getBitsVector(), valueCount); // Swap the data portion getValuesVector().exchange(srce); lastSet = valueCount; setValueCount(valueCount); } }
@Override public int next() { final Stopwatch watch = Stopwatch.createStarted(); if (keyVector != null) { keyVector.clear(); keyVector.allocateNew(); } if (valueVector != null) { valueVector.clear(); valueVector.allocateNew(); } int recordCount = 0; int batchSize = 0; try { while (recordCount < PER_BATCH_RECORD_COUNT && batchSize < PER_BATCH_BYTES && reader.next(key, value)) { keyVector.getMutator().setSafe(recordCount, key.getBytes(), 0, key.getLength()); valueVector.getMutator().setSafe(recordCount, value.getBytes(), 0, value.getLength()); batchSize += (key.getLength() + value.getLength()); ++recordCount; } keyVector.getMutator().setValueCount(recordCount); valueVector.getMutator().setValueCount(recordCount); logger.debug("Read {} records in {} ms", recordCount, watch.elapsed(TimeUnit.MILLISECONDS)); return recordCount; } catch (IOException ioe) { close(); throw UserException.dataReadError(ioe).addContext("File Path", split.getPath().toString()).build(logger); } }
public byte[] readByteArray() { return vector.getAccessor().getObject(idx()); }
@Override public void clear() { vector.clear(); }
@Override public int getValueCapacity() { return vector.getValueCapacity(); }
VarBinaryVector values = vector.getValuesVector(); vectorMemoryUsage.bitsBytesCapacity = vector.getBitsValueCapacity(); vectorMemoryUsage.offsetsByteCapacity = values.getOffsetVector().getValueCapacity() * INT_VALUE_WIDTH; vectorMemoryUsage.dataByteCapacity = values.getByteCapacity();
public TransferImpl(MaterializedField field, BufferAllocator allocator){ to = new NullableVarBinaryVector(field, allocator); }
public void read(NullableVarBinaryHolder h) { vector.getAccessor().get(idx(), h); }
public void transferTo(NullableVarBinaryVector target){ bits.transferTo(target.bits); values.transferTo(target.values); target.mutator.lastSet = mutator.lastSet; clear(); }
public boolean isSafe(int outIndex) { return outIndex < NullableVarBinaryVector.this.getValueCapacity(); }
public TransferImpl(MaterializedField field, BufferAllocator allocator){ to = new NullableVarBinaryVector(field, allocator); }
@Override public void toNullable(ValueVector nullableVector) { NullableVarBinaryVector dest = (NullableVarBinaryVector) nullableVector; dest.getMutator().fromNotNullable(this); }
public boolean isSet() { return !vector.getAccessor().isNull(idx()); }
public void fromNotNullable(VarBinaryVector srce) { clear(); final int valueCount = srce.getAccessor().getValueCount(); // Create a new bits vector, all values non-null fillBitsVector(getBitsVector(), valueCount); // Swap the data portion getValuesVector().exchange(srce); lastSet = valueCount; setValueCount(valueCount); } }
@Override public DrillBuf[] getBuffers(boolean clear) { final DrillBuf[] buffers = ObjectArrays.concat(bits.getBuffers(false), values.getBuffers(false), DrillBuf.class); if (clear) { for (final DrillBuf buffer:buffers) { buffer.retain(1); } clear(); } return buffers; }
private NullableVarBinaryVector getOrCreateColumnVector(MapVector mv, String qualifier) { int oldSize = mv.size(); NullableVarBinaryVector v = mv.addOrGet(qualifier, COLUMN_TYPE, NullableVarBinaryVector.class); if (oldSize != mv.size()) { v.allocateNew(); } return v; }