| computeFdItems(Set) |  | 0% |  | 0% | 6 | 6 | 22 | 22 | 1 | 1 |
| getDatabase() |  | 0% |  | 0% | 5 | 5 | 16 | 16 | 1 | 1 |
| computeOutput() |   | 73% |   | 50% | 1 | 2 | 2 | 10 | 0 | 1 |
| LogicalCatalogRelation(RelationId, PlanType, TableIf, List) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| withVirtualColumns(List) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| findSlotsByColumn(Set, Set) |   | 97% |   | 75% | 2 | 5 | 1 | 9 | 0 | 1 |
| computeUnique(DataTrait.Builder) |  | 100% |  | 100% | 0 | 3 | 0 | 10 | 0 | 1 |
| equals(Object) |  | 100% |   | 80% | 2 | 6 | 0 | 7 | 0 | 1 |
| LogicalCatalogRelation(RelationId, PlanType, TableIf, List, Collection, List, Optional, Optional) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| LogicalCatalogRelation(RelationId, PlanType, TableIf, List, Optional, Optional) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$computeOutput$0(IdGenerator, Column) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| qualified() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| qualifiedName() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTable() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getQualifier() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getOperativeSlots() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getVirtualColumns() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hashCode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| computeUniform(DataTrait.Builder) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| computeEqualSet(DataTrait.Builder) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| computeFd(DataTrait.Builder) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |