()
| 137 | |
| 138 | |
| 139 | def test_table_join_collisions(): |
| 140 | t1 = pa.table({ |
| 141 | "colA": [1, 2, 6], |
| 142 | "colB": [10, 20, 60], |
| 143 | "colVals": ["a", "b", "f"] |
| 144 | }) |
| 145 | |
| 146 | t2 = pa.table({ |
| 147 | "colB": [99, 20, 10], |
| 148 | "colVals": ["Z", "B", "A"], |
| 149 | "colUniq": [100, 200, 300], |
| 150 | "colA": [99, 2, 1], |
| 151 | }) |
| 152 | |
| 153 | result = _perform_join( |
| 154 | "full outer", t1, ["colA", "colB"], t2, ["colA", "colB"]) |
| 155 | result = result.combine_chunks() |
| 156 | result = result.sort_by("colUniq") |
| 157 | assert result == pa.table([ |
| 158 | [None, 2, 1, 6], |
| 159 | [None, 20, 10, 60], |
| 160 | [None, "b", "a", "f"], |
| 161 | [99, 20, 10, None], |
| 162 | ["Z", "B", "A", None], |
| 163 | [100, 200, 300, None], |
| 164 | [99, 2, 1, None], |
| 165 | ], names=["colA", "colB", "colVals", "colB", "colVals", "colUniq", "colA"]) |
| 166 | |
| 167 | result = _perform_join("full outer", t1, "colA", |
| 168 | t2, "colA", right_suffix="_r", |
| 169 | coalesce_keys=False) |
| 170 | result = result.combine_chunks() |
| 171 | result = result.sort_by("colA") |
| 172 | assert result == pa.table({ |
| 173 | "colA": [1, 2, 6, None], |
| 174 | "colB": [10, 20, 60, None], |
| 175 | "colVals": ["a", "b", "f", None], |
| 176 | "colB_r": [10, 20, None, 99], |
| 177 | "colVals_r": ["A", "B", None, "Z"], |
| 178 | "colUniq": [300, 200, None, 100], |
| 179 | "colA_r": [1, 2, None, 99], |
| 180 | }) |
| 181 | |
| 182 | result = _perform_join("full outer", t1, "colA", |
| 183 | t2, "colA", right_suffix="_r", |
| 184 | coalesce_keys=True) |
| 185 | result = result.combine_chunks() |
| 186 | result = result.sort_by("colA") |
| 187 | assert result == pa.table({ |
| 188 | "colA": [1, 2, 6, 99], |
| 189 | "colB": [10, 20, 60, None], |
| 190 | "colVals": ["a", "b", "f", None], |
| 191 | "colB_r": [10, 20, None, 99], |
| 192 | "colVals_r": ["A", "B", None, "Z"], |
| 193 | "colUniq": [300, 200, None, 100] |
| 194 | }) |
| 195 | |
| 196 |
nothing calls this directly
no test coverage detected