@Override public void writeObject(BlockBuilder blockBuilder, Object value) { blockBuilder.writeObject(value).closeEntry(); }
@Override public void writeObject(BlockBuilder blockBuilder, Object value) { blockBuilder.writeObject(value).closeEntry(); }
@Override public void writeObject(BlockBuilder blockBuilder, Object value) { blockBuilder.writeObject(value).closeEntry(); }
@Override public void appendTo(Block block, int position, BlockBuilder blockBuilder) { if (block.isNull(position)) { blockBuilder.appendNull(); } else { blockBuilder.writeObject(block.getObject(position, Block.class)); blockBuilder.closeEntry(); } }
public static void output(KeyValuePairsState state, BlockBuilder out) { KeyValuePairs pairs = state.get(); if (pairs == null) { out.appendNull(); } else { Block block = pairs.toMapNativeEncoding(); out.writeObject(block); out.closeEntry(); } } }
public static void output(KeyValuePairsState state, BlockBuilder out) { KeyValuePairs pairs = state.get(); if (pairs == null) { out.appendNull(); } else { Block block = pairs.toMultimapNativeEncoding(); out.writeObject(block); out.closeEntry(); } } }
public static long hash(Type rowType, Block block) { BlockBuilder blockBuilder = rowType.createBlockBuilder(new BlockBuilderStatus(), 1); blockBuilder.writeObject(block).closeEntry(); return rowType.hash(blockBuilder.build(), 0); } }
@OutputFunction("map(double,double)") public static void output(State state, BlockBuilder out) { if (state.get() == null) { out.appendNull(); } else { Map<Double, Double> value = state.get().getBuckets(); BlockBuilder blockBuilder = DoubleType.DOUBLE.createBlockBuilder(new BlockBuilderStatus(), value.size() * 2); for (Map.Entry<Double, Double> entry : value.entrySet()) { DoubleType.DOUBLE.writeDouble(blockBuilder, entry.getKey()); DoubleType.DOUBLE.writeDouble(blockBuilder, entry.getValue()); } Block block = blockBuilder.build(); out.writeObject(block); out.closeEntry(); } } }
public static void output(ArrayAggregationState state, BlockBuilder out) { if (state.getSliceOutput() == null) { out.appendNull(); } else { SliceInput sliceInput = state.getSliceOutput().slice().getInput(); Type type = state.getType(); long entries = state.getEntries(); List<Object> values = toValues(type, sliceInput, entries); Block block = arrayBlockOf(values, type); out.writeObject(block); /*Slice s = toStackRepresentation(values, type); out.writeBytes(s, 0, s.length());*/ out.closeEntry(); } }
private BlockBuilder createBlockBuilderWithValues(long[][] expectedValues) { BlockBuilder blockBuilder = new ArrayBlockBuilder(BIGINT, new BlockBuilderStatus(), 100, 100); for (long[] expectedValue : expectedValues) { if (expectedValue == null) { blockBuilder.appendNull(); } else { BlockBuilder elementBlockBuilder = BIGINT.createBlockBuilder(new BlockBuilderStatus(), expectedValue.length); for (long v : expectedValue) { BIGINT.writeLong(elementBlockBuilder, v); } blockBuilder.writeObject(elementBlockBuilder).closeEntry(); } } return blockBuilder; }
private BlockBuilder createBlockBuilderWithValues(Slice[][] expectedValues) { BlockBuilder blockBuilder = new ArrayBlockBuilder(VARCHAR, new BlockBuilderStatus(), 100, 100); for (Slice[] expectedValue : expectedValues) { if (expectedValue == null) { blockBuilder.appendNull(); } else { BlockBuilder elementBlockBuilder = VARCHAR.createBlockBuilder(new BlockBuilderStatus(), expectedValue.length); for (Slice v : expectedValue) { VARCHAR.writeSlice(elementBlockBuilder, v); } blockBuilder.writeObject(elementBlockBuilder.build()).closeEntry(); } } return blockBuilder; } }
@Test public void testStackRepresentation() throws Exception { Block actualBlock = arrayBlockOf(new ArrayType(BIGINT), arrayBlockOf(BIGINT, 1L, 2L), arrayBlockOf(BIGINT, 3L)); DynamicSliceOutput actualSliceOutput = new DynamicSliceOutput(100); writeBlock(actualSliceOutput, actualBlock); Block expectedBlock = new ArrayType(BIGINT) .createBlockBuilder(new BlockBuilderStatus(), 3) .writeObject(BIGINT.createBlockBuilder(new BlockBuilderStatus(), 2).writeLong(1).closeEntry().writeLong(2).closeEntry().build()) .closeEntry() .writeObject(BIGINT.createBlockBuilder(new BlockBuilderStatus(), 1).writeLong(3).closeEntry().build()) .closeEntry() .build(); DynamicSliceOutput expectedSliceOutput = new DynamicSliceOutput(100); writeBlock(expectedSliceOutput, expectedBlock); assertEquals(actualSliceOutput.slice(), expectedSliceOutput.slice()); }
@Test public void testStackRepresentation() throws Exception { Block array = arrayBlockOf(BIGINT, 1L, 2L); Block actualBlock = mapBlockOf(DOUBLE, new ArrayType(BIGINT), ImmutableMap.of(1.0, array)); DynamicSliceOutput actualSliceOutput = new DynamicSliceOutput(100); writeBlock(actualSliceOutput, actualBlock); Block expectedBlock = new InterleavedBlockBuilder(ImmutableList.<Type>of(DOUBLE, new ArrayType(BIGINT)), new BlockBuilderStatus(), 3) .writeDouble(1.0) .closeEntry() .writeObject( BIGINT .createBlockBuilder(new BlockBuilderStatus(), 1) .writeLong(1L) .closeEntry() .writeLong(2L) .closeEntry() .build() ) .closeEntry() .build(); DynamicSliceOutput expectedSliceOutput = new DynamicSliceOutput(100); writeBlock(expectedSliceOutput, expectedBlock); assertEquals(actualSliceOutput.slice(), expectedSliceOutput.slice()); }
private BlockBuilder createBlockBuilderWithValues(long[][][] expectedValues) { BlockBuilder blockBuilder = new ArrayBlockBuilder(new ArrayBlockBuilder(BIGINT, new BlockBuilderStatus(), 100, 100), new BlockBuilderStatus(), 100); for (long[][] expectedValue : expectedValues) { if (expectedValue == null) { blockBuilder.appendNull(); } else { BlockBuilder intermediateBlockBuilder = new ArrayBlockBuilder(BIGINT, new BlockBuilderStatus(), 100, 100); for (int j = 0; j < expectedValue.length; j++) { if (expectedValue[j] == null) { intermediateBlockBuilder.appendNull(); } else { BlockBuilder innerMostBlockBuilder = BIGINT.createBlockBuilder(new BlockBuilderStatus(), expectedValue.length); for (long v : expectedValue[j]) { BIGINT.writeLong(innerMostBlockBuilder, v); } intermediateBlockBuilder.writeObject(innerMostBlockBuilder.build()).closeEntry(); } } blockBuilder.writeObject(intermediateBlockBuilder.build()).closeEntry(); } } return blockBuilder; }