protected boolean fillDrawBuffer(ScatteringByteChannel channel) throws IOException { reset(); int readBytes = memory.writeBytes(channel); if (readBytes > 0) { // get row capacity in buffer while (memory.isReadable()) { if (memory.readableBytes() < SizeOf.SIZE_OF_INT) { return true; } int recordSize = PlatformDependent.getInt(memory.address() + memory.readerPosition()); assert recordSize > 0; if (memory.readableBytes() < recordSize) { return true; } else { memory.readerPosition(memory.readerPosition() + recordSize); } rowNum++; } return true; } else { return false; } }
@Override public void release() { memoryBlock.release(); } }
@Override public void forward(int length) { memoryBlock.writerPosition(memoryBlock.writerPosition() + length); }
byte[] uncompressedBytes = new byte[memoryBlock.readableBytes()]; memoryBlock.getBuffer().getBytes(0, uncompressedBytes); resultSetBuilder.setSerializedTuples(ByteString.copyFrom(compressedBytes)); } else { ByteBuffer uncompressed = memoryBlock.getBuffer().nioBuffer(0, memoryBlock.readableBytes()); resultSetBuilder.setDecompressedLength(uncompressed.remaining()); resultSetBuilder.setSerializedTuples(ByteString.copyFrom(uncompressed));
if (memoryRowBlock.getMemory().isReadable()) {
public long remainForRead() { return memoryBlock.readableBytes(); }
@Override public void set(MemoryBlock memoryBlock, int relativePos, DataType[] types) { this.buffer = memoryBlock.getBuffer(); this.types = types; super.set(relativePos); }
@Override public long address() { return memoryBlock.address(); }
public HeapRowBlockReader(MemoryBlock memoryBlock, DataType[] dataTypes, int rows) { this.dataTypes = dataTypes; this.rows = rows; this.memoryBlock = memoryBlock.duplicate(); }
@Override public void clear() { reset(); memory.clear(); }
@Override public int capacity() { return memory.capacity(); }
byte[] uncompressedBytes = new byte[memoryBlock.readableBytes()]; memoryBlock.getBuffer().getBytes(0, uncompressedBytes); resultSetBuilder.setSerializedTuples(ByteString.copyFrom(compressedBytes)); } else { ByteBuffer uncompressed = memoryBlock.getBuffer().nioBuffer(0, memoryBlock.readableBytes()); resultSetBuilder.setDecompressedLength(uncompressed.remaining()); resultSetBuilder.setSerializedTuples(ByteString.copyFrom(uncompressed));
@Override public void flush() throws IOException { if(!hasExternalBuf && rowBlock.getMemory().isReadable()) { writeRowBlock(rowBlock); rowBlock.clear(); } }
public long remainForRead() { return memoryBlock.readableBytes(); }
@Override public void set(MemoryBlock memoryBlock, int relativePos, DataType[] types) { this.buffer = memoryBlock.getBuffer(); this.types = types; super.set(relativePos); }
@Override public long address() { return memoryBlock.address(); }
public HeapRowBlockReader(MemoryBlock memoryBlock, DataType[] dataTypes, int rows) { this.dataTypes = dataTypes; this.rows = rows; this.memoryBlock = memoryBlock.duplicate(); }
@Override public void clear() { reset(); memory.clear(); }
@Override public int capacity() { return memory.capacity(); }
protected boolean fillDrawBuffer(ScatteringByteChannel channel) throws IOException { reset(); int readBytes = memory.writeBytes(channel); if (readBytes > 0) { // get row capacity in buffer while (memory.isReadable()) { if (memory.readableBytes() < SizeOf.SIZE_OF_INT) { return true; } int recordSize = PlatformDependent.getInt(memory.address() + memory.readerPosition()); assert recordSize > 0; if (memory.readableBytes() < recordSize) { return true; } else { memory.readerPosition(memory.readerPosition() + recordSize); } rowNum++; } return true; } else { return false; } }