Extract a final `MapFilterProject` once all columns are available. If not all columns are available this method will likely panic. This method differs from `extract_closure` in that it forcibly completes the join, extracting projections and expressions that may not be extracted with `extract_closure` (for example, literals, permutations, and repetition of output columns). The resulting closure m
(self)
| 319 | /// The resulting closure may be the identity operator, which can be |
| 320 | /// checked with the `is_identity()` method. |
| 321 | fn complete(self) -> JoinClosure { |
| 322 | let Self { |
| 323 | column_map, |
| 324 | mut equivalences, |
| 325 | mut mfp, |
| 326 | } = self; |
| 327 | |
| 328 | for equivalence in equivalences.iter_mut() { |
| 329 | for expr in equivalence.iter_mut() { |
| 330 | expr.permute_map(&column_map); |
| 331 | } |
| 332 | } |
| 333 | let column_map_len = column_map.len(); |
| 334 | mfp.permute_fn(|c| column_map[&c], column_map_len); |
| 335 | mfp.optimize(); |
| 336 | |
| 337 | JoinClosure { |
| 338 | ready_equivalences: equivalences, |
| 339 | before: mfp.into_plan().unwrap().into_nontemporal().unwrap(), |
| 340 | } |
| 341 | } |
| 342 | |
| 343 | /// A method on `self` that extracts an available closure. |
| 344 | /// |
no test coverage detected