Class OptimizerConfig

java.lang.Object
io.trino.sql.planner.OptimizerConfig

@DefunctConfig({"adaptive-partial-aggregation.min-rows","preferred-write-partitioning-min-number-of-partitions","optimizer.use-mark-distinct"}) public class OptimizerConfig extends Object
  • Constructor Details

    • OptimizerConfig

      public OptimizerConfig()
  • Method Details

    • getCpuCostWeight

      public double getCpuCostWeight()
    • setCpuCostWeight

      @Config("cpu-cost-weight") public OptimizerConfig setCpuCostWeight(double cpuCostWeight)
    • getMemoryCostWeight

      public double getMemoryCostWeight()
    • setMemoryCostWeight

      @Config("memory-cost-weight") public OptimizerConfig setMemoryCostWeight(double memoryCostWeight)
    • getNetworkCostWeight

      public double getNetworkCostWeight()
    • setNetworkCostWeight

      @Config("network-cost-weight") public OptimizerConfig setNetworkCostWeight(double networkCostWeight)
    • getJoinDistributionType

      public OptimizerConfig.JoinDistributionType getJoinDistributionType()
    • setJoinDistributionType

      @Config("join-distribution-type") public OptimizerConfig setJoinDistributionType(OptimizerConfig.JoinDistributionType joinDistributionType)
    • getJoinMaxBroadcastTableSize

      @NotNull public @NotNull io.airlift.units.DataSize getJoinMaxBroadcastTableSize()
    • setJoinMaxBroadcastTableSize

      @Config("join-max-broadcast-table-size") public OptimizerConfig setJoinMaxBroadcastTableSize(io.airlift.units.DataSize joinMaxBroadcastTableSize)
    • getJoinMultiClauseIndependenceFactor

      @Min(0L) @Max(1L) public @jakarta.validation.constraints.Min(0L),@jakarta.validation.constraints.Max(1L) double getJoinMultiClauseIndependenceFactor()
    • setJoinMultiClauseIndependenceFactor

      @Config("optimizer.join-multi-clause-independence-factor") public OptimizerConfig setJoinMultiClauseIndependenceFactor(double joinMultiClauseIndependenceFactor)
    • getJoinReorderingStrategy

      public OptimizerConfig.JoinReorderingStrategy getJoinReorderingStrategy()
    • setJoinReorderingStrategy

      @Config("optimizer.join-reordering-strategy") public OptimizerConfig setJoinReorderingStrategy(OptimizerConfig.JoinReorderingStrategy joinReorderingStrategy)
    • getMaxReorderedJoins

      @Min(2L) public @jakarta.validation.constraints.Min(2L) int getMaxReorderedJoins()
    • setMaxReorderedJoins

      @Config("optimizer.max-reordered-joins") public OptimizerConfig setMaxReorderedJoins(int maxReorderedJoins)
    • getMaxPrefetchedInformationSchemaPrefixes

      @Min(1L) public @jakarta.validation.constraints.Min(1L) int getMaxPrefetchedInformationSchemaPrefixes()
    • setMaxPrefetchedInformationSchemaPrefixes

      @Config("optimizer.experimental-max-prefetched-information-schema-prefixes") public OptimizerConfig setMaxPrefetchedInformationSchemaPrefixes(int maxPrefetchedInformationSchemaPrefixes)
    • isEnableStatsCalculator

      public boolean isEnableStatsCalculator()
    • setEnableStatsCalculator

      @Config("enable-stats-calculator") @LegacyConfig("experimental.enable-stats-calculator") public OptimizerConfig setEnableStatsCalculator(boolean enableStatsCalculator)
    • isStatisticsPrecalculationForPushdownEnabled

      public boolean isStatisticsPrecalculationForPushdownEnabled()
    • setStatisticsPrecalculationForPushdownEnabled

      @Config("statistics-precalculation-for-pushdown.enabled") public OptimizerConfig setStatisticsPrecalculationForPushdownEnabled(boolean statisticsPrecalculationForPushdownEnabled)
    • isCollectPlanStatisticsForAllQueries

      public boolean isCollectPlanStatisticsForAllQueries()
    • setCollectPlanStatisticsForAllQueries

      @Config("collect-plan-statistics-for-all-queries") public OptimizerConfig setCollectPlanStatisticsForAllQueries(boolean collectPlanStatisticsForAllQueries)
    • isIgnoreStatsCalculatorFailures

      public boolean isIgnoreStatsCalculatorFailures()
    • setIgnoreStatsCalculatorFailures

      @Config("optimizer.ignore-stats-calculator-failures") public OptimizerConfig setIgnoreStatsCalculatorFailures(boolean ignoreStatsCalculatorFailures)
    • isDefaultFilterFactorEnabled

      public boolean isDefaultFilterFactorEnabled()
    • setDefaultFilterFactorEnabled

      @Config("optimizer.default-filter-factor-enabled") public OptimizerConfig setDefaultFilterFactorEnabled(boolean defaultFilterFactorEnabled)
    • getFilterConjunctionIndependenceFactor

      @Min(0L) @Max(1L) public @jakarta.validation.constraints.Min(0L),@jakarta.validation.constraints.Max(1L) double getFilterConjunctionIndependenceFactor()
    • setFilterConjunctionIndependenceFactor

      @Config("optimizer.filter-conjunction-independence-factor") public OptimizerConfig setFilterConjunctionIndependenceFactor(double filterConjunctionIndependenceFactor)
    • isNonEstimatablePredicateApproximationEnabled

      public boolean isNonEstimatablePredicateApproximationEnabled()
    • setNonEstimatablePredicateApproximationEnabled

      @Config("optimizer.non-estimatable-predicate-approximation.enabled") public OptimizerConfig setNonEstimatablePredicateApproximationEnabled(boolean nonEstimatablePredicateApproximationEnabled)
    • isColocatedJoinsEnabled

      public boolean isColocatedJoinsEnabled()
    • setColocatedJoinsEnabled

      @Config("colocated-joins-enabled") public OptimizerConfig setColocatedJoinsEnabled(boolean colocatedJoinsEnabled)
    • isSpatialJoinsEnabled

      public boolean isSpatialJoinsEnabled()
    • setSpatialJoinsEnabled

      @Config("spatial-joins-enabled") public OptimizerConfig setSpatialJoinsEnabled(boolean spatialJoinsEnabled)
    • isDistributedSortEnabled

      public boolean isDistributedSortEnabled()
    • setDistributedSortEnabled

      @Config("distributed-sort") public OptimizerConfig setDistributedSortEnabled(boolean enabled)
    • isUsePreferredWritePartitioning

      public boolean isUsePreferredWritePartitioning()
    • setUsePreferredWritePartitioning

      @Config("use-preferred-write-partitioning") public OptimizerConfig setUsePreferredWritePartitioning(boolean usePreferredWritePartitioning)
    • getIterativeOptimizerTimeout

      public io.airlift.units.Duration getIterativeOptimizerTimeout()
    • setIterativeOptimizerTimeout

      @Config("iterative-optimizer-timeout") @LegacyConfig("experimental.iterative-optimizer-timeout") public OptimizerConfig setIterativeOptimizerTimeout(io.airlift.units.Duration timeout)
    • isOptimizeMixedDistinctAggregations

      public boolean isOptimizeMixedDistinctAggregations()
    • setOptimizeMixedDistinctAggregations

      @Config("optimizer.optimize-mixed-distinct-aggregations") public OptimizerConfig setOptimizeMixedDistinctAggregations(boolean value)
    • isEnableIntermediateAggregations

      public boolean isEnableIntermediateAggregations()
    • setEnableIntermediateAggregations

      @Config("optimizer.enable-intermediate-aggregations") public OptimizerConfig setEnableIntermediateAggregations(boolean enableIntermediateAggregations)
    • isPushAggregationThroughOuterJoin

      public boolean isPushAggregationThroughOuterJoin()
    • setPushAggregationThroughOuterJoin

      @Config("optimizer.push-aggregation-through-outer-join") @LegacyConfig("optimizer.push-aggregation-through-join") public OptimizerConfig setPushAggregationThroughOuterJoin(boolean pushAggregationThroughOuterJoin)
    • isPushPartialAggregationThroughJoin

      public boolean isPushPartialAggregationThroughJoin()
    • setPushPartialAggregationThroughJoin

      @Config("optimizer.push-partial-aggregation-through-join") public OptimizerConfig setPushPartialAggregationThroughJoin(boolean pushPartialAggregationThroughJoin)
    • isPreAggregateCaseAggregationsEnabled

      public boolean isPreAggregateCaseAggregationsEnabled()
    • setPreAggregateCaseAggregationsEnabled

      @Config("optimizer.pre-aggregate-case-aggregations.enabled") public OptimizerConfig setPreAggregateCaseAggregationsEnabled(boolean preAggregateCaseAggregationsEnabled)
    • isOptimizeMetadataQueries

      public boolean isOptimizeMetadataQueries()
    • setOptimizeMetadataQueries

      @Config("optimizer.optimize-metadata-queries") public OptimizerConfig setOptimizeMetadataQueries(boolean optimizeMetadataQueries)
    • getMarkDistinctStrategy

      @Nullable public OptimizerConfig.MarkDistinctStrategy getMarkDistinctStrategy()
    • setMarkDistinctStrategy

      @Config("optimizer.mark-distinct-strategy") public OptimizerConfig setMarkDistinctStrategy(OptimizerConfig.MarkDistinctStrategy markDistinctStrategy)
    • isPreferPartialAggregation

      public boolean isPreferPartialAggregation()
    • setPreferPartialAggregation

      @Config("optimizer.prefer-partial-aggregation") public OptimizerConfig setPreferPartialAggregation(boolean value)
    • isEnableForcedExchangeBelowGroupId

      public boolean isEnableForcedExchangeBelowGroupId()
    • setEnableForcedExchangeBelowGroupId

      @Config("enable-forced-exchange-below-group-id") public OptimizerConfig setEnableForcedExchangeBelowGroupId(boolean enableForcedExchangeBelowGroupId)
    • isOptimizeTopNRanking

      public boolean isOptimizeTopNRanking()
    • setOptimizeTopNRanking

      @Config("optimizer.optimize-top-n-ranking") @LegacyConfig("optimizer.optimize-top-n-row-number") public OptimizerConfig setOptimizeTopNRanking(boolean optimizeTopNRanking)
    • isOptimizeHashGeneration

      public boolean isOptimizeHashGeneration()
    • setOptimizeHashGeneration

      @Config("optimizer.optimize-hash-generation") public OptimizerConfig setOptimizeHashGeneration(boolean optimizeHashGeneration)
    • isPushTableWriteThroughUnion

      public boolean isPushTableWriteThroughUnion()
    • setPushTableWriteThroughUnion

      @Config("optimizer.push-table-write-through-union") public OptimizerConfig setPushTableWriteThroughUnion(boolean pushTableWriteThroughUnion)
    • isDictionaryAggregation

      public boolean isDictionaryAggregation()
    • setDictionaryAggregation

      @Config("optimizer.dictionary-aggregation") public OptimizerConfig setDictionaryAggregation(boolean dictionaryAggregation)
    • isSkipRedundantSort

      public boolean isSkipRedundantSort()
    • setSkipRedundantSort

      @Config("optimizer.skip-redundant-sort") public OptimizerConfig setSkipRedundantSort(boolean value)
    • isComplexExpressionPushdownEnabled

      public boolean isComplexExpressionPushdownEnabled()
    • setComplexExpressionPushdownEnabled

      @Config("optimizer.complex-expression-pushdown.enabled") public OptimizerConfig setComplexExpressionPushdownEnabled(boolean complexExpressionPushdownEnabled)
    • isPredicatePushdownUseTableProperties

      public boolean isPredicatePushdownUseTableProperties()
    • setPredicatePushdownUseTableProperties

      @Config("optimizer.predicate-pushdown-use-table-properties") public OptimizerConfig setPredicatePushdownUseTableProperties(boolean predicatePushdownUseTableProperties)
    • isIgnoreDownstreamPreferences

      public boolean isIgnoreDownstreamPreferences()
    • setIgnoreDownstreamPreferences

      @Config("optimizer.ignore-downstream-preferences") public OptimizerConfig setIgnoreDownstreamPreferences(boolean ignoreDownstreamPreferences)
    • isRewriteFilteringSemiJoinToInnerJoin

      public boolean isRewriteFilteringSemiJoinToInnerJoin()
    • setRewriteFilteringSemiJoinToInnerJoin

      @Config("optimizer.rewrite-filtering-semi-join-to-inner-join") public OptimizerConfig setRewriteFilteringSemiJoinToInnerJoin(boolean rewriteFilteringSemiJoinToInnerJoin)
    • isOptimizeDuplicateInsensitiveJoins

      public boolean isOptimizeDuplicateInsensitiveJoins()
    • setOptimizeDuplicateInsensitiveJoins

      @Config("optimizer.optimize-duplicate-insensitive-joins") public OptimizerConfig setOptimizeDuplicateInsensitiveJoins(boolean optimizeDuplicateInsensitiveJoins)
    • isUseLegacyWindowFilterPushdown

      public boolean isUseLegacyWindowFilterPushdown()
    • setUseLegacyWindowFilterPushdown

      @Config("optimizer.use-legacy-window-filter-pushdown") public OptimizerConfig setUseLegacyWindowFilterPushdown(boolean useLegacyWindowFilterPushdown)
    • isUseTableScanNodePartitioning

      public boolean isUseTableScanNodePartitioning()
    • setUseTableScanNodePartitioning

      @Config("optimizer.use-table-scan-node-partitioning") @LegacyConfig("optimizer.plan-with-table-node-partitioning") public OptimizerConfig setUseTableScanNodePartitioning(boolean useTableScanNodePartitioning)
    • getTableScanNodePartitioningMinBucketToTaskRatio

      @Min(0L) public @jakarta.validation.constraints.Min(0L) double getTableScanNodePartitioningMinBucketToTaskRatio()
    • setTableScanNodePartitioningMinBucketToTaskRatio

      @Config("optimizer.table-scan-node-partitioning-min-bucket-to-task-ratio") public OptimizerConfig setTableScanNodePartitioningMinBucketToTaskRatio(double tableScanNodePartitioningMinBucketToTaskRatio)
    • isMergeProjectWithValues

      public boolean isMergeProjectWithValues()
    • setMergeProjectWithValues

      @Config("optimizer.merge-project-with-values") public OptimizerConfig setMergeProjectWithValues(boolean mergeProjectWithValues)
    • isForceSingleNodeOutput

      public boolean isForceSingleNodeOutput()
    • setForceSingleNodeOutput

      @Config("optimizer.force-single-node-output") public OptimizerConfig setForceSingleNodeOutput(boolean value)
    • isAdaptivePartialAggregationEnabled

      public boolean isAdaptivePartialAggregationEnabled()
    • setAdaptivePartialAggregationEnabled

      @Config("adaptive-partial-aggregation.enabled") public OptimizerConfig setAdaptivePartialAggregationEnabled(boolean adaptivePartialAggregationEnabled)
    • getAdaptivePartialAggregationUniqueRowsRatioThreshold

      public double getAdaptivePartialAggregationUniqueRowsRatioThreshold()
    • setAdaptivePartialAggregationUniqueRowsRatioThreshold

      @Config("adaptive-partial-aggregation.unique-rows-ratio-threshold") public OptimizerConfig setAdaptivePartialAggregationUniqueRowsRatioThreshold(double adaptivePartialAggregationUniqueRowsRatioThreshold)
    • getJoinPartitionedBuildMinRowCount

      @Min(0L) public @jakarta.validation.constraints.Min(0L) long getJoinPartitionedBuildMinRowCount()
    • setJoinPartitionedBuildMinRowCount

      @Config("optimizer.join-partitioned-build-min-row-count") public OptimizerConfig setJoinPartitionedBuildMinRowCount(long joinPartitionedBuildMinRowCount)
    • getMinInputSizePerTask

      @NotNull public @NotNull io.airlift.units.DataSize getMinInputSizePerTask()
    • setMinInputSizePerTask

      @Config("optimizer.min-input-size-per-task") public OptimizerConfig setMinInputSizePerTask(io.airlift.units.DataSize minInputSizePerTask)
    • getMinInputRowsPerTask

      @Min(0L) public @jakarta.validation.constraints.Min(0L) long getMinInputRowsPerTask()
    • setMinInputRowsPerTask

      @Config("optimizer.min-input-rows-per-task") public OptimizerConfig setMinInputRowsPerTask(long minInputRowsPerTask)
    • isUseExactPartitioning

      public boolean isUseExactPartitioning()
    • setUseExactPartitioning

      @Config("optimizer.use-exact-partitioning") public OptimizerConfig setUseExactPartitioning(boolean useExactPartitioning)
    • isUseCostBasedPartitioning

      public boolean isUseCostBasedPartitioning()
    • setUseCostBasedPartitioning

      @Config("optimizer.use-cost-based-partitioning") public OptimizerConfig setUseCostBasedPartitioning(boolean useCostBasedPartitioning)