Package io.trino.sql.planner.iterative
Interface Rule<T>
-
- All Known Implementing Classes:
AddIntermediateAggregations,ApplyTableScanRedirection,CreatePartialTopN,DecorrelateInnerUnnestWithGlobalAggregation,DecorrelateLeftUnnestWithGlobalAggregation,DecorrelateUnnest,DetermineJoinDistributionType,DeterminePreferredWritePartitioning,DetermineSemiJoinDistributionType,DetermineTableScanNodePartitioning,EliminateCrossJoins,EvaluateEmptyIntersect,EvaluateZeroSample,ExtractDereferencesFromFilterAboveScan,ExtractSpatialJoins.ExtractSpatialInnerJoin,ExtractSpatialJoins.ExtractSpatialLeftJoin,GatherAndMergeWindows.MergeAdjacentWindowsOverProjects,GatherAndMergeWindows.SwapAdjacentWindowsBySpecifications,ImplementBernoulliSampleAsFilter,ImplementExceptAll,ImplementExceptDistinctAsUnion,ImplementFilteredAggregations,ImplementIntersectAll,ImplementIntersectDistinctAsUnion,ImplementLimitWithTies,ImplementOffset,InlineProjectIntoFilter,InlineProjections,MergeExcept,MergeFilters,MergeIntersect,MergeLimitOverProjectWithSort,MergeLimits,MergeLimitWithDistinct,MergeLimitWithSort,MergeLimitWithTopN,MergeProjectWithValues,MergeUnion,MultipleDistinctAggregationToMarkDistinct,OptimizeDuplicateInsensitiveJoins,OptimizeRowPattern,ProjectOffPushDownRule,PruneAggregationColumns,PruneAggregationSourceColumns,PruneApplyColumns,PruneApplyCorrelation,PruneApplySourceColumns,PruneAssignUniqueIdColumns,PruneCorrelatedJoinColumns,PruneCorrelatedJoinCorrelation,PruneCountAggregationOverScalar,PruneDeleteSourceColumns,PruneDistinctAggregation,PruneDistinctLimitSourceColumns,PruneEnforceSingleRowColumns,PruneExceptSourceColumns,PruneExchangeColumns,PruneExchangeSourceColumns,PruneExplainAnalyzeSourceColumns,PruneFilterColumns,PruneGroupIdColumns,PruneGroupIdSourceColumns,PruneIndexJoinColumns,PruneIndexSourceColumns,PruneIntersectSourceColumns,PruneJoinChildrenColumns,PruneJoinColumns,PruneLimitColumns,PruneMarkDistinctColumns,PruneOffsetColumns,PruneOrderByInAggregation,PruneOutputSourceColumns,PruneProjectColumns,PruneRowNumberColumns,PruneSampleColumns,PruneSemiJoinColumns,PruneSemiJoinFilteringSourceColumns,PruneSortColumns,PruneSpatialJoinChildrenColumns,PruneSpatialJoinColumns,PruneTableScanColumns,PruneTableWriterSourceColumns,PruneTopNColumns,PruneTopNRankingColumns,PruneUnionColumns,PruneUnionSourceColumns,PruneUnnestColumns,PruneUnnestSourceColumns,PruneUpdateSourceColumns,PruneValuesColumns,PruneWindowColumns,PushAggregationIntoTableScan,PushAggregationThroughOuterJoin,PushDeleteIntoConnector,PushDistinctLimitIntoTableScan,PushDownDereferencesThroughAssignUniqueId,PushDownDereferencesThroughLimit,PushDownDereferencesThroughMarkDistinct,PushDownDereferencesThroughRowNumber,PushDownDereferencesThroughSort,PushDownDereferencesThroughTopN,PushDownDereferencesThroughTopNRanking,PushDownDereferencesThroughWindow,PushDownDereferenceThroughFilter,PushDownDereferenceThroughJoin,PushDownDereferenceThroughProject,PushDownDereferenceThroughSemiJoin,PushDownDereferenceThroughUnnest,PushdownFilterIntoRowNumber,PushdownFilterIntoWindow,PushdownLimitIntoRowNumber,PushdownLimitIntoWindow,PushJoinIntoTableScan,PushLimitIntoTableScan,PushLimitThroughMarkDistinct,PushLimitThroughOffset,PushLimitThroughOuterJoin,PushLimitThroughProject,PushLimitThroughSemiJoin,PushLimitThroughUnion,PushOffsetThroughProject,PushPartialAggregationThroughExchange,PushPartialAggregationThroughJoin,PushPredicateIntoTableScan,PushPredicateThroughProjectIntoRowNumber,PushPredicateThroughProjectIntoWindow,PushProjectionIntoTableScan,PushProjectionThroughExchange,PushProjectionThroughUnion,PushRemoteExchangeThroughAssignUniqueId,PushSampleIntoTableScan,PushTableWriteThroughUnion,PushTopNIntoTableScan,PushTopNThroughOuterJoin,PushTopNThroughProject,PushTopNThroughUnion,RemoveAggregationInSemiJoin,RemoveEmptyDelete,RemoveEmptyExceptBranches,RemoveEmptyUnionBranches,RemoveFullSample,RemoveRedundantDistinctLimit,RemoveRedundantEnforceSingleRowNode,RemoveRedundantExists,RemoveRedundantIdentityProjections,RemoveRedundantJoin,RemoveRedundantLimit,RemoveRedundantOffset,RemoveRedundantSort,RemoveRedundantSortBelowLimitWithTies,RemoveRedundantTableScanPredicate,RemoveRedundantTopN,RemoveTrivialFilters,RemoveUnreferencedScalarApplyNodes,RemoveUnreferencedScalarSubqueries,ReorderJoins,ReplaceJoinOverConstantWithProject,ReplaceRedundantJoinWithProject,ReplaceRedundantJoinWithSource,ReplaceWindowWithRowNumber,RewriteSpatialPartitioningAggregation,SimplifyCountOverConstant,SimplifyFilterPredicate,SingleDistinctAggregationToGroupBy,TransformCorrelatedDistinctAggregationWithoutProjection,TransformCorrelatedDistinctAggregationWithProjection,TransformCorrelatedGlobalAggregationWithoutProjection,TransformCorrelatedGlobalAggregationWithProjection,TransformCorrelatedGroupedAggregationWithoutProjection,TransformCorrelatedGroupedAggregationWithProjection,TransformCorrelatedInPredicateToJoin,TransformCorrelatedJoinToJoin,TransformCorrelatedScalarSubquery,TransformCorrelatedSingleRowSubqueryToProject,TransformExistsApplyToCorrelatedJoin,TransformFilteringSemiJoinToInnerJoin,TransformUncorrelatedInPredicateSubqueryToSemiJoin,TransformUncorrelatedSubqueryToJoin,UnwrapSingleColumnRowInApply
public interface Rule<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceRule.Contextstatic classRule.Result
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Rule.Resultapply(T node, Captures captures, Rule.Context context)Pattern<T>getPattern()Returns a pattern to which plan nodes this rule applies.default booleanisEnabled(Session session)
-
-
-
Method Detail
-
isEnabled
default boolean isEnabled(Session session)
-
apply
Rule.Result apply(T node, Captures captures, Rule.Context context)
-
-