Search in sources :

Example 1 with ArrayBlockBuilder

use of com.facebook.presto.spi.block.ArrayBlockBuilder in project presto by prestodb.

the class TestSimpleRowType method createTestBlock.

private static Block createTestBlock() {
    ArrayBlockBuilder blockBuilder = (ArrayBlockBuilder) TYPE.createBlockBuilder(new BlockBuilderStatus(), 3);
    ArrayElementBlockWriter arrayElementBlockWriter;
    arrayElementBlockWriter = blockBuilder.beginBlockEntry();
    BIGINT.writeLong(arrayElementBlockWriter, 1);
    VARCHAR.writeSlice(arrayElementBlockWriter, utf8Slice("cat"));
    blockBuilder.closeEntry();
    arrayElementBlockWriter = blockBuilder.beginBlockEntry();
    BIGINT.writeLong(arrayElementBlockWriter, 2);
    VARCHAR.writeSlice(arrayElementBlockWriter, utf8Slice("cats"));
    blockBuilder.closeEntry();
    arrayElementBlockWriter = blockBuilder.beginBlockEntry();
    BIGINT.writeLong(arrayElementBlockWriter, 3);
    VARCHAR.writeSlice(arrayElementBlockWriter, utf8Slice("dog"));
    blockBuilder.closeEntry();
    return blockBuilder.build();
}
Also used : ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) ArrayElementBlockWriter(com.facebook.presto.spi.block.ArrayElementBlockWriter) BlockBuilderStatus(com.facebook.presto.spi.block.BlockBuilderStatus)

Example 2 with ArrayBlockBuilder

use of com.facebook.presto.spi.block.ArrayBlockBuilder in project presto by prestodb.

the class TestArrayBlock method createBlockBuilderWithValues.

private static 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;
}
Also used : ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) Slice(io.airlift.slice.Slice) ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) BlockBuilder(com.facebook.presto.spi.block.BlockBuilder) BlockBuilderStatus(com.facebook.presto.spi.block.BlockBuilderStatus)

Example 3 with ArrayBlockBuilder

use of com.facebook.presto.spi.block.ArrayBlockBuilder in project presto by prestodb.

the class TestArrayBlock method createBlockBuilderWithValues.

private static 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;
}
Also used : ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) BlockBuilder(com.facebook.presto.spi.block.BlockBuilder) BlockBuilderStatus(com.facebook.presto.spi.block.BlockBuilderStatus)

Example 4 with ArrayBlockBuilder

use of com.facebook.presto.spi.block.ArrayBlockBuilder in project presto by prestodb.

the class TestSimpleRowType method getGreaterValue.

@Override
protected Object getGreaterValue(Object value) {
    ArrayBlockBuilder blockBuilder = (ArrayBlockBuilder) TYPE.createBlockBuilder(new BlockBuilderStatus(), 1);
    ArrayElementBlockWriter arrayElementBlockWriter;
    Block block = (Block) value;
    arrayElementBlockWriter = blockBuilder.beginBlockEntry();
    BIGINT.writeLong(arrayElementBlockWriter, block.getSingleValueBlock(0).getLong(0, 0) + 1);
    VARCHAR.writeSlice(arrayElementBlockWriter, block.getSingleValueBlock(1).getSlice(0, 0, 1));
    blockBuilder.closeEntry();
    return TYPE.getObject(blockBuilder.build(), 0);
}
Also used : ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) ArrayElementBlockWriter(com.facebook.presto.spi.block.ArrayElementBlockWriter) Block(com.facebook.presto.spi.block.Block) BlockBuilderStatus(com.facebook.presto.spi.block.BlockBuilderStatus)

Example 5 with ArrayBlockBuilder

use of com.facebook.presto.spi.block.ArrayBlockBuilder in project presto by prestodb.

the class TestArrayBlock method createBlockBuilderWithValues.

private static 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;
}
Also used : ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) ArrayBlockBuilder(com.facebook.presto.spi.block.ArrayBlockBuilder) BlockBuilder(com.facebook.presto.spi.block.BlockBuilder) BlockBuilderStatus(com.facebook.presto.spi.block.BlockBuilderStatus)

Aggregations

ArrayBlockBuilder (com.facebook.presto.spi.block.ArrayBlockBuilder)5 BlockBuilderStatus (com.facebook.presto.spi.block.BlockBuilderStatus)5 BlockBuilder (com.facebook.presto.spi.block.BlockBuilder)3 ArrayElementBlockWriter (com.facebook.presto.spi.block.ArrayElementBlockWriter)2 Block (com.facebook.presto.spi.block.Block)1 Slice (io.airlift.slice.Slice)1