| getOutputExprIdSet() |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| computeLogicalProperties() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| computeOutput() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| computeAsteriskOutput() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getStats() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| bound() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| hasUnboundExpression() |   | 89% |   | 75% | 1 | 3 | 1 | 5 | 0 | 1 |
| computeDataTrait() |  | 100% |  | 100% | 0 | 7 | 0 | 27 | 0 | 1 |
| shape(String) |  | 100% |   | 50% | 1 | 2 | 0 | 9 | 0 | 1 |
| getChildrenOutputExprIdBitSet() |  | 100% |  | 100% | 0 | 3 | 0 | 8 | 0 | 1 |
| getGroupIdAsString() |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| getOutputExprIds() |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| getOutputExprIdBitSet() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| getUsedSlotExprIds() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| containsSlots(ImmutableSet) |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 1 |
| lambda$shape$4(StringBuilder, String, Plan) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| getGroupIdWithPrefix() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getUsedSlotExprIds$3(RoaringBitmap, TreeNode) |  | 100% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| lambda$containsSlots$0(ImmutableSet, Expression) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| getInputRelations() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$getInputRelations$2(Set, Plan) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getInputSlots() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| treeString() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| shapeInfo() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$containsSlots$1(ImmutableSet, Plan) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getAsteriskOutput() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| depth() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| extraPlans() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| displayExtraPlanFirst() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |