@Override public void clear() { vector.clear(); }
public void transferTo(NullableVarBinaryVector target){ bits.transferTo(target.bits); values.transferTo(target.values); target.mutator.lastSet = mutator.lastSet; clear(); }
@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; }
public VarBinaryVector convertToRequiredVector(){ VarBinaryVector v = new VarBinaryVector(getField().getOtherNullableVersion(), allocator); if (v.data != null) { v.data.release(1); } v.data = values.data; v.data.retain(1); clear(); return v; }
@Override public void allocateNew(int totalBytes, int valueCount) { try { values.allocateNew(totalBytes, valueCount); bits.allocateNew(valueCount); } catch(RuntimeException e) { clear(); throw e; } bits.zeroVector(); mutator.reset(); accessor.reset(); }
@Override public boolean allocateNewSafe() { /* Boolean to keep track if all the memory allocations were successful * Used in the case of composite vectors when we need to allocate multiple * buffers for multiple vectors. If one of the allocations failed we need to * clear all the memory that we allocated */ boolean success = false; try { success = values.allocateNewSafe() && bits.allocateNewSafe(); } finally { if (!success) { clear(); } } bits.zeroVector(); mutator.reset(); accessor.reset(); return success; }
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 void load(SerializedField metadata, DrillBuf buffer) { clear(); // the bits vector is the first child (the order in which the children are added in getMetadataBuilder is significant) final SerializedField bitsField = metadata.getChild(0); bits.load(bitsField, buffer); final int capacity = buffer.capacity(); final int bitsLength = bitsField.getBufferLength(); final SerializedField valuesField = metadata.getChild(1); values.load(valuesField, buffer.slice(bitsLength, capacity - bitsLength)); }
@Override public void clear() { vector.clear(); }
public void transferTo(NullableVarBinaryVector target){ bits.transferTo(target.bits); values.transferTo(target.values); target.mutator.lastSet = mutator.lastSet; clear(); }
@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; }
public VarBinaryVector convertToRequiredVector(){ VarBinaryVector v = new VarBinaryVector(getField().getOtherNullableVersion(), allocator); if (v.data != null) { v.data.release(1); } v.data = values.data; v.data.retain(1); clear(); return v; }
@Override public void allocateNew(int totalBytes, int valueCount) { try { values.allocateNew(totalBytes, valueCount); bits.allocateNew(valueCount); } catch(RuntimeException e) { clear(); throw e; } bits.zeroVector(); mutator.reset(); accessor.reset(); }
@Override public boolean allocateNewSafe() { /* Boolean to keep track if all the memory allocations were successful * Used in the case of composite vectors when we need to allocate multiple * buffers for multiple vectors. If one of the allocations failed we need to * clear all the memory that we allocated */ boolean success = false; try { success = values.allocateNewSafe() && bits.allocateNewSafe(); } finally { if (!success) { clear(); } } bits.zeroVector(); mutator.reset(); accessor.reset(); return success; }
@Override public void load(SerializedField metadata, DrillBuf buffer) { clear(); // the bits vector is the first child (the order in which the children are added in getMetadataBuilder is significant) final SerializedField bitsField = metadata.getChild(0); bits.load(bitsField, buffer); final int capacity = buffer.capacity(); final int bitsLength = bitsField.getBufferLength(); final SerializedField valuesField = metadata.getChild(1); values.load(valuesField, buffer.slice(bitsLength, capacity - bitsLength)); }
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); } }