MCPcopy Create free account
hub / github.com/PRQL/prql / lower_relation

Method lower_relation

prqlc/prqlc/src/semantic/lowering.rs:504–521  ·  view source on GitHub ↗
(&mut self, expr: pl::Expr)

Source from the content-addressed store, hash-verified

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<()> {

Callers 3

lower_table_declMethod · 0.80
lower_table_refMethod · 0.80
lower_pipelineMethod · 0.80

Calls 4

PipelineClass · 0.85
lower_pipelineMethod · 0.80
with_spanMethod · 0.80
push_selectMethod · 0.80

Tested by

no test coverage detected