public Page build() { Block[] blocks = new Block[builders.size()]; for (int i = 0; i < blocks.length; i++) { blocks[i] = builders.get(i).build(); } return new Page(blocks); }
@ScalarFunction(hidden = true) @SqlType("array(unknown)") public static Block arrayConstructor() { BlockBuilder blockBuilder = new ArrayType(UNKNOWN).createBlockBuilder(null, 0); return blockBuilder.build(); } }
private static Block createKeyBlock(int positionCount, int mapSize) { BlockBuilder valueBlockBuilder = DOUBLE.createBlockBuilder(null, positionCount * mapSize); for (int i = 0; i < positionCount * mapSize; i++) { DOUBLE.writeDouble(valueBlockBuilder, ThreadLocalRandom.current().nextLong()); } return valueBlockBuilder.build(); }
public EmptyMapConstructor(@TypeParameter("map(unknown,unknown)") Type mapType) { BlockBuilder mapBlockBuilder = mapType.createBlockBuilder(null, 1); mapBlockBuilder.beginBlockEntry(); mapBlockBuilder.closeEntry(); emptyMap = ((MapType) mapType).getObject(mapBlockBuilder.build(), 0); }
public static Block createTimestampsWithTimezoneBlock(Long... values) { BlockBuilder builder = TIMESTAMP_WITH_TIME_ZONE.createFixedSizeBlockBuilder(values.length); for (long value : values) { TIMESTAMP_WITH_TIME_ZONE.writeLong(builder, value); } return builder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = DOUBLE.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { DOUBLE.writeDouble(blockBuilder, (double) i); } return new Block[] {blockBuilder.build()}; }
@Test public void testLongArrayBlock() { BlockBuilder blockBuilder = new LongArrayBlockBuilder(null, EXPECTED_ENTRIES); writeEntries(EXPECTED_ENTRIES, blockBuilder, BIGINT); checkRetainedSize(blockBuilder.build(), false); }
@Override public ConnectorPageSource createPageSource(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorSplit split, List<ColumnHandle> columns) { requireNonNull(columns, "columns is null"); ImmutableList<Block> blocks = columns.stream() .map(column -> new FixedWidthBlockBuilder(0, 1).appendNull().build()) .collect(toImmutableList()); return new FixedPageSource(ImmutableList.of(new Page(blocks.toArray(new Block[blocks.size()])))); } }
@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(); }
@UsedByGeneratedCode public static Block prependElement(Type elementType, double value, Block block) { BlockBuilder blockBuilder = elementType.createBlockBuilder(null, block.getPositionCount() + 1); elementType.writeDouble(blockBuilder, value); for (int i = 0; i < block.getPositionCount(); i++) { elementType.appendTo(block, i, blockBuilder); } return blockBuilder.build(); } }
@Test public void testRunLengthEncodedBlock() { BlockBuilder blockBuilder = new LongArrayBlockBuilder(null, 1); writeEntries(1, blockBuilder, BIGINT); checkRetainedSize(new RunLengthEncodedBlock(blockBuilder.build(), 1), false); }
private void assertArrayHashOperator(String inputArray, Type elementType, List<Object> elements) { ArrayType arrayType = new ArrayType(elementType); BlockBuilder arrayArrayBuilder = arrayType.createBlockBuilder(null, 1); BlockBuilder arrayBuilder = elementType.createBlockBuilder(null, elements.size()); for (Object element : elements) { appendToBlockBuilder(elementType, element, arrayBuilder); } arrayType.writeObject(arrayArrayBuilder, arrayBuilder.build()); assertOperator(HASH_CODE, inputArray, BIGINT, arrayType.hash(arrayArrayBuilder.build(), 0)); }
public static RunLengthEncodedBlock createRLEBlock(double value, int positionCount) { BlockBuilder blockBuilder = DOUBLE.createBlockBuilder(null, 1); DOUBLE.writeDouble(blockBuilder, value); return new RunLengthEncodedBlock(blockBuilder.build(), positionCount); }
public static RunLengthEncodedBlock createRLEBlock(long value, int positionCount) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, 1); BIGINT.writeLong(blockBuilder, value); return new RunLengthEncodedBlock(blockBuilder.build(), positionCount); } }
private static Page createLongBlockPage(long... values) { BlockBuilder builder = BIGINT.createFixedSizeBlockBuilder(values.length); for (long value : values) { BIGINT.writeLong(builder, value); } return new Page(builder.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[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = getDecimalType().createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { writeDecimalToBlock(getBigDecimalForCounter(i), blockBuilder); } return new Block[] {blockBuilder.build()}; }
@Test public void testArrayBlock() { BlockBuilder arrayBlockBuilder = new ArrayBlockBuilder(BIGINT, null, EXPECTED_ENTRIES); for (int i = 0; i < EXPECTED_ENTRIES; i++) { BlockBuilder arrayElementBuilder = arrayBlockBuilder.beginBlockEntry(); writeNativeValue(BIGINT, arrayElementBuilder, castIntegerToObject(i, BIGINT)); arrayBlockBuilder.closeEntry(); } checkRetainedSize(arrayBlockBuilder.build(), false); }