private static void repeatToStringBlock(String value, int count, BlockBuilder blockBuilder) { for (int i = 0; i < count; i++) { VARCHAR.writeString(blockBuilder, value); } }
@Override void writeNextRandomValue(Random random, BlockBuilder builder) { varcharType.writeString(builder, nextString(random)); } }
@Override void writeNextRandomValue(Random random, BlockBuilder builder) { varcharType.writeString(builder, nextString(random)); } }
private static void repeatToStringBlock(String value, int count, BlockBuilder blockBuilder) { for (int i = 0; i < count; i++) { VARCHAR.writeString(blockBuilder, value); } }
public static Block createTestBlock() { BlockBuilder blockBuilder = VARCHAR.createBlockBuilder(null, 15); VARCHAR.writeString(blockBuilder, "apple"); VARCHAR.writeString(blockBuilder, "apple"); VARCHAR.writeString(blockBuilder, "apple"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "cherry"); VARCHAR.writeString(blockBuilder, "cherry"); VARCHAR.writeString(blockBuilder, "date"); return blockBuilder.build(); }
public static Block createTestBlock() { BlockBuilder blockBuilder = VARCHAR.createBlockBuilder(null, 15); VARCHAR.writeString(blockBuilder, "apple"); VARCHAR.writeString(blockBuilder, "apple"); VARCHAR.writeString(blockBuilder, "apple"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "banana"); VARCHAR.writeString(blockBuilder, "cherry"); VARCHAR.writeString(blockBuilder, "cherry"); VARCHAR.writeString(blockBuilder, "date"); return blockBuilder.build(); }
public static Block createStringSequenceBlock(int start, int end) { BlockBuilder builder = VARCHAR.createBlockBuilder(null, 100); for (int i = start; i < end; i++) { VARCHAR.writeString(builder, String.valueOf(i)); } return builder.build(); }
private static Block createStringsBlock(List<ConnectorId> values) { VarcharType varchar = createUnboundedVarcharType(); BlockBuilder builder = varchar.createBlockBuilder(null, values.size()); for (ConnectorId value : values) { if (value == null) { builder.appendNull(); } else { varchar.writeString(builder, value.getCatalogName()); } } return builder.build(); } }
public static Block createStringSequenceBlock(int start, int end) { BlockBuilder builder = VARCHAR.createBlockBuilder(null, 100); for (int i = start; i < end; i++) { VARCHAR.writeString(builder, String.valueOf(i)); } return builder.build(); }
private static Block createStringsBlock(List<ConnectorId> values) { VarcharType varchar = createUnboundedVarcharType(); BlockBuilder builder = varchar.createBlockBuilder(null, values.size()); for (ConnectorId value : values) { if (value == null) { builder.appendNull(); } else { varchar.writeString(builder, value.getCatalogName()); } } return builder.build(); } }
@Test public void testRoundTrip() { BlockBuilder expectedBlockBuilder = VARCHAR.createBlockBuilder(null, 4); VARCHAR.writeString(expectedBlockBuilder, "alice"); VARCHAR.writeString(expectedBlockBuilder, "bob"); VARCHAR.writeString(expectedBlockBuilder, "charlie"); VARCHAR.writeString(expectedBlockBuilder, "dave"); Block expectedBlock = expectedBlockBuilder.build(); DynamicSliceOutput sliceOutput = new DynamicSliceOutput(1024); blockEncodingSerde.writeBlock(sliceOutput, expectedBlock); Block actualBlock = blockEncodingSerde.readBlock(sliceOutput.slice().getInput()); assertBlockEquals(VARCHAR, actualBlock, expectedBlock); }
public static Block createStringDictionaryBlock(int start, int length) { checkArgument(length > 5, "block must have more than 5 entries"); int dictionarySize = length / 5; BlockBuilder builder = VARCHAR.createBlockBuilder(null, dictionarySize); for (int i = start; i < start + dictionarySize; i++) { VARCHAR.writeString(builder, String.valueOf(i)); } int[] ids = new int[length]; for (int i = 0; i < length; i++) { ids[i] = i % dictionarySize; } return new DictionaryBlock(builder.build(), ids); }
@Test public void testRoundTrip() { BlockBuilder expectedBlockBuilder = VARCHAR.createBlockBuilder(null, 4); VARCHAR.writeString(expectedBlockBuilder, "alice"); VARCHAR.writeString(expectedBlockBuilder, "bob"); VARCHAR.writeString(expectedBlockBuilder, "charlie"); VARCHAR.writeString(expectedBlockBuilder, "dave"); Block expectedBlock = expectedBlockBuilder.build(); DynamicSliceOutput sliceOutput = new DynamicSliceOutput(1024); blockEncodingSerde.writeBlock(sliceOutput, expectedBlock); Block actualBlock = blockEncodingSerde.readBlock(sliceOutput.slice().getInput()); assertBlockEquals(VARCHAR, actualBlock, expectedBlock); }
public static Block createStringDictionaryBlock(int start, int length) { checkArgument(length > 5, "block must have more than 5 entries"); int dictionarySize = length / 5; BlockBuilder builder = VARCHAR.createBlockBuilder(null, dictionarySize); for (int i = start; i < start + dictionarySize; i++) { VARCHAR.writeString(builder, String.valueOf(i)); } int[] ids = new int[length]; for (int i = 0; i < length; i++) { ids[i] = i % dictionarySize; } return new DictionaryBlock(builder.build(), ids); }
@Setup public void setup() { MapType mapType = mapType(VARCHAR, BIGINT); blockBuilder = mapType.createBlockBuilder(null, POSITIONS); for (int position = 0; position < POSITIONS; position++) { BlockBuilder entryBuilder = blockBuilder.beginBlockEntry(); for (int i = 0; i < mapSize; i++) { VARCHAR.writeString(entryBuilder, String.valueOf(ThreadLocalRandom.current().nextInt())); BIGINT.writeLong(entryBuilder, ThreadLocalRandom.current().nextInt()); } blockBuilder.closeEntry(); } dataBlock = blockBuilder.build(); }
@Setup public void setup() { MapType mapType = mapType(VARCHAR, BIGINT); blockBuilder = mapType.createBlockBuilder(null, POSITIONS); for (int position = 0; position < POSITIONS; position++) { BlockBuilder entryBuilder = blockBuilder.beginBlockEntry(); for (int i = 0; i < mapSize; i++) { VARCHAR.writeString(entryBuilder, String.valueOf(ThreadLocalRandom.current().nextInt())); BIGINT.writeLong(entryBuilder, ThreadLocalRandom.current().nextInt()); } blockBuilder.closeEntry(); } dataBlock = blockBuilder.build(); }
public static Block createStringsBlock(Iterable<String> values) { BlockBuilder builder = VARCHAR.createBlockBuilder(null, 100); for (String value : values) { if (value == null) { builder.appendNull(); } else { VARCHAR.writeString(builder, value); } } return builder.build(); }
public static Block createStringsBlock(Iterable<String> values) { BlockBuilder builder = VARCHAR.createBlockBuilder(null, 100); for (String value : values) { if (value == null) { builder.appendNull(); } else { VARCHAR.writeString(builder, value); } } return builder.build(); }
private static void test(IntStream keyInputStream, Stream<String> valueInputStream, BlockComparator comparator, Iterator<String> outputIterator) { BlockBuilder keysBlockBuilder = BIGINT.createBlockBuilder(null, INPUT_SIZE); BlockBuilder valuesBlockBuilder = VARCHAR.createBlockBuilder(null, INPUT_SIZE); keyInputStream.forEach(x -> BIGINT.writeLong(keysBlockBuilder, x)); valueInputStream.forEach(x -> VARCHAR.writeString(valuesBlockBuilder, x)); TypedKeyValueHeap heap = new TypedKeyValueHeap(comparator, BIGINT, VARCHAR, OUTPUT_SIZE); heap.addAll(keysBlockBuilder, valuesBlockBuilder); BlockBuilder resultBlockBuilder = VARCHAR.createBlockBuilder(null, OUTPUT_SIZE); heap.popAll(resultBlockBuilder); Block resultBlock = resultBlockBuilder.build(); assertEquals(resultBlock.getPositionCount(), OUTPUT_SIZE); for (int i = 0; i < OUTPUT_SIZE; i++) { assertEquals(VARCHAR.getSlice(resultBlock, i).toStringUtf8(), outputIterator.next()); } } }
@OutputFunction(StandardTypes.VARCHAR) public static void output(SpatialPartitioningState state, BlockBuilder out) { if (state.getCount() == 0) { out.appendNull(); return; } List<Rectangle> samples = state.getSamples(); int partitionCount = state.getPartitionCount(); int maxItemsPerNode = (samples.size() + partitionCount - 1) / partitionCount; Rectangle envelope = state.getExtent(); // Add a small buffer on the right and upper sides Rectangle paddedExtent = new Rectangle(envelope.getXMin(), envelope.getYMin(), Math.nextUp(envelope.getXMax()), Math.nextUp(envelope.getYMax())); VARCHAR.writeString(out, KdbTreeUtils.toJson(buildKdbTree(maxItemsPerNode, paddedExtent, samples))); } }