@Override public void decodeValueInto(BlockBuilder builder, Slice slice, int offset, int length) { type.writeSlice(builder, slice, offset, length); } }
static AtopColumnParser varcharParser(int index) { return ((fields, type, builder, session) -> type.writeSlice(builder, Slices.utf8Slice(fields.get(index)))); }
@Override public void decodeValueInto(int depth, BlockBuilder builder, Slice slice, int offset, int length) { length = calculateTruncationLength(type, slice, offset, length); type.writeSlice(builder, slice, offset, length); } }
@Override public void decodeValueInto(BlockBuilder builder, Slice slice, int offset, int length) { // Note strings nested in complex structures do no use the empty string marker length = calculateTruncationLength(type, slice, offset, length); type.writeSlice(builder, slice, offset, length); } }
@Override void writeFirstField(BlockBuilder out, SliceAndBlockPositionValueState state) { firstType.writeSlice(out, state.getFirst()); } }
public static void providedBlockSlice(Type type, BlockBuilder output, Slice value) { hitProvidedBlockBuilderSlice.incrementAndGet(); type.writeSlice(output, value); }
@Override public void decodeValueInto(int depth, BlockBuilder builder, Slice slice, int offset, int length) { byte[] data = slice.getBytes(offset, length); type.writeSlice(builder, Slices.wrappedBuffer(base64Decoder.decode(data))); } }
@Override public void append(JsonParser parser, BlockBuilder blockBuilder) throws IOException { Slice result = currentTokenAsVarchar(parser); if (result == null) { blockBuilder.appendNull(); } else { type.writeSlice(blockBuilder, result); } } }
static void write(Type type, SliceState state, BlockBuilder out) { if (state.getSlice() == null) { out.appendNull(); } else { type.writeSlice(out, state.getSlice()); } } }
public static void providedBlockSlice(Type type, BlockBuilder output, Slice value) { hitProvidedBlockBuilderSlice.incrementAndGet(); if (value == null) { output.appendNull(); } else { type.writeSlice(output, value); } }
@Override protected void readValue(BlockBuilder blockBuilder, Type type) { if (definitionLevel == columnDescriptor.getMaxDefinitionLevel()) { Binary value = valuesReader.readBytes(); type.writeSlice(blockBuilder, Decimals.encodeUnscaledValue(new BigInteger(value.getBytes()))); } else if (isValueNull()) { blockBuilder.appendNull(); } }
private static Block createBlock(int positionCount, Type type) { BlockBuilder blockBuilder = type.createBlockBuilder(null, positionCount); if (type instanceof VarcharType) { for (int i = 0; i < positionCount; i++) { type.writeSlice(blockBuilder, utf8Slice(String.valueOf(ThreadLocalRandom.current().nextInt()))); } } else if (type == BIGINT) { for (int i = 0; i < positionCount; i++) { type.writeLong(blockBuilder, ThreadLocalRandom.current().nextLong()); } } else { throw new UnsupportedOperationException(); } return blockBuilder.build(); }
@UsedByGeneratedCode public static Block appendElement(Type elementType, Block block, Slice value) { BlockBuilder blockBuilder = elementType.createBlockBuilder(null, block.getPositionCount() + 1); for (int i = 0; i < block.getPositionCount(); i++) { elementType.appendTo(block, i, blockBuilder); } elementType.writeSlice(blockBuilder, value); return blockBuilder.build(); }
@UsedByGeneratedCode public static Block prependElement(Type elementType, Slice value, Block block) { BlockBuilder blockBuilder = elementType.createBlockBuilder(null, block.getPositionCount() + 1); elementType.writeSlice(blockBuilder, value); for (int i = 0; i < block.getPositionCount(); i++) { elementType.appendTo(block, i, blockBuilder); } return blockBuilder.build(); }
@Override public Block apply(Block block) { BlockBuilder blockBuilder = toType.createBlockBuilder(null, block.getPositionCount()); for (int i = 0; i < block.getPositionCount(); i++) { if (block.isNull(i)) { blockBuilder.appendNull(); continue; } toType.writeSlice(blockBuilder, utf8Slice(String.valueOf(fromType.getLong(block, i)))); } return blockBuilder.build(); } }
private static Block createVarWidthValueBlock(int positionCount, int mapSize) { Type valueType = createUnboundedVarcharType(); BlockBuilder valueBlockBuilder = valueType.createBlockBuilder(null, positionCount * mapSize); for (int i = 0; i < positionCount * mapSize; i++) { int wordLength = ThreadLocalRandom.current().nextInt(5, 10); valueType.writeSlice(valueBlockBuilder, utf8Slice(randomString(wordLength))); } return valueBlockBuilder.build(); }
private static Block createVarWidthValueBlock(int positionCount, int mapSize) { Type valueType = createUnboundedVarcharType(); BlockBuilder valueBlockBuilder = valueType.createBlockBuilder(null, positionCount * mapSize); for (int i = 0; i < positionCount * mapSize; i++) { int wordLength = ThreadLocalRandom.current().nextInt(5, 10); valueType.writeSlice(valueBlockBuilder, utf8Slice(randomString(wordLength))); } return valueBlockBuilder.build(); }
@Override public Block decodeColumn(ColumnData columnData) { int size = columnData.rowCount(); BlockBuilder builder = type.createBlockBuilder(null, size); Slice slice = columnData.getSlice(); for (int i = 0; i < size; i++) { int length = columnData.getLength(i); if (length > 0) { int offset = columnData.getOffset(i); type.writeSlice(builder, slice, offset, length); } else { builder.appendNull(); } } return builder.build(); }
@Override public Block decodeColumn(ColumnData columnData) { int size = columnData.rowCount(); BlockBuilder builder = type.createBlockBuilder(null, size); Slice slice = columnData.getSlice(); for (int i = 0; i < size; i++) { int offset = columnData.getOffset(i); int length = columnData.getLength(i); if (nullSequence.equals(0, nullSequence.length(), slice, offset, length)) { builder.appendNull(); } else { byte[] data = slice.getBytes(offset, length); type.writeSlice(builder, Slices.wrappedBuffer(base64Decoder.decode(data))); } } return builder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { Type type = QDIGEST.createType(typeRegistry, ImmutableList.of(TypeParameter.of(DoubleType.DOUBLE))); BlockBuilder blockBuilder = type.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { QuantileDigest qdigest = new QuantileDigest(0.0); qdigest.add(i); type.writeSlice(blockBuilder, qdigest.serialize()); } return new Block[] {blockBuilder.build()}; }