@Override public BlockBuilder appendStructureInternal(Block block, int position) { if (!(block instanceof AbstractRowBlock)) { throw new IllegalArgumentException(); } AbstractRowBlock rowBlock = (AbstractRowBlock) block; BlockBuilder entryBuilder = this.beginBlockEntry(); int fieldBlockOffset = rowBlock.getFieldBlockOffset(position); for (int i = 0; i < rowBlock.numFields; i++) { if (rowBlock.getRawFieldBlocks()[i].isNull(fieldBlockOffset)) { entryBuilder.appendNull(); } else { rowBlock.getRawFieldBlocks()[i].writePositionTo(fieldBlockOffset, entryBuilder); } } closeEntry(); return this; }
private static Block createTestBlock() { RowBlockBuilder blockBuilder = (RowBlockBuilder) TYPE.createBlockBuilder(null, 3); SingleRowBlockWriter singleRowBlockWriter; singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, 1); VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice("cat")); blockBuilder.closeEntry(); singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, 2); VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice("cats")); blockBuilder.closeEntry(); singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, 3); VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice("dog")); blockBuilder.closeEntry(); return blockBuilder.build(); }
private static Block createTestBlock() { RowBlockBuilder blockBuilder = (RowBlockBuilder) TYPE.createBlockBuilder(null, 3); SingleRowBlockWriter singleRowBlockWriter; singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, 1); VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice("cat")); blockBuilder.closeEntry(); singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, 2); VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice("cats")); blockBuilder.closeEntry(); singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, 3); VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice("dog")); blockBuilder.closeEntry(); return blockBuilder.build(); }
@Override protected Object getGreaterValue(Object value) { RowBlockBuilder blockBuilder = (RowBlockBuilder) TYPE.createBlockBuilder(null, 1); SingleRowBlockWriter singleRowBlockWriter; Block block = (Block) value; singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, block.getSingleValueBlock(0).getLong(0, 0) + 1); VARCHAR.writeSlice(singleRowBlockWriter, block.getSingleValueBlock(1).getSlice(0, 0, 1)); blockBuilder.closeEntry(); return TYPE.getObject(blockBuilder.build(), 0); } }
@Override protected Object getGreaterValue(Object value) { RowBlockBuilder blockBuilder = (RowBlockBuilder) TYPE.createBlockBuilder(null, 1); SingleRowBlockWriter singleRowBlockWriter; Block block = (Block) value; singleRowBlockWriter = blockBuilder.beginBlockEntry(); BIGINT.writeLong(singleRowBlockWriter, block.getSingleValueBlock(0).getLong(0, 0) + 1); VARCHAR.writeSlice(singleRowBlockWriter, block.getSingleValueBlock(1).getSlice(0, 0, 1)); blockBuilder.closeEntry(); return TYPE.getObject(blockBuilder.build(), 0); } }