| visitExchange(ExchangeNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 5 | 5 | 26 | 26 | 1 | 1 |
| canonicalize(Assignments) |  | 0% |  | 0% | 7 | 7 | 18 | 18 | 1 | 1 |
| visitWindow(WindowNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 2 | 2 | 23 | 23 | 1 | 1 |
| visitGroupId(GroupIdNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
| visitJoin(JoinNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 2 | 2 | 18 | 18 | 1 | 1 |
| mapExchangeNodeSymbols(ExchangeNode) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
| canonicalizeAndDistinct(OrderingScheme) |  | 0% |  | 0% | 3 | 3 | 11 | 11 | 1 | 1 |
| visitUnnest(UnnestNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| mapExchangeNodeOutputToInputSymbols(ExchangeNode) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| visitSemiJoin(SemiJoinNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| canonicalizeSetOperationVariableMap(Map) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| visitIndexJoin(IndexJoinNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| visitSpatialJoin(SpatialJoinNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitApply(ApplyNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| visitValues(ValuesNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 2 | 2 | 9 | 9 | 1 | 1 |
| canonicalizeAndDistinct(Map) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| canonicalize(VariableReferenceExpression) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| canonicalizeAndDistinct(List) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| canonicalize(WindowNode.Frame) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| visitLateralJoin(LateralJoinNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| canonicalizeJoinCriteria(List) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| canonicalizeIndexJoinCriteria(List) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| visitRowNumber(RowNumberNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitTopNRowNumber(TopNRowNumberNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 |
| visitSequence(SequenceNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| visitRemoteSource(RemoteSourceNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| visitMarkDistinct(MarkDistinctNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitDistinctLimit(DistinctLimitNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitCteProducer(CteProducerNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| UnaliasSymbolReferences.Rewriter(TypeProvider, FunctionAndTypeManager, WarningCollector) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| visitOutput(OutputNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitExplainAnalyze(ExplainAnalyzeNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitTopN(TopNNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitSort(SortNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitIndexSource(IndexSourceNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| rewriteSources(SetOperationNode, SimplePlanRewriter.RewriteContext) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| canonicalizeSetOperationOutputVariables(List) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| visitAggregation(AggregationNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitDelete(DeleteNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitStatisticsWriterNode(StatisticsWriterNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitTableFinish(TableFinishNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitProject(ProjectNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitUnion(UnionNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitIntersect(IntersectNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitExcept(ExceptNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitTableWriter(TableWriterNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| visitTableWriteMerge(TableWriterMergeNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| map(VariableReferenceExpression, VariableReferenceExpression) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| visitUpdate(UpdateNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitFilter(FilterNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$visitJoin$3(EquiJoinClause) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| visitCteReference(CteReferenceNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitSample(SampleNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitAssignUniqueId(AssignUniqueId, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitEnforceSingleRow(EnforceSingleRowNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| visitPlan(PlanNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| canonicalizeAndDistinct(DataOrganizationSpecification) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| canonicalize(Optional) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| lambda$visitSequence$0(PlanNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| canonicalizeExchangeNodeInputs(ExchangeNode, int) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| canonicalizeCallExpression(CallExpression) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| canonicalize(Set) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$canonicalizeAndDistinct$6(ImmutableMap, VariableReferenceExpression) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$visitValues$2(List) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$visitJoin$5(EquiJoinClause) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$canonicalizeExchangeNodeInputs$1(int, List) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$visitJoin$4(JoinNode, EquiJoinClause) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| canonicalize(RowExpression) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitOffset(OffsetNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitLimit(LimitNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitCteConsumer(CteConsumerNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visitTableScan(TableScanNode, SimplePlanRewriter.RewriteContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |