Package io.trino.sql.planner
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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enumstatic enum -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoubledouble@jakarta.validation.constraints.Min(0L),@jakarta.validation.constraints.Max(1L) doubleio.airlift.units.Duration@NotNull io.airlift.units.DataSize@jakarta.validation.constraints.Min(0L),@jakarta.validation.constraints.Max(1L) double@jakarta.validation.constraints.Min(0L) long@jakarta.validation.constraints.Min(1L) int@jakarta.validation.constraints.Min(2L) intdouble@jakarta.validation.constraints.Min(0L) long@NotNull io.airlift.units.DataSizedouble@jakarta.validation.constraints.Min(0L) doublebooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleansetAdaptivePartialAggregationEnabled(boolean adaptivePartialAggregationEnabled) setAdaptivePartialAggregationUniqueRowsRatioThreshold(double adaptivePartialAggregationUniqueRowsRatioThreshold) setCollectPlanStatisticsForAllQueries(boolean collectPlanStatisticsForAllQueries) setColocatedJoinsEnabled(boolean colocatedJoinsEnabled) setComplexExpressionPushdownEnabled(boolean complexExpressionPushdownEnabled) setCpuCostWeight(double cpuCostWeight) setDefaultFilterFactorEnabled(boolean defaultFilterFactorEnabled) setDictionaryAggregation(boolean dictionaryAggregation) setDistributedSortEnabled(boolean enabled) setEnableForcedExchangeBelowGroupId(boolean enableForcedExchangeBelowGroupId) setEnableIntermediateAggregations(boolean enableIntermediateAggregations) setEnableStatsCalculator(boolean enableStatsCalculator) setFilterConjunctionIndependenceFactor(double filterConjunctionIndependenceFactor) setForceSingleNodeOutput(boolean value) setIgnoreDownstreamPreferences(boolean ignoreDownstreamPreferences) setIgnoreStatsCalculatorFailures(boolean ignoreStatsCalculatorFailures) setIterativeOptimizerTimeout(io.airlift.units.Duration timeout) setJoinDistributionType(OptimizerConfig.JoinDistributionType joinDistributionType) setJoinMaxBroadcastTableSize(io.airlift.units.DataSize joinMaxBroadcastTableSize) setJoinMultiClauseIndependenceFactor(double joinMultiClauseIndependenceFactor) setJoinPartitionedBuildMinRowCount(long joinPartitionedBuildMinRowCount) setJoinReorderingStrategy(OptimizerConfig.JoinReorderingStrategy joinReorderingStrategy) setMarkDistinctStrategy(OptimizerConfig.MarkDistinctStrategy markDistinctStrategy) setMaxPrefetchedInformationSchemaPrefixes(int maxPrefetchedInformationSchemaPrefixes) setMaxReorderedJoins(int maxReorderedJoins) setMemoryCostWeight(double memoryCostWeight) setMergeProjectWithValues(boolean mergeProjectWithValues) setMinInputRowsPerTask(long minInputRowsPerTask) setMinInputSizePerTask(io.airlift.units.DataSize minInputSizePerTask) setNetworkCostWeight(double networkCostWeight) setNonEstimatablePredicateApproximationEnabled(boolean nonEstimatablePredicateApproximationEnabled) setOptimizeDuplicateInsensitiveJoins(boolean optimizeDuplicateInsensitiveJoins) setOptimizeHashGeneration(boolean optimizeHashGeneration) setOptimizeMetadataQueries(boolean optimizeMetadataQueries) setOptimizeMixedDistinctAggregations(boolean value) setOptimizeTopNRanking(boolean optimizeTopNRanking) setPreAggregateCaseAggregationsEnabled(boolean preAggregateCaseAggregationsEnabled) setPredicatePushdownUseTableProperties(boolean predicatePushdownUseTableProperties) setPreferPartialAggregation(boolean value) setPushAggregationThroughOuterJoin(boolean pushAggregationThroughOuterJoin) setPushPartialAggregationThroughJoin(boolean pushPartialAggregationThroughJoin) setPushTableWriteThroughUnion(boolean pushTableWriteThroughUnion) setRewriteFilteringSemiJoinToInnerJoin(boolean rewriteFilteringSemiJoinToInnerJoin) setSkipRedundantSort(boolean value) setSpatialJoinsEnabled(boolean spatialJoinsEnabled) setStatisticsPrecalculationForPushdownEnabled(boolean statisticsPrecalculationForPushdownEnabled) setTableScanNodePartitioningMinBucketToTaskRatio(double tableScanNodePartitioningMinBucketToTaskRatio) setUseCostBasedPartitioning(boolean useCostBasedPartitioning) setUseExactPartitioning(boolean useExactPartitioning) setUseLegacyWindowFilterPushdown(boolean useLegacyWindowFilterPushdown) setUsePreferredWritePartitioning(boolean usePreferredWritePartitioning) setUseTableScanNodePartitioning(boolean useTableScanNodePartitioning)
-
Constructor Details
-
OptimizerConfig
public OptimizerConfig()
-
-
Method Details
-
getCpuCostWeight
public double getCpuCostWeight() -
setCpuCostWeight
-
getMemoryCostWeight
public double getMemoryCostWeight() -
setMemoryCostWeight
-
getNetworkCostWeight
public double getNetworkCostWeight() -
setNetworkCostWeight
@Config("network-cost-weight") public OptimizerConfig setNetworkCostWeight(double networkCostWeight) -
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
-
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
-
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
-
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
-
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)
-