(&mut self, expr: pl::Expr)
| 502 | } |
| 503 | |
| 504 | fn lower_relation(&mut self, expr: pl::Expr) -> Result<rq::Relation> { |
| 505 | let span = expr.span; |
| 506 | let lineage = expr.lineage.clone(); |
| 507 | let prev_pipeline = self.pipeline.drain(..).collect_vec(); |
| 508 | |
| 509 | self.lower_pipeline(expr, None)?; |
| 510 | |
| 511 | let mut transforms = self.pipeline.drain(..).collect_vec(); |
| 512 | let columns = self.push_select(lineage, &mut transforms).with_span(span)?; |
| 513 | |
| 514 | self.pipeline = prev_pipeline; |
| 515 | |
| 516 | let relation = rq::Relation { |
| 517 | kind: rq::RelationKind::Pipeline(transforms), |
| 518 | columns, |
| 519 | }; |
| 520 | Ok(relation) |
| 521 | } |
| 522 | |
| 523 | // Result is stored in self.pipeline |
| 524 | fn lower_pipeline(&mut self, ast: pl::Expr, closure_param: Option<usize>) -> Result<()> { |
no test coverage detected