@Override public void writeSlice(BlockBuilder blockBuilder, Slice value) { writeSlice(blockBuilder, value, 0, value.length()); }
public static Block createTestBlock() { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, 15); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("cherry")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("cherry")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("date")); return blockBuilder.build(); }
public static void output(NullableLongState state, BlockBuilder out) { if (state.isNull()) { out.appendNull(); } else { VARBINARY.writeSlice(out, wrappedLongArray(state.getLong())); } } }
@Override public void serialize(DoubleHistogramAggregation.State state, BlockBuilder out) { if (state.get() == null) { out.appendNull(); } else { VARBINARY.writeSlice(out, state.get().serialize()); } }
private Page createFragmentsPage() { Collection<Slice> fragments = getFutureValue(finishFuture); committed = true; updateWrittenBytes(); // output page will only be constructed once, // so a new PageBuilder is constructed (instead of using PageBuilder.reset) PageBuilder page = new PageBuilder(fragments.size() + 1, ImmutableList.of(types.get(ROW_COUNT_CHANNEL), types.get(FRAGMENT_CHANNEL))); BlockBuilder rowsBuilder = page.getBlockBuilder(0); BlockBuilder fragmentBuilder = page.getBlockBuilder(1); // write row count page.declarePosition(); BIGINT.writeLong(rowsBuilder, rowCount); fragmentBuilder.appendNull(); // write fragments for (Slice fragment : fragments) { page.declarePosition(); rowsBuilder.appendNull(); VARBINARY.writeSlice(fragmentBuilder, fragment); } return page.build(); }
private static Block createSlicesBlock(Slice[] values) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 100); for (Slice value : values) { verify(value != null); VARBINARY.writeSlice(builder, value); } return builder.build(); } }
private static Block toSingeValuedBlock(Slice expectedValue) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, 1, expectedValue.length()); VARBINARY.writeSlice(blockBuilder, expectedValue); return blockBuilder.build(); }
public static Block createSlicesBlock(Iterable<Slice> values) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 100); for (Slice value : values) { if (value == null) { builder.appendNull(); } else { VARBINARY.writeSlice(builder, value); } } return builder.build(); }
@Override public void serialize(LongDecimalWithOverflowState state, BlockBuilder out) { if (state.getLongDecimal() == null) { out.appendNull(); } else { Slice slice = Slices.allocate(Long.BYTES + UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH); SliceOutput output = slice.getOutput(); output.writeLong(state.getOverflow()); output.writeBytes(state.getLongDecimal()); VARBINARY.writeSlice(out, slice); } }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }
@Override public Page getOutput() { if ((state != State.FINISHING) || !finishFuture.isDone()) { return null; } state = State.FINISHED; Collection<Slice> fragments = getFutureValue(finishFuture); // output page will only be constructed once, // so a new PageBuilder is constructed (instead of using PageBuilder.reset) PageBuilder page = new PageBuilder(fragments.size() + 1, TYPES); BlockBuilder rowsBuilder = page.getBlockBuilder(0); BlockBuilder fragmentBuilder = page.getBlockBuilder(1); // write row count page.declarePosition(); BIGINT.writeLong(rowsBuilder, rowCount); fragmentBuilder.appendNull(); // write fragments for (Slice fragment : fragments) { page.declarePosition(); rowsBuilder.appendNull(); VARBINARY.writeSlice(fragmentBuilder, fragment); } return page.build(); }
@Override public void serialize(DigestAndPercentileArrayState state, BlockBuilder out) { if (state.getDigest() == null) { out.appendNull(); } else { Slice digest = state.getDigest().serialize(); SliceOutput output = Slices.allocate( SIZE_OF_INT + // number of percentiles state.getPercentiles().size() * SIZE_OF_DOUBLE + // percentiles SIZE_OF_INT + // digest length digest.length()) // digest .getOutput(); // write percentiles List<Double> percentiles = state.getPercentiles(); output.appendInt(percentiles.size()); for (double percentile : percentiles) { output.appendDouble(percentile); } output.appendInt(digest.length()); output.appendBytes(digest); VARBINARY.writeSlice(out, output.slice()); } }
@Override public void serialize(LongDecimalWithOverflowAndLongState state, BlockBuilder out) { if (state.getLongDecimal() == null) { out.appendNull(); } else { Slice slice = Slices.allocate(Long.BYTES + Long.BYTES + UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH); SliceOutput output = slice.getOutput(); output.writeLong(state.getLong()); output.writeLong(state.getOverflow()); output.writeBytes(state.getLongDecimal()); VARBINARY.writeSlice(out, slice); } }
@Override public void serialize(DigestAndPercentileState state, BlockBuilder out) { if (state.getDigest() == null) { out.appendNull(); } else { Slice serialized = state.getDigest().serialize(); SliceOutput output = Slices.allocate(SIZE_OF_DOUBLE + SIZE_OF_INT + serialized.length()).getOutput(); output.appendDouble(state.getPercentile()); output.appendInt(serialized.length()); output.appendBytes(serialized); VARBINARY.writeSlice(out, output.slice()); } }
return; case BINARY: VARBINARY.writeSlice(builder, Slices.wrappedBuffer(((BinaryObjectInspector) inspector).getPrimitiveJavaObject(object))); return; case DECIMAL:
@Override public void serialize(NumericHistogramAggregation.State state, BlockBuilder out) { if (state.get() == null) { out.appendNull(); } else { VARBINARY.writeSlice(out, state.get().serialize()); } }
@Override public void addBinary(Binary value) { addMissingValues(); if (type == TIMESTAMP) { builder.writeLong(ParquetTimestampUtils.getTimestampMillis(value)).closeEntry(); } else { VARBINARY.writeSlice(builder, wrappedBuffer(value.getBytes())); } }
private static Block toSingeValuedBlock(Slice expectedValue) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), 1, expectedValue.length()); VARBINARY.writeSlice(blockBuilder, expectedValue); return blockBuilder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }