Package com.facebook.presto.spi.block

Examples of com.facebook.presto.spi.block.BlockBuilder


        toPages(operator, input);
    }

    public void testHashBuilderResize()
    {
        BlockBuilder builder = VARCHAR.createBlockBuilder(new BlockBuilderStatus());
        builder.appendSlice(Slices.allocate(200_000)); // this must be larger than DEFAULT_MAX_BLOCK_SIZE, 64K
        builder.build();

        List<Page> input = rowPagesBuilder(VARCHAR)
                .addSequencePage(10, 100)
                .addBlocksPage(builder.build())
                .addSequencePage(10, 100)
                .build();

        ConnectorSession session = new ConnectorSession("user", "source", "catalog", "schema", UTC_KEY, Locale.ENGLISH, "address", "agent");
        DriverContext driverContext = new TaskContext(new TaskId("query", "stage", "task"), executor, session, new DataSize(3, Unit.MEGABYTE))
View Full Code Here


    }

    @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = "Task exceeded max memory size of 3MB")
    public void testHashBuilderResizeLimit()
    {
        BlockBuilder builder = VARCHAR.createBlockBuilder(new BlockBuilderStatus());
        builder.appendSlice(Slices.allocate(5_000_000)); // this must be larger than DEFAULT_MAX_BLOCK_SIZE, 64K
        builder.build();

        List<Page> input = rowPagesBuilder(VARCHAR)
                .addSequencePage(10, 100)
                .addBlocksPage(builder.build())
                .addSequencePage(10, 100)
                .build();

        ConnectorSession session = new ConnectorSession("user", "source", "catalog", "schema", UTC_KEY, Locale.ENGLISH, "address", "agent");
        DriverContext driverContext = new TaskContext(new TaskId("query", "stage", "task"), executor, session, new DataSize(3, Unit.MEGABYTE))
View Full Code Here

        return IterableTransformer.on(input).transform(new Function<Page, Page>()
        {
            @Override
            public Page apply(Page page)
            {
                BlockBuilder builder = BIGINT.createBlockBuilder(new BlockBuilderStatus());
                for (int i = 0; i < page.getPositionCount(); i++) {
                    builder.appendLong(sampleWeight);
                }
                Block[] blocks = new Block[page.getChannelCount() + 1];
                System.arraycopy(page.getBlocks(), 0, blocks, 0, page.getChannelCount());
                blocks[blocks.length - 1] = builder.build();
                return new Page(blocks);
            }
        }).list();
    }
View Full Code Here

                metadata,
                new ConnectorSession("user", "test", "catalog", "schema", UTC_KEY, Locale.ENGLISH, null, null)
        );

        // create output
        BlockBuilder builder = projectionFunction.getType().createBlockBuilder(new BlockBuilderStatus());

        // project
        projectionFunction.project(channels, builder);

        // extract single value
        Object actualValue = BlockAssertions.getOnlyValue(builder.build());
        assertEquals(actualValue, expectedValue);
    }
View Full Code Here

        assertEquals(actualValue, expectedValue);
    }

    private static BlockCursor createCursor(Type type, Object value)
    {
        BlockBuilder blockBuilder = type.createBlockBuilder(new BlockBuilderStatus());
        BlockUtils.appendObject(blockBuilder, value);
        BlockCursor cursor = blockBuilder.build().cursor();
        assertTrue(cursor.advanceNextPosition());
        return cursor;
    }
View Full Code Here

        return createStringsBlock(Arrays.asList(values));
    }

    public static Block createStringsBlock(Iterable<String> values)
    {
        BlockBuilder builder = VARCHAR.createBlockBuilder(new BlockBuilderStatus());

        for (String value : values) {
            if (value == null) {
                builder.appendNull();
            }
            else {
                builder.appendSlice(Slices.utf8Slice(value));
            }
        }

        return builder.build();
    }
View Full Code Here

    }

    @Test
    public void testBigintSerializedSize()
    {
        BlockBuilder builder = BIGINT.createBlockBuilder(new BlockBuilderStatus());

        // empty page
        Page page = new Page(builder.build());
        int pageSize = serializedSize(page);
        assertEquals(pageSize, 26); // page overhead

        // page with one value
        page = new Page(builder.appendLong(123).build());
        int firstValueSize = serializedSize(page) - pageSize;
        assertEquals(firstValueSize, 8 + 1); // value size + value overhead

        // page with two values
        page = new Page(builder.appendLong(456).build());
        int secondValueSize = serializedSize(page) - (pageSize + firstValueSize);
        assertEquals(secondValueSize, 8 + 1); // value size + value overhead
    }
View Full Code Here

        return createBlockIterable(createStringsBlock(values));
    }

    public static Block createStringSequenceBlock(int start, int end)
    {
        BlockBuilder builder = VARCHAR.createBlockBuilder(new BlockBuilderStatus());

        for (int i = start; i < end; i++) {
            builder.appendSlice(Slices.utf8Slice(String.valueOf(i)));
        }

        return builder.build();
    }
View Full Code Here

    }

    @Test
    public void testVarcharSerializedSize()
    {
        BlockBuilder builder = VARCHAR.createBlockBuilder(new BlockBuilderStatus());

        // empty page
        Page page = new Page(builder.build());
        int pageSize = serializedSize(page);
        assertEquals(pageSize, 27); // page overhead

        // page with one value
        page = new Page(builder.appendSlice(Slices.utf8Slice("alice")).build());
        int firstValueSize = serializedSize(page) - pageSize;
        assertEquals(firstValueSize, 4 + 5 + 5); // "alice" + value overhead

        // page with two values
        page = new Page(builder.appendSlice(Slices.utf8Slice("bob")).build());
        int secondValueSize = serializedSize(page) - (pageSize + firstValueSize);
        assertEquals(secondValueSize, 4 + 3 + 5); // "bob" + value overhead
    }
View Full Code Here

        return createBooleansBlock(Collections.nCopies(count, value));
    }

    public static Block createBooleansBlock(Iterable<Boolean> values)
    {
        BlockBuilder builder = BOOLEAN.createBlockBuilder(new BlockBuilderStatus());

        for (Boolean value : values) {
            if (value == null) {
                builder.appendNull();
            }
            else {
                builder.appendBoolean(value);
            }
        }

        return builder.build();
    }
View Full Code Here

TOP

Related Classes of com.facebook.presto.spi.block.BlockBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.