Package com.facebook.presto.spi.block

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


        }

        @Override
        protected void processInput(Block block, Optional<Block> maskBlock, Optional<Block> sampleWeightBlock)
        {
            BlockCursor values = block.cursor();

            for (int position = 0; position < block.getPositionCount(); position++) {
                checkState(values.advanceNextPosition());
                if (!values.isNull()) {
                    notNull = true;
                    min = Math.min(min, values.getDouble());
                }
            }
        }
View Full Code Here


        @Override
        public void addInput(GroupByIdBlock groupIdsBlock, Page page)
        {
            counts.ensureCapacity(groupIdsBlock.getGroupCount());
            samples.ensureCapacity(groupIdsBlock.getGroupCount());
            BlockCursor masks = null;
            if (maskChannel.isPresent()) {
                masks = page.getBlock(maskChannel.get()).cursor();
            }
            BlockCursor sampleWeights = page.getBlock(sampleWeightChannel).cursor();

            for (int position = 0; position < groupIdsBlock.getPositionCount(); position++) {
                long groupId = groupIdsBlock.getGroupId(position);
                checkState(masks == null || masks.advanceNextPosition(), "failed to advance mask cursor");
                checkState(sampleWeights.advanceNextPosition(), "failed to advance weight cursor");
                long weight = SimpleAggregationFunction.computeSampleWeight(masks, sampleWeights);
                counts.add(groupId, weight);
                if (weight > 0) {
                    samples.increment(groupId);
                }
View Full Code Here

        public void addIntermediate(GroupByIdBlock groupIdsBlock, Block block)
        {
            counts.ensureCapacity(groupIdsBlock.getGroupCount());
            samples.ensureCapacity(groupIdsBlock.getGroupCount());

            BlockCursor intermediates = block.cursor();

            for (int position = 0; position < groupIdsBlock.getPositionCount(); position++) {
                checkState(intermediates.advanceNextPosition(), "failed to advance intermediates cursor");

                long groupId = groupIdsBlock.getGroupId(position);
                Slice slice = intermediates.getSlice();
                counts.add(groupId, slice.getLong(COUNT_OFFSET));
                samples.add(groupId, slice.getLong(SAMPLES_OFFSET));
            }
        }
View Full Code Here

        }

        @Override
        public void addInput(Page page)
        {
            BlockCursor masks = null;
            if (maskChannel.isPresent()) {
                masks = page.getBlock(maskChannel.get()).cursor();
            }
            BlockCursor sampleWeights = page.getBlock(sampleWeightChannel).cursor();

            for (int i = 0; i < page.getPositionCount(); i++) {
                checkState(masks == null || masks.advanceNextPosition(), "failed to advance mask cursor");
                checkState(sampleWeights.advanceNextPosition(), "failed to advance weight cursor");
                long weight = SimpleAggregationFunction.computeSampleWeight(masks, sampleWeights);
                count += weight;
                if (weight > 0) {
                    samples++;
                }
View Full Code Here

        }

        @Override
        public void addIntermediate(Block block)
        {
            BlockCursor intermediates = block.cursor();

            for (int position = 0; position < block.getPositionCount(); position++) {
                checkState(intermediates.advanceNextPosition(), "failed to advance intermediates cursor");
                Slice slice = intermediates.getSlice();
                count += slice.getLong(COUNT_OFFSET);
                samples += slice.getLong(SAMPLES_OFFSET);
            }
        }
View Full Code Here

        @Override
        public void addInput(GroupByIdBlock groupIdsBlock, Page page)
        {
            counts.ensureCapacity(groupIdsBlock.getGroupCount());
            BlockCursor masks = maskChannel.isPresent() ? page.getBlock(maskChannel.get()).cursor() : null;
            BlockCursor sampleWeights = sampleWeightChannel.isPresent() ? page.getBlock(sampleWeightChannel.get()).cursor() : null;

            for (int position = 0; position < groupIdsBlock.getPositionCount(); position++) {
                long groupId = groupIdsBlock.getGroupId(position);
                checkState(masks == null || masks.advanceNextPosition());
                checkState(sampleWeights == null || sampleWeights.advanceNextPosition());
                counts.add(groupId, SimpleAggregationFunction.computeSampleWeight(masks, sampleWeights));
            }
        }
View Full Code Here

        @Override
        public void addIntermediate(GroupByIdBlock groupIdsBlock, Block block)
        {
            counts.ensureCapacity(groupIdsBlock.getGroupCount());

            BlockCursor intermediates = block.cursor();

            for (int position = 0; position < groupIdsBlock.getPositionCount(); position++) {
                checkState(intermediates.advanceNextPosition());

                long groupId = groupIdsBlock.getGroupId(position);
                counts.add(groupId, intermediates.getLong());
            }
        }
View Full Code Here

        {
            if (!maskChannel.isPresent() && !sampleWeightChannel.isPresent()) {
                count += page.getPositionCount();
            }
            else {
                BlockCursor masks = null;
                if (maskChannel.isPresent()) {
                    masks = page.getBlock(maskChannel.get()).cursor();
                }
                BlockCursor sampleWeights = null;
                if (sampleWeightChannel.isPresent()) {
                    sampleWeights = page.getBlock(sampleWeightChannel.get()).cursor();
                }
                for (int i = 0; i < page.getPositionCount(); i++) {
                    checkState(masks == null || masks.advanceNextPosition());
                    checkState(sampleWeights == null || sampleWeights.advanceNextPosition());
                    count += SimpleAggregationFunction.computeSampleWeight(masks, sampleWeights);
                }
            }
        }
View Full Code Here

        }

        @Override
        public void addIntermediate(Block block)
        {
            BlockCursor intermediates = block.cursor();

            for (int position = 0; position < block.getPositionCount(); position++) {
                checkState(intermediates.advanceNextPosition());
                count += intermediates.getLong();
            }
        }
View Full Code Here

    public BlockCursor[] duplicateCursors()
    {
        BlockCursor[] duplicates = new BlockCursor[cursors.size()];
        for (int i = 0; i < cursors.size(); i++) {
            BlockCursor cursor = cursors.get(i);
            duplicates[i] = cursor.duplicate();
        }
        return duplicates;
    }
View Full Code Here

TOP

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

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.