| collectFromNode(Plan, PullUpProjectExprUnderTopN.PullUpInfo, Set) |  | 0% |  | 0% | 26 | 26 | 53 | 53 | 1 | 1 |
| simplifyProject(LogicalProject, List, PullUpProjectExprUnderTopN.PullUpInfo) |  | 0% |  | 0% | 15 | 15 | 35 | 35 | 1 | 1 |
| addUpperProject(LogicalTopN, PullUpProjectExprUnderTopN.PullUpInfo) |  | 0% |  | 0% | 5 | 5 | 20 | 20 | 1 | 1 |
| canPullUp(NamedExpression) |  | 0% |  | 0% | 8 | 8 | 14 | 14 | 1 | 1 |
| replaceUnavailableSlots(Expression, PullUpProjectExprUnderTopN.PullUpInfo, Set) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| buildOrderKeyExprIds(LogicalTopN) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| collectUnavailablePullUpExprs(LogicalProject, PullUpProjectExprUnderTopN.PullUpInfo, Set) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| shouldBlockProjectInputs(NamedExpression, boolean, Set) |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 1 | 1 |
| resolveAliasChildIfNeeded(NamedExpression, PullUpProjectExprUnderTopN.PullUpInfo, Set) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| isUnavailableExpression(NamedExpression, Set) |  | 0% |  | 0% | 5 | 5 | 4 | 4 | 1 | 1 |
| getPullUpReplaceExpression(Slot, PullUpProjectExprUnderTopN.PullUpInfo) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| rewriteRoot(Plan, JobContext) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| qualifiesForLazyMatThreshold(LogicalTopN) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| resolveExpression(Expression, PullUpProjectExprUnderTopN.PullUpInfo, Set) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| isBlockingNode(Plan) |  | 0% |  | 0% | 4 | 4 | 1 | 1 | 1 | 1 |
| lambda$isUnavailableExpression$3(Set, Slot) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| resolveInputSlots(Expression, PullUpProjectExprUnderTopN.PullUpInfo, Set) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| PullUpProjectExprUnderTopN() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$canPullUp$2(TreeNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$canPullUp$1(TreeNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$canPullUp$0(TreeNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |