| buildJoinExpr(JoinOrder.GroupInfo, JoinOrder.GroupInfo) |   | 69% |   | 50% | 3 | 4 | 4 | 17 | 0 | 1 |
| searchBushyJoinOrders(int) |   | 47% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| searchJoinOrders(int, int, boolean) |   | 94% |   | 80% | 2 | 6 | 2 | 24 | 0 | 1 |
| getBestGroupList(List, JoinOrder.JoinLevel) |   | 95% |   | 66% | 2 | 4 | 1 | 12 | 0 | 1 |
| getResult() |   | 91% |   | 50% | 1 | 2 | 1 | 6 | 0 | 1 |
| addExprToGroup(JoinOrder.GroupInfo, JoinOrder.ExpressionInfo) |   | 95% |   | 75% | 1 | 3 | 0 | 6 | 0 | 1 |
| getOrCreateGroupInfo(JoinOrder.JoinLevel, BitSet, JoinOrder.ExpressionInfo) |  | 100% |   | 75% | 2 | 5 | 0 | 9 | 0 | 1 |
| getBestGroupInfo(List) |  | 100% |   | 75% | 1 | 3 | 0 | 8 | 0 | 1 |
| enumerate() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| lambda$getBestGroupList$1(BitSet, Set, JoinOrder.GroupInfo) |  | 100% |   | 75% | 1 | 3 | 0 | 2 | 0 | 1 |
| getGroupForLevel(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getBestGroupList$0(List, JoinOrder.GroupInfo) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| JoinReorderGreedy() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |