Search in sources :

Example 1 with PartitionFunction

use of com.facebook.presto.operator.PartitionFunction in project presto by prestodb.

the class LocalExecutionPlanner method plan.

public LocalExecutionPlan plan(Session session, PlanNode plan, Map<Symbol, Type> types, PartitioningScheme partitioningScheme, OutputBuffer outputBuffer) {
    List<Symbol> outputLayout = partitioningScheme.getOutputLayout();
    if (partitioningScheme.getPartitioning().getHandle().equals(FIXED_BROADCAST_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(FIXED_ARBITRARY_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(SINGLE_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(COORDINATOR_DISTRIBUTION)) {
        return plan(session, plan, outputLayout, types, new TaskOutputFactory(outputBuffer));
    }
    // We can convert the symbols directly into channels, because the root must be a sink and therefore the layout is fixed
    List<Integer> partitionChannels;
    List<Optional<NullableValue>> partitionConstants;
    List<Type> partitionChannelTypes;
    if (partitioningScheme.getHashColumn().isPresent()) {
        partitionChannels = ImmutableList.of(outputLayout.indexOf(partitioningScheme.getHashColumn().get()));
        partitionConstants = ImmutableList.of(Optional.empty());
        partitionChannelTypes = ImmutableList.of(BIGINT);
    } else {
        partitionChannels = partitioningScheme.getPartitioning().getArguments().stream().map(ArgumentBinding::getColumn).map(outputLayout::indexOf).collect(toImmutableList());
        partitionConstants = partitioningScheme.getPartitioning().getArguments().stream().map(argument -> {
            if (argument.isConstant()) {
                return Optional.of(argument.getConstant());
            }
            return Optional.<NullableValue>empty();
        }).collect(toImmutableList());
        partitionChannelTypes = partitioningScheme.getPartitioning().getArguments().stream().map(argument -> {
            if (argument.isConstant()) {
                return argument.getConstant().getType();
            }
            return types.get(argument.getColumn());
        }).collect(toImmutableList());
    }
    PartitionFunction partitionFunction = nodePartitioningManager.getPartitionFunction(session, partitioningScheme, partitionChannelTypes);
    OptionalInt nullChannel = OptionalInt.empty();
    Set<Symbol> partitioningColumns = partitioningScheme.getPartitioning().getColumns();
    // partitioningColumns expected to have one column in the normal case, and zero columns when partitioning on a constant
    checkArgument(!partitioningScheme.isReplicateNulls() || partitioningColumns.size() <= 1);
    if (partitioningScheme.isReplicateNulls() && partitioningColumns.size() == 1) {
        nullChannel = OptionalInt.of(outputLayout.indexOf(getOnlyElement(partitioningColumns)));
    }
    return plan(session, plan, outputLayout, types, new PartitionedOutputFactory(partitionFunction, partitionChannels, partitionConstants, nullChannel, outputBuffer, maxPagePartitioningBufferSize));
}
Also used : PartitionFunction(com.facebook.presto.operator.PartitionFunction) Optional(java.util.Optional) NullableValue(com.facebook.presto.spi.predicate.NullableValue) OptionalInt(java.util.OptionalInt) PartitionedOutputFactory(com.facebook.presto.operator.PartitionedOutputOperator.PartitionedOutputFactory) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Type(com.facebook.presto.spi.type.Type) TaskOutputFactory(com.facebook.presto.operator.TaskOutputOperator.TaskOutputFactory)

Example 2 with PartitionFunction

use of com.facebook.presto.operator.PartitionFunction in project presto by prestodb.

the class TestOptimizedPartitionedOutputOperator method createOptimizedPartitionedOutputOperator.

private OptimizedPartitionedOutputOperator createOptimizedPartitionedOutputOperator(List<Type> types, boolean replicateAllRows) {
    TestingPartitionedOutputBuffer outputBuffer = createPartitionedOutputBuffer();
    PartitionFunction partitionFunction = new LocalPartitionGenerator(new PrecomputedHashGenerator(0), PARTITION_COUNT);
    if (replicateAllRows) {
        List<Type> replicatedTypes = updateBlockTypesWithHashBlockAndNullBlock(types, false, true);
        return createOptimizedPartitionedOutputOperator(replicatedTypes, ImmutableList.of(0), partitionFunction, outputBuffer, OptionalInt.of(replicatedTypes.size() - 1), MAX_MEMORY);
    } else {
        return createOptimizedPartitionedOutputOperator(types, ImmutableList.of(0), partitionFunction, outputBuffer, OptionalInt.empty(), MAX_MEMORY);
    }
}
Also used : PartitionFunction(com.facebook.presto.operator.PartitionFunction) ArrayType(com.facebook.presto.common.type.ArrayType) Type(com.facebook.presto.common.type.Type) BlockAssertions.createMapType(com.facebook.presto.block.BlockAssertions.createMapType) DecimalType.createDecimalType(com.facebook.presto.common.type.DecimalType.createDecimalType) LocalPartitionGenerator(com.facebook.presto.operator.exchange.LocalPartitionGenerator) PrecomputedHashGenerator(com.facebook.presto.operator.PrecomputedHashGenerator)

Example 3 with PartitionFunction

use of com.facebook.presto.operator.PartitionFunction in project presto by prestodb.

the class TestOptimizedPartitionedOutputOperator method testPartitioned.

private void testPartitioned(List<Type> types, List<Page> pages, DataSize maxMemory, List<Integer> partitionChannel, HashGenerator hashGenerator) {
    TestingPartitionedOutputBuffer outputBuffer = createPartitionedOutputBuffer();
    PartitionFunction partitionFunction = new LocalPartitionGenerator(hashGenerator, PARTITION_COUNT);
    OptimizedPartitionedOutputOperator operator = createOptimizedPartitionedOutputOperator(types, partitionChannel, partitionFunction, outputBuffer, OptionalInt.empty(), maxMemory);
    Map<Integer, List<Page>> expectedPageList = new HashMap<>();
    for (Page page : pages) {
        Map<Integer, List<Integer>> positionsByPartition = new HashMap<>();
        for (int i = 0; i < page.getPositionCount(); i++) {
            int partitionNumber = partitionFunction.getPartition(page, i);
            positionsByPartition.computeIfAbsent(partitionNumber, k -> new ArrayList<>()).add(i);
        }
        for (Map.Entry<Integer, List<Integer>> entry : positionsByPartition.entrySet()) {
            if (!entry.getValue().isEmpty()) {
                expectedPageList.computeIfAbsent(entry.getKey(), k -> new ArrayList<>()).add(copyPositions(page, entry.getValue()));
            }
        }
        operator.addInput(page);
    }
    operator.finish();
    Map<Integer, Page> expectedPages = Maps.transformValues(expectedPageList, outputPages -> mergePages(types, outputPages));
    Map<Integer, Page> actualPages = Maps.transformValues(outputBuffer.getPages(), outputPages -> mergePages(types, outputPages));
    assertEquals(actualPages.size(), expectedPages.size());
    assertEquals(actualPages.keySet(), expectedPages.keySet());
    for (Map.Entry<Integer, Page> entry : expectedPages.entrySet()) {
        int key = entry.getKey();
        assertPageEquals(types, actualPages.get(key), entry.getValue());
    }
}
Also used : PartitionFunction(com.facebook.presto.operator.PartitionFunction) OutputBuffers.createInitialEmptyOutputBuffers(com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers) Page(com.facebook.presto.common.Page) HashGenerator(com.facebook.presto.operator.HashGenerator) RunLengthEncodedBlock(com.facebook.presto.common.block.RunLengthEncodedBlock) SerializedPage(com.facebook.presto.spi.page.SerializedPage) BlockAssertions.createRandomLongsBlock(com.facebook.presto.block.BlockAssertions.createRandomLongsBlock) Test(org.testng.annotations.Test) Random(java.util.Random) DICTIONARY(com.facebook.presto.block.BlockAssertions.Encoding.DICTIONARY) Executors.newScheduledThreadPool(java.util.concurrent.Executors.newScheduledThreadPool) Map(java.util.Map) KILOBYTE(io.airlift.units.DataSize.Unit.KILOBYTE) Lifespan(com.facebook.presto.execution.Lifespan) LocalMemoryContext(com.facebook.presto.memory.context.LocalMemoryContext) TINY_SCHEMA_NAME(com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME) Assertions.assertBetweenInclusive(com.facebook.airlift.testing.Assertions.assertBetweenInclusive) Threads.daemonThreadsNamed(com.facebook.airlift.concurrent.Threads.daemonThreadsNamed) DataSize(io.airlift.units.DataSize) List(java.util.List) StateMachine(com.facebook.presto.execution.StateMachine) BlockAssertions.createLongDictionaryBlock(com.facebook.presto.block.BlockAssertions.createLongDictionaryBlock) INTEGER(com.facebook.presto.common.type.IntegerType.INTEGER) Optional(java.util.Optional) OutputPartitioning(com.facebook.presto.sql.planner.OutputPartitioning) BlockAssertions.createRandomStringBlock(com.facebook.presto.block.BlockAssertions.createRandomStringBlock) IntStream(java.util.stream.IntStream) PlanNodeId(com.facebook.presto.spi.plan.PlanNodeId) PARTITIONED(com.facebook.presto.execution.buffer.OutputBuffers.BufferType.PARTITIONED) OutputBuffers(com.facebook.presto.execution.buffer.OutputBuffers) Slice(io.airlift.slice.Slice) PagesSerdeFactory(com.facebook.presto.execution.buffer.PagesSerdeFactory) RowType.withDefaultFieldNames(com.facebook.presto.common.type.RowType.withDefaultFieldNames) VARCHAR(com.facebook.presto.common.type.VarcharType.VARCHAR) MEGABYTE(io.airlift.units.DataSize.Unit.MEGABYTE) PageAssertions.assertPageEquals(com.facebook.presto.operator.PageAssertions.assertPageEquals) Assert.assertEquals(org.testng.Assert.assertEquals) VariableWidthBlock(com.facebook.presto.common.block.VariableWidthBlock) HashMap(java.util.HashMap) OptionalInt(java.util.OptionalInt) Function(java.util.function.Function) Supplier(java.util.function.Supplier) PartitionedOutputBuffer(com.facebook.presto.execution.buffer.PartitionedOutputBuffer) REAL(com.facebook.presto.common.type.RealType.REAL) PageAssertions(com.facebook.presto.operator.PageAssertions) ArrayList(java.util.ArrayList) MAX_SHORT_PRECISION(com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION) OptimizedPartitionedOutputFactory(com.facebook.presto.operator.repartition.OptimizedPartitionedOutputOperator.OptimizedPartitionedOutputFactory) DynamicSliceOutput(io.airlift.slice.DynamicSliceOutput) PageAssertions.updateBlockTypesWithHashBlockAndNullBlock(com.facebook.presto.operator.PageAssertions.updateBlockTypesWithHashBlockAndNullBlock) GIGABYTE(io.airlift.units.DataSize.Unit.GIGABYTE) ImmutableList(com.google.common.collect.ImmutableList) BlockEncodingManager(com.facebook.presto.common.block.BlockEncodingManager) BlockAssertions.createRLEBlock(com.facebook.presto.block.BlockAssertions.createRLEBlock) SimpleLocalMemoryContext(com.facebook.presto.memory.context.SimpleLocalMemoryContext) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) BOOLEAN(com.facebook.presto.common.type.BooleanType.BOOLEAN) ArrayType(com.facebook.presto.common.type.ArrayType) RUN_LENGTH(com.facebook.presto.block.BlockAssertions.Encoding.RUN_LENGTH) AggregatedMemoryContext.newSimpleAggregatedMemoryContext(com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext) TestingTaskContext(com.facebook.presto.testing.TestingTaskContext) Type(com.facebook.presto.common.type.Type) ExecutorService(java.util.concurrent.ExecutorService) PrecomputedHashGenerator(com.facebook.presto.operator.PrecomputedHashGenerator) BlockAssertions.createLongSequenceBlock(com.facebook.presto.block.BlockAssertions.createLongSequenceBlock) BIGINT(com.facebook.presto.common.type.BigintType.BIGINT) BlockAssertions.createMapType(com.facebook.presto.block.BlockAssertions.createMapType) Executor(java.util.concurrent.Executor) Session(com.facebook.presto.Session) BlockAssertions.wrapBlock(com.facebook.presto.block.BlockAssertions.wrapBlock) TestingSession.testSessionBuilder(com.facebook.presto.testing.TestingSession.testSessionBuilder) PartitionFunction(com.facebook.presto.operator.PartitionFunction) Maps(com.google.common.collect.Maps) LocalPartitionGenerator(com.facebook.presto.operator.exchange.LocalPartitionGenerator) OPEN(com.facebook.presto.execution.buffer.BufferState.OPEN) InterpretedHashGenerator(com.facebook.presto.operator.InterpretedHashGenerator) BufferState(com.facebook.presto.execution.buffer.BufferState) SMALLINT(com.facebook.presto.common.type.SmallintType.SMALLINT) Executors.newCachedThreadPool(java.util.concurrent.Executors.newCachedThreadPool) PagesSerde(com.facebook.presto.spi.page.PagesSerde) DriverContext(com.facebook.presto.operator.DriverContext) Block(com.facebook.presto.common.block.Block) OperatorContext(com.facebook.presto.operator.OperatorContext) TERMINAL_BUFFER_STATES(com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES) BYTE(io.airlift.units.DataSize.Unit.BYTE) DecimalType.createDecimalType(com.facebook.presto.common.type.DecimalType.createDecimalType) PageAssertions.mergePages(com.facebook.presto.operator.PageAssertions.mergePages) HashMap(java.util.HashMap) LocalPartitionGenerator(com.facebook.presto.operator.exchange.LocalPartitionGenerator) ArrayList(java.util.ArrayList) Page(com.facebook.presto.common.Page) SerializedPage(com.facebook.presto.spi.page.SerializedPage) List(java.util.List) ArrayList(java.util.ArrayList) ImmutableList(com.google.common.collect.ImmutableList) Map(java.util.Map) HashMap(java.util.HashMap)

Example 4 with PartitionFunction

use of com.facebook.presto.operator.PartitionFunction in project presto by prestodb.

the class TestLocalExchange method testCreatePartitionFunction.

@Test
public void testCreatePartitionFunction() {
    int partitionCount = 10;
    PartitioningProviderManager partitioningProviderManager = new PartitioningProviderManager();
    partitioningProviderManager.addPartitioningProvider(new ConnectorId("prism"), new ConnectorNodePartitioningProvider() {

        @Override
        public ConnectorBucketNodeMap getBucketNodeMap(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorPartitioningHandle partitioningHandle, List<Node> sortedNodes) {
            return createBucketNodeMap(Stream.generate(() -> sortedNodes).flatMap(List::stream).limit(10).collect(toImmutableList()), SOFT_AFFINITY);
        }

        @Override
        public ToIntFunction<ConnectorSplit> getSplitBucketFunction(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorPartitioningHandle partitioningHandle) {
            return null;
        }

        @Override
        public BucketFunction getBucketFunction(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorPartitioningHandle partitioningHandle, List<Type> partitionChannelTypes, int bucketCount) {
            return (Page page, int position) -> partitionCount;
        }

        @Override
        public int getBucketCount(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorPartitioningHandle partitioningHandle) {
            return 10;
        }
    });
    PartitioningHandle partitioningHandle = new PartitioningHandle(Optional.of(new ConnectorId("prism")), Optional.of(new ConnectorTransactionHandle() {

        @Override
        public int hashCode() {
            return super.hashCode();
        }

        @Override
        public boolean equals(Object obj) {
            return super.equals(obj);
        }
    }), new ConnectorPartitioningHandle() {

        @Override
        public boolean isSingleNode() {
            return false;
        }

        @Override
        public boolean isCoordinatorOnly() {
            return false;
        }
    });
    PartitionFunction partitionFunction = createPartitionFunction(partitioningProviderManager, session, partitioningHandle, 600, ImmutableList.of(), false);
    assertEquals(partitionFunction.getPartitionCount(), partitionCount);
}
Also used : LocalExchange.createPartitionFunction(com.facebook.presto.operator.exchange.LocalExchange.createPartitionFunction) PartitionFunction(com.facebook.presto.operator.PartitionFunction) PartitioningProviderManager(com.facebook.presto.sql.planner.PartitioningProviderManager) Node(com.facebook.presto.spi.Node) ConnectorTransactionHandle(com.facebook.presto.spi.connector.ConnectorTransactionHandle) Page(com.facebook.presto.common.Page) Type(com.facebook.presto.common.type.Type) ConnectorPartitioningHandle(com.facebook.presto.spi.connector.ConnectorPartitioningHandle) ConnectorNodePartitioningProvider(com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider) ConnectorBucketNodeMap(com.facebook.presto.spi.connector.ConnectorBucketNodeMap) ConnectorSession(com.facebook.presto.spi.ConnectorSession) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) ToIntFunction(java.util.function.ToIntFunction) ConnectorPartitioningHandle(com.facebook.presto.spi.connector.ConnectorPartitioningHandle) PartitioningHandle(com.facebook.presto.sql.planner.PartitioningHandle) BucketFunction(com.facebook.presto.spi.BucketFunction) ConnectorId(com.facebook.presto.spi.ConnectorId) Test(org.testng.annotations.Test)

Example 5 with PartitionFunction

use of com.facebook.presto.operator.PartitionFunction in project presto by prestodb.

the class LocalExecutionPlanner method createOutputPartitioning.

private Optional<OutputPartitioning> createOutputPartitioning(TaskContext taskContext, PartitioningScheme partitioningScheme) {
    if (partitioningScheme.getPartitioning().getHandle().equals(FIXED_BROADCAST_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(FIXED_ARBITRARY_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(SCALED_WRITER_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(SINGLE_DISTRIBUTION) || partitioningScheme.getPartitioning().getHandle().equals(COORDINATOR_DISTRIBUTION)) {
        return Optional.empty();
    }
    List<VariableReferenceExpression> outputLayout = partitioningScheme.getOutputLayout();
    // We can convert the variables directly into channels, because the root must be a sink and therefore the layout is fixed
    List<Integer> partitionChannels;
    List<Optional<ConstantExpression>> partitionConstants;
    List<Type> partitionChannelTypes;
    if (partitioningScheme.getHashColumn().isPresent()) {
        partitionChannels = ImmutableList.of(outputLayout.indexOf(partitioningScheme.getHashColumn().get()));
        partitionConstants = ImmutableList.of(Optional.empty());
        partitionChannelTypes = ImmutableList.of(BIGINT);
    } else {
        checkArgument(partitioningScheme.getPartitioning().getArguments().stream().allMatch(argument -> argument instanceof ConstantExpression || argument instanceof VariableReferenceExpression), format("Expect all partitioning arguments to be either ConstantExpression or VariableReferenceExpression, but get %s", partitioningScheme.getPartitioning().getArguments()));
        partitionChannels = partitioningScheme.getPartitioning().getArguments().stream().map(argument -> {
            if (argument instanceof ConstantExpression) {
                return -1;
            }
            return outputLayout.indexOf(argument);
        }).collect(toImmutableList());
        partitionConstants = partitioningScheme.getPartitioning().getArguments().stream().map(argument -> {
            if (argument instanceof ConstantExpression) {
                return Optional.of((ConstantExpression) argument);
            }
            return Optional.<ConstantExpression>empty();
        }).collect(toImmutableList());
        partitionChannelTypes = partitioningScheme.getPartitioning().getArguments().stream().map(RowExpression::getType).collect(toImmutableList());
    }
    PartitionFunction partitionFunction = nodePartitioningManager.getPartitionFunction(taskContext.getSession(), partitioningScheme, partitionChannelTypes);
    OptionalInt nullChannel = OptionalInt.empty();
    Set<VariableReferenceExpression> partitioningColumns = partitioningScheme.getPartitioning().getVariableReferences();
    // partitioningColumns expected to have one column in the normal case, and zero columns when partitioning on a constant
    checkArgument(!partitioningScheme.isReplicateNullsAndAny() || partitioningColumns.size() <= 1);
    if (partitioningScheme.isReplicateNullsAndAny() && partitioningColumns.size() == 1) {
        nullChannel = OptionalInt.of(outputLayout.indexOf(getOnlyElement(partitioningColumns)));
    }
    return Optional.of(new OutputPartitioning(partitionFunction, partitionChannels, partitionConstants, partitioningScheme.isReplicateNullsAndAny(), nullChannel));
}
Also used : GENERIC_INTERNAL_ERROR(com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR) RowNumberOperator(com.facebook.presto.operator.RowNumberOperator) GROUPED_EXECUTION(com.facebook.presto.operator.PipelineExecutionStrategy.GROUPED_EXECUTION) SystemSessionProperties.isOrderBySpillEnabled(com.facebook.presto.SystemSessionProperties.isOrderBySpillEnabled) StatisticAggregationsDescriptor(com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor) IndexJoinOptimizer(com.facebook.presto.sql.planner.optimizations.IndexJoinOptimizer) DistinctLimitOperatorFactory(com.facebook.presto.operator.DistinctLimitOperator.DistinctLimitOperatorFactory) StageExecutionDescriptor(com.facebook.presto.operator.StageExecutionDescriptor) CursorProcessor(com.facebook.presto.operator.project.CursorProcessor) Map(java.util.Map) QualifiedObjectName(com.facebook.presto.common.QualifiedObjectName) IndexJoinNode(com.facebook.presto.sql.planner.plan.IndexJoinNode) SystemSessionProperties.getDynamicFilteringMaxPerDriverSize(com.facebook.presto.SystemSessionProperties.getDynamicFilteringMaxPerDriverSize) NO_COMMIT(com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT) FragmentResultCacheManager(com.facebook.presto.operator.FragmentResultCacheManager) OrderingScheme(com.facebook.presto.spi.plan.OrderingScheme) PageFunctionCompiler(com.facebook.presto.sql.gen.PageFunctionCompiler) DynamicFilterPlaceholder(com.facebook.presto.expressions.DynamicFilters.DynamicFilterPlaceholder) PARTIAL(com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL) LookupOuterOperatorFactory(com.facebook.presto.operator.LookupOuterOperator.LookupOuterOperatorFactory) PageSinkManager(com.facebook.presto.split.PageSinkManager) SortOrder(com.facebook.presto.common.block.SortOrder) RowNumberNode(com.facebook.presto.sql.planner.plan.RowNumberNode) SqlFunctionProperties(com.facebook.presto.common.function.SqlFunctionProperties) PageProcessor(com.facebook.presto.operator.project.PageProcessor) StandaloneSpillerFactory(com.facebook.presto.spiller.StandaloneSpillerFactory) InternalAggregationFunction(com.facebook.presto.operator.aggregation.InternalAggregationFunction) LimitOperatorFactory(com.facebook.presto.operator.LimitOperator.LimitOperatorFactory) LimitNode(com.facebook.presto.spi.plan.LimitNode) FunctionMetadata(com.facebook.presto.spi.function.FunctionMetadata) LIFESPAN_COMMIT(com.facebook.presto.operator.PageSinkCommitStrategy.LIFESPAN_COMMIT) LocalPlannerAware(com.facebook.presto.operator.LocalPlannerAware) REPLICATED(com.facebook.presto.sql.planner.plan.JoinNode.DistributionType.REPLICATED) LocalMergeSourceOperatorFactory(com.facebook.presto.operator.exchange.LocalMergeSourceOperator.LocalMergeSourceOperatorFactory) SystemSessionProperties(com.facebook.presto.SystemSessionProperties) JoinFilterFunctionFactory(com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory) CreateHandle(com.facebook.presto.execution.scheduler.ExecutionWriterTarget.CreateHandle) JoinOperatorFactory(com.facebook.presto.operator.JoinOperatorFactory) SystemSessionProperties.isExchangeCompressionEnabled(com.facebook.presto.SystemSessionProperties.isExchangeCompressionEnabled) UnnestOperatorFactory(com.facebook.presto.operator.unnest.UnnestOperator.UnnestOperatorFactory) Supplier(java.util.function.Supplier) LookupJoinOperators(com.facebook.presto.operator.LookupJoinOperators) LinkedHashMap(java.util.LinkedHashMap) ScanFilterAndProjectOperatorFactory(com.facebook.presto.operator.ScanFilterAndProjectOperator.ScanFilterAndProjectOperatorFactory) UNGROUPED_EXECUTION(com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION) Lists(com.google.common.collect.Lists) LogicalRowExpressions(com.facebook.presto.expressions.LogicalRowExpressions) ConnectorIndex(com.facebook.presto.spi.ConnectorIndex) InternalPlanVisitor(com.facebook.presto.sql.planner.plan.InternalPlanVisitor) ImmutableSet.toImmutableSet(com.google.common.collect.ImmutableSet.toImmutableSet) IndexJoinLookupStats(com.facebook.presto.operator.index.IndexJoinLookupStats) MetadataDeleteOperatorFactory(com.facebook.presto.operator.MetadataDeleteOperator.MetadataDeleteOperatorFactory) SystemSessionProperties.getTaskPartitionedWriterCount(com.facebook.presto.SystemSessionProperties.getTaskPartitionedWriterCount) TableCommitContext(com.facebook.presto.operator.TableCommitContext) RefreshMaterializedViewHandle(com.facebook.presto.execution.scheduler.ExecutionWriterTarget.RefreshMaterializedViewHandle) Session(com.facebook.presto.Session) PageSinkCommitter(com.facebook.presto.operator.TableFinishOperator.PageSinkCommitter) TASK_COMMIT(com.facebook.presto.operator.PageSinkCommitStrategy.TASK_COMMIT) SCALED_WRITER_DISTRIBUTION(com.facebook.presto.sql.planner.SystemPartitioningHandle.SCALED_WRITER_DISTRIBUTION) Frame(com.facebook.presto.sql.planner.plan.WindowNode.Frame) Iterables.getOnlyElement(com.google.common.collect.Iterables.getOnlyElement) NestedLoopJoinBridge(com.facebook.presto.operator.NestedLoopJoinBridge) TableScanOperatorFactory(com.facebook.presto.operator.TableScanOperator.TableScanOperatorFactory) SphericalGeographyUtils.sphericalDistance(com.facebook.presto.geospatial.SphericalGeographyUtils.sphericalDistance) RecordSet(com.facebook.presto.spi.RecordSet) AnalyzeTableHandle(com.facebook.presto.metadata.AnalyzeTableHandle) RIGHT(com.facebook.presto.sql.planner.plan.JoinNode.Type.RIGHT) SqlFunctionId(com.facebook.presto.spi.function.SqlFunctionId) TypeSignature.parseTypeSignature(com.facebook.presto.common.type.TypeSignature.parseTypeSignature) REMOTE(com.facebook.presto.spi.plan.ProjectNode.Locality.REMOTE) TaskMetadataContext(com.facebook.presto.execution.TaskMetadataContext) RowExpressionInterpreter.rowExpressionInterpreter(com.facebook.presto.sql.planner.RowExpressionInterpreter.rowExpressionInterpreter) SystemSessionProperties.getFilterAndProjectMinOutputPageRowCount(com.facebook.presto.SystemSessionProperties.getFilterAndProjectMinOutputPageRowCount) SpillerFactory(com.facebook.presto.spiller.SpillerFactory) OuterOperatorFactoryResult(com.facebook.presto.operator.JoinOperatorFactory.OuterOperatorFactoryResult) MappedRecordSet(com.facebook.presto.split.MappedRecordSet) SystemSessionProperties.isWindowSpillEnabled(com.facebook.presto.SystemSessionProperties.isWindowSpillEnabled) Metadata(com.facebook.presto.metadata.Metadata) ExpressionTreeUtils.createSymbolReference(com.facebook.presto.sql.analyzer.ExpressionTreeUtils.createSymbolReference) COORDINATOR_DISTRIBUTION(com.facebook.presto.sql.planner.SystemPartitioningHandle.COORDINATOR_DISTRIBUTION) JsonCodec(com.facebook.airlift.json.JsonCodec) PartitionedLookupSourceFactory(com.facebook.presto.operator.PartitionedLookupSourceFactory) AggregationNode(com.facebook.presto.spi.plan.AggregationNode) ExplainAnalyzeNode(com.facebook.presto.sql.planner.plan.ExplainAnalyzeNode) DiscreteDomain.integers(com.google.common.collect.DiscreteDomain.integers) IntStream.range(java.util.stream.IntStream.range) RemoteSourceNode(com.facebook.presto.sql.planner.plan.RemoteSourceNode) FRAGMENT_CHANNEL(com.facebook.presto.operator.TableWriterUtils.FRAGMENT_CHANNEL) MetadataDeleteNode(com.facebook.presto.sql.planner.plan.MetadataDeleteNode) TaskManagerConfig(com.facebook.presto.execution.TaskManagerConfig) Expressions.constant(com.facebook.presto.sql.relational.Expressions.constant) SystemSessionProperties.isAggregationSpillEnabled(com.facebook.presto.SystemSessionProperties.isAggregationSpillEnabled) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) HashMultimap(com.google.common.collect.HashMultimap) AccumulatorFactory(com.facebook.presto.operator.aggregation.AccumulatorFactory) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) LookupSourceFactory(com.facebook.presto.operator.LookupSourceFactory) TopNRowNumberNode(com.facebook.presto.sql.planner.plan.TopNRowNumberNode) IndexLookupSourceFactory(com.facebook.presto.operator.index.IndexLookupSourceFactory) IndexSourceNode(com.facebook.presto.sql.planner.plan.IndexSourceNode) DynamicFilterSourceOperator(com.facebook.presto.operator.DynamicFilterSourceOperator) CallExpression(com.facebook.presto.spi.relation.CallExpression) FIXED_BROADCAST_DISTRIBUTION(com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_BROADCAST_DISTRIBUTION) VariableToChannelTranslator(com.facebook.presto.sql.relational.VariableToChannelTranslator) ImmutableSetMultimap(com.google.common.collect.ImmutableSetMultimap) OutputNode(com.facebook.presto.sql.planner.plan.OutputNode) HashBuilderOperatorFactory(com.facebook.presto.operator.HashBuilderOperator.HashBuilderOperatorFactory) SymbolReference(com.facebook.presto.sql.tree.SymbolReference) ImmutableSet(com.google.common.collect.ImmutableSet) Collection(java.util.Collection) SourceOperatorFactory(com.facebook.presto.operator.SourceOperatorFactory) LambdaDefinitionExpression(com.facebook.presto.spi.relation.LambdaDefinitionExpression) Collectors(java.util.stream.Collectors) MarkDistinctOperatorFactory(com.facebook.presto.operator.MarkDistinctOperator.MarkDistinctOperatorFactory) SystemSessionProperties.isExchangeChecksumEnabled(com.facebook.presto.SystemSessionProperties.isExchangeChecksumEnabled) SpatialJoinUtils.extractSupportedSpatialFunctions(com.facebook.presto.util.SpatialJoinUtils.extractSupportedSpatialFunctions) MoreFutures.addSuccessCallback(com.facebook.airlift.concurrent.MoreFutures.addSuccessCallback) DynamicTupleFilterFactory(com.facebook.presto.operator.index.DynamicTupleFilterFactory) Range.closedOpen(com.google.common.collect.Range.closedOpen) StreamingAggregationOperatorFactory(com.facebook.presto.operator.StreamingAggregationOperator.StreamingAggregationOperatorFactory) WindowFunctionSupplier(com.facebook.presto.operator.window.WindowFunctionSupplier) InputReferenceExpression(com.facebook.presto.spi.relation.InputReferenceExpression) SystemSessionProperties.isOptimizeCommonSubExpressions(com.facebook.presto.SystemSessionProperties.isOptimizeCommonSubExpressions) SpatialPredicate(com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialPredicate) ST_INTERSECTS(com.facebook.presto.util.SpatialJoinUtils.ST_INTERSECTS) AssignUniqueIdOperator(com.facebook.presto.operator.AssignUniqueIdOperator) ExpressionCompiler(com.facebook.presto.sql.gen.ExpressionCompiler) IntStream(java.util.stream.IntStream) ST_DISTANCE(com.facebook.presto.util.SpatialJoinUtils.ST_DISTANCE) DeterminismEvaluator(com.facebook.presto.spi.relation.DeterminismEvaluator) ROW_COUNT_CHANNEL(com.facebook.presto.operator.TableWriterUtils.ROW_COUNT_CHANNEL) ExplainAnalyzeOperatorFactory(com.facebook.presto.operator.ExplainAnalyzeOperator.ExplainAnalyzeOperatorFactory) FrameInfo(com.facebook.presto.operator.window.FrameInfo) PagesSerdeFactory(com.facebook.presto.execution.buffer.PagesSerdeFactory) UnionNode(com.facebook.presto.spi.plan.UnionNode) OperatorFactory(com.facebook.presto.operator.OperatorFactory) OptionalInt(java.util.OptionalInt) Function(java.util.function.Function) BlockEncodingSerde(com.facebook.presto.common.block.BlockEncodingSerde) Inject(javax.inject.Inject) DriverFactory(com.facebook.presto.operator.DriverFactory) ImmutableList(com.google.common.collect.ImmutableList) PagesSpatialIndexFactory(com.facebook.presto.operator.PagesSpatialIndexFactory) SystemSessionProperties.isJoinSpillingEnabled(com.facebook.presto.SystemSessionProperties.isJoinSpillingEnabled) ExecutionWriterTarget(com.facebook.presto.execution.scheduler.ExecutionWriterTarget) IndexManager(com.facebook.presto.index.IndexManager) SystemSessionProperties.getDynamicFilteringMaxPerDriverRowCount(com.facebook.presto.SystemSessionProperties.getDynamicFilteringMaxPerDriverRowCount) DynamicFilters(com.facebook.presto.expressions.DynamicFilters) SingleStreamSpillerFactory(com.facebook.presto.spiller.SingleStreamSpillerFactory) Type(com.facebook.presto.common.type.Type) JoinNode(com.facebook.presto.sql.planner.plan.JoinNode) SystemSessionProperties.isOptimizedRepartitioningEnabled(com.facebook.presto.SystemSessionProperties.isOptimizedRepartitioningEnabled) TypeUtils.writeNativeValue(com.facebook.presto.common.type.TypeUtils.writeNativeValue) OutputFactory(com.facebook.presto.operator.OutputFactory) JoinFilterFunctionCompiler(com.facebook.presto.sql.gen.JoinFilterFunctionCompiler) Reflection.constructorMethodHandle(com.facebook.presto.util.Reflection.constructorMethodHandle) StatisticsWriterOperatorFactory(com.facebook.presto.operator.StatisticsWriterOperator.StatisticsWriterOperatorFactory) SystemSessionProperties.getTaskWriterCount(com.facebook.presto.SystemSessionProperties.getTaskWriterCount) PlanNode(com.facebook.presto.spi.plan.PlanNode) FunctionHandle(com.facebook.presto.spi.function.FunctionHandle) DeleteScanInfo(com.facebook.presto.execution.scheduler.TableWriteInfo.DeleteScanInfo) SystemSessionProperties.getAggregationOperatorUnspillMemoryLimit(com.facebook.presto.SystemSessionProperties.getAggregationOperatorUnspillMemoryLimit) SystemSessionProperties.isEnableDynamicFiltering(com.facebook.presto.SystemSessionProperties.isEnableDynamicFiltering) RowExpressionNodeInliner.replaceExpression(com.facebook.presto.expressions.RowExpressionNodeInliner.replaceExpression) Page(com.facebook.presto.common.Page) Arrays(java.util.Arrays) PageSinkCommitStrategy(com.facebook.presto.operator.PageSinkCommitStrategy) STATS_START_CHANNEL(com.facebook.presto.operator.TableWriterUtils.STATS_START_CHANNEL) TableWriterOperatorFactory(com.facebook.presto.operator.TableWriterOperator.TableWriterOperatorFactory) PageSourceProvider(com.facebook.presto.split.PageSourceProvider) ST_EQUALS(com.facebook.presto.util.SpatialJoinUtils.ST_EQUALS) OutputBuffer(com.facebook.presto.execution.buffer.OutputBuffer) SqlInvokedFunction(com.facebook.presto.spi.function.SqlInvokedFunction) PageChannelSelector(com.facebook.presto.operator.exchange.PageChannelSelector) ST_OVERLAPS(com.facebook.presto.util.SpatialJoinUtils.ST_OVERLAPS) TypeSignature(com.facebook.presto.common.type.TypeSignature) FULL(com.facebook.presto.sql.planner.plan.JoinNode.Type.FULL) PageBuilder(com.facebook.presto.common.PageBuilder) ValuesNode(com.facebook.presto.spi.plan.ValuesNode) TableWriteInfo(com.facebook.presto.execution.scheduler.TableWriteInfo) WindowFunctionDefinition.window(com.facebook.presto.operator.WindowFunctionDefinition.window) TableWriterMergeOperatorFactory(com.facebook.presto.operator.TableWriterMergeOperator.TableWriterMergeOperatorFactory) NestedLoopBuildOperatorFactory(com.facebook.presto.operator.NestedLoopBuildOperator.NestedLoopBuildOperatorFactory) PipelineExecutionStrategy(com.facebook.presto.operator.PipelineExecutionStrategy) LocalExchangeSinkOperatorFactory(com.facebook.presto.operator.exchange.LocalExchangeSinkOperator.LocalExchangeSinkOperatorFactory) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) Set(java.util.Set) GroupIdOperator(com.facebook.presto.operator.GroupIdOperator) ST_TOUCHES(com.facebook.presto.util.SpatialJoinUtils.ST_TOUCHES) InsertHandle(com.facebook.presto.execution.scheduler.ExecutionWriterTarget.InsertHandle) EnforceSingleRowOperator(com.facebook.presto.operator.EnforceSingleRowOperator) SystemSessionProperties.isSpillEnabled(com.facebook.presto.SystemSessionProperties.isSpillEnabled) ProjectNode(com.facebook.presto.spi.plan.ProjectNode) StageExecutionId(com.facebook.presto.execution.StageExecutionId) AssignUniqueId(com.facebook.presto.sql.planner.plan.AssignUniqueId) LocalExchangeSourceOperatorFactory(com.facebook.presto.operator.exchange.LocalExchangeSourceOperator.LocalExchangeSourceOperatorFactory) FilterAndProjectOperatorFactory(com.facebook.presto.operator.FilterAndProjectOperator.FilterAndProjectOperatorFactory) NestedLoopJoinOperatorFactory(com.facebook.presto.operator.NestedLoopJoinOperator.NestedLoopJoinOperatorFactory) AbstractJoinNode(com.facebook.presto.sql.planner.plan.AbstractJoinNode) FieldSetFilteringRecordSet(com.facebook.presto.operator.index.FieldSetFilteringRecordSet) FragmentResultCacheContext.createFragmentResultCacheContext(com.facebook.presto.execution.FragmentResultCacheContext.createFragmentResultCacheContext) Iterables(com.google.common.collect.Iterables) FIXED_ARBITRARY_DISTRIBUTION(com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_ARBITRARY_DISTRIBUTION) SINGLE_DISTRIBUTION(com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION) ContiguousSet(com.google.common.collect.ContiguousSet) SystemSessionProperties.getFilterAndProjectMinOutputPageSize(com.facebook.presto.SystemSessionProperties.getFilterAndProjectMinOutputPageSize) GroupIdNode(com.facebook.presto.sql.planner.plan.GroupIdNode) Assignments(com.facebook.presto.spi.plan.Assignments) DistinctLimitNode(com.facebook.presto.spi.plan.DistinctLimitNode) ConstantExpression(com.facebook.presto.spi.relation.ConstantExpression) TopNOperatorFactory(com.facebook.presto.operator.TopNOperator.TopNOperatorFactory) ValuesOperatorFactory(com.facebook.presto.operator.ValuesOperator.ValuesOperatorFactory) Builder(com.google.common.collect.ImmutableMap.Builder) ArrayList(java.util.ArrayList) OptimizedPartitionedOutputFactory(com.facebook.presto.operator.repartition.OptimizedPartitionedOutputOperator.OptimizedPartitionedOutputFactory) TableWriterMergeNode(com.facebook.presto.sql.planner.plan.TableWriterMergeNode) AggregationOperatorFactory(com.facebook.presto.operator.AggregationOperator.AggregationOperatorFactory) SystemSessionProperties.isDistinctAggregationSpillEnabled(com.facebook.presto.SystemSessionProperties.isDistinctAggregationSpillEnabled) SpatialIndexBuilderOperatorFactory(com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialIndexBuilderOperatorFactory) TableHandle(com.facebook.presto.spi.TableHandle) FunctionResolution(com.facebook.presto.sql.relational.FunctionResolution) BIGINT(com.facebook.presto.common.type.BigintType.BIGINT) TaskContext(com.facebook.presto.operator.TaskContext) WindowNode(com.facebook.presto.sql.planner.plan.WindowNode) SystemSessionProperties.getDynamicFilteringRangeRowLimitPerDriver(com.facebook.presto.SystemSessionProperties.getDynamicFilteringRangeRowLimitPerDriver) TableFinisher(com.facebook.presto.operator.TableFinishOperator.TableFinisher) OperatorType(com.facebook.presto.common.function.OperatorType) LocalExchangeFactory(com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeFactory) ColumnHandle(com.facebook.presto.spi.ColumnHandle) TableScanNode(com.facebook.presto.spi.plan.TableScanNode) SemiJoinNode(com.facebook.presto.sql.planner.plan.SemiJoinNode) TopNNode(com.facebook.presto.spi.plan.TopNNode) Aggregation(com.facebook.presto.spi.plan.AggregationNode.Aggregation) FunctionAndTypeManager(com.facebook.presto.metadata.FunctionAndTypeManager) AssignmentUtils.identityAssignments(com.facebook.presto.sql.planner.plan.AssignmentUtils.identityAssignments) PartitioningSpillerFactory(com.facebook.presto.spiller.PartitioningSpillerFactory) LambdaProvider(com.facebook.presto.operator.aggregation.LambdaProvider) SpatialJoinNode(com.facebook.presto.sql.planner.plan.SpatialJoinNode) SortNode(com.facebook.presto.sql.planner.plan.SortNode) VariableReferenceExpression(com.facebook.presto.spi.relation.VariableReferenceExpression) TableWriterNode(com.facebook.presto.sql.planner.plan.TableWriterNode) TableFinishOperatorFactory(com.facebook.presto.operator.TableFinishOperator.TableFinishOperatorFactory) INTERMEDIATE(com.facebook.presto.spi.plan.AggregationNode.Step.INTERMEDIATE) PagesIndex(com.facebook.presto.operator.PagesIndex) IndexSourceOperator(com.facebook.presto.operator.index.IndexSourceOperator) TaskOutputFactory(com.facebook.presto.operator.TaskOutputOperator.TaskOutputFactory) OrderByOperatorFactory(com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory) SpatialJoinOperatorFactory(com.facebook.presto.operator.SpatialJoinOperator.SpatialJoinOperatorFactory) TopNRowNumberOperator(com.facebook.presto.operator.TopNRowNumberOperator) LOCAL(com.facebook.presto.spi.plan.ProjectNode.Locality.LOCAL) ST_WITHIN(com.facebook.presto.util.SpatialJoinUtils.ST_WITHIN) HashAggregationOperatorFactory(com.facebook.presto.operator.HashAggregationOperator.HashAggregationOperatorFactory) ConnectorMetadataUpdaterManager(com.facebook.presto.metadata.ConnectorMetadataUpdaterManager) SystemSessionProperties.getTaskConcurrency(com.facebook.presto.SystemSessionProperties.getTaskConcurrency) DeleteHandle(com.facebook.presto.execution.scheduler.ExecutionWriterTarget.DeleteHandle) LambdaBytecodeGenerator.compileLambdaProvider(com.facebook.presto.sql.gen.LambdaBytecodeGenerator.compileLambdaProvider) SetBuilderOperatorFactory(com.facebook.presto.operator.SetBuilderOperator.SetBuilderOperatorFactory) Step(com.facebook.presto.spi.plan.AggregationNode.Step) NestedLoopJoinPagesSupplier(com.facebook.presto.operator.NestedLoopJoinPagesSupplier) ImmutableMap(com.google.common.collect.ImmutableMap) Predicate(java.util.function.Predicate) JoinBridgeManager(com.facebook.presto.operator.JoinBridgeManager) CONTEXT_CHANNEL(com.facebook.presto.operator.TableWriterUtils.CONTEXT_CHANNEL) IndexBuildDriverFactoryProvider(com.facebook.presto.operator.index.IndexBuildDriverFactoryProvider) TRUE_CONSTANT(com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT) String.format(java.lang.String.format) Preconditions.checkState(com.google.common.base.Preconditions.checkState) FragmentResultCacheContext(com.facebook.presto.execution.FragmentResultCacheContext) DataSize(io.airlift.units.DataSize) List(java.util.List) NOT_SUPPORTED(com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED) SampleNode(com.facebook.presto.sql.planner.plan.SampleNode) Optional(java.util.Optional) ST_CONTAINS(com.facebook.presto.util.SpatialJoinUtils.ST_CONTAINS) MarkDistinctNode(com.facebook.presto.spi.plan.MarkDistinctNode) INNER(com.facebook.presto.sql.planner.plan.JoinNode.Type.INNER) DynamicFilterExtractResult(com.facebook.presto.expressions.DynamicFilters.DynamicFilterExtractResult) PlanNodeId(com.facebook.presto.spi.plan.PlanNodeId) Locality(com.facebook.presto.spi.plan.ProjectNode.Locality) HashMap(java.util.HashMap) SystemSessionProperties.getIndexLoaderTimeout(com.facebook.presto.SystemSessionProperties.getIndexLoaderTimeout) PrestoException(com.facebook.presto.spi.PrestoException) Multimap(com.google.common.collect.Multimap) ImmutableBiMap(com.google.common.collect.ImmutableBiMap) FilterNode(com.facebook.presto.spi.plan.FilterNode) ST_CROSSES(com.facebook.presto.util.SpatialJoinUtils.ST_CROSSES) DevNullOperatorFactory(com.facebook.presto.operator.DevNullOperator.DevNullOperatorFactory) OrderingCompiler(com.facebook.presto.sql.gen.OrderingCompiler) Verify.verify(com.google.common.base.Verify.verify) PartitionedOutputFactory(com.facebook.presto.operator.repartition.PartitionedOutputOperator.PartitionedOutputFactory) FINAL(com.facebook.presto.spi.plan.AggregationNode.Step.FINAL) Objects.requireNonNull(java.util.Objects.requireNonNull) ExplainAnalyzeContext(com.facebook.presto.execution.ExplainAnalyzeContext) SpatialJoinUtils.extractSupportedSpatialComparisons(com.facebook.presto.util.SpatialJoinUtils.extractSupportedSpatialComparisons) MemoryManagerConfig(com.facebook.presto.memory.MemoryManagerConfig) SystemSessionProperties.isOrderByAggregationSpillEnabled(com.facebook.presto.SystemSessionProperties.isOrderByAggregationSpillEnabled) HashSemiJoinOperatorFactory(com.facebook.presto.operator.HashSemiJoinOperator.HashSemiJoinOperatorFactory) UnnestNode(com.facebook.presto.sql.planner.plan.UnnestNode) RowExpression(com.facebook.presto.spi.relation.RowExpression) VerifyException(com.google.common.base.VerifyException) WindowOperatorFactory(com.facebook.presto.operator.WindowOperator.WindowOperatorFactory) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) RemoteProjectOperatorFactory(com.facebook.presto.operator.RemoteProjectOperator.RemoteProjectOperatorFactory) PartitionFunction(com.facebook.presto.operator.PartitionFunction) WindowFunctionDefinition(com.facebook.presto.operator.WindowFunctionDefinition) Ints(com.google.common.primitives.Ints) TupleDomain(com.facebook.presto.common.predicate.TupleDomain) DeleteNode(com.facebook.presto.sql.planner.plan.DeleteNode) SetMultimap(com.google.common.collect.SetMultimap) OPTIMIZED(com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED) SetSupplier(com.facebook.presto.operator.SetBuilderOperator.SetSupplier) VisibleForTesting(com.google.common.annotations.VisibleForTesting) COMPILER_ERROR(com.facebook.presto.spi.StandardErrorCode.COMPILER_ERROR) TableFinishNode(com.facebook.presto.sql.planner.plan.TableFinishNode) BYTE(io.airlift.units.DataSize.Unit.BYTE) DeleteOperatorFactory(com.facebook.presto.operator.DeleteOperator.DeleteOperatorFactory) JoinCompiler(com.facebook.presto.sql.gen.JoinCompiler) EnforceSingleRowNode(com.facebook.presto.sql.planner.plan.EnforceSingleRowNode) ExchangeNode(com.facebook.presto.sql.planner.plan.ExchangeNode) StatisticsWriterNode(com.facebook.presto.sql.planner.plan.StatisticsWriterNode) PartitionFunction(com.facebook.presto.operator.PartitionFunction) Optional(java.util.Optional) ConstantExpression(com.facebook.presto.spi.relation.ConstantExpression) RowExpression(com.facebook.presto.spi.relation.RowExpression) OptionalInt(java.util.OptionalInt) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Type(com.facebook.presto.common.type.Type) OperatorType(com.facebook.presto.common.function.OperatorType) VariableReferenceExpression(com.facebook.presto.spi.relation.VariableReferenceExpression)

Aggregations

PartitionFunction (com.facebook.presto.operator.PartitionFunction)6 Page (com.facebook.presto.common.Page)4 Type (com.facebook.presto.common.type.Type)4 ImmutableList (com.google.common.collect.ImmutableList)4 List (java.util.List)4 Session (com.facebook.presto.Session)2 BlockAssertions.createMapType (com.facebook.presto.block.BlockAssertions.createMapType)2 ArrayType (com.facebook.presto.common.type.ArrayType)2 BIGINT (com.facebook.presto.common.type.BigintType.BIGINT)2 DecimalType.createDecimalType (com.facebook.presto.common.type.DecimalType.createDecimalType)2 PrecomputedHashGenerator (com.facebook.presto.operator.PrecomputedHashGenerator)2 LocalPartitionGenerator (com.facebook.presto.operator.exchange.LocalPartitionGenerator)2 ArrayList (java.util.ArrayList)2 Optional (java.util.Optional)2 OptionalInt (java.util.OptionalInt)2 Test (org.testng.annotations.Test)2 MoreFutures.addSuccessCallback (com.facebook.airlift.concurrent.MoreFutures.addSuccessCallback)1 Threads.daemonThreadsNamed (com.facebook.airlift.concurrent.Threads.daemonThreadsNamed)1 JsonCodec (com.facebook.airlift.json.JsonCodec)1 Assertions.assertBetweenInclusive (com.facebook.airlift.testing.Assertions.assertBetweenInclusive)1