Path: blob/main/crates/polars-plan/src/plans/aexpr/evaluate.rs
6940 views
use std::borrow::Cow;12use polars_core::schema::Schema;3use polars_utils::arena::{Arena, Node};4use polars_utils::pl_str::PlSmallStr;56use super::{AExpr, LiteralValue, aexpr_to_leaf_names_iter};78pub fn constant_evaluate<'a>(9e: Node,10expr_arena: &'a Arena<AExpr>,11_schema: &Schema,12_depth: usize,13) -> Option<Option<Cow<'a, LiteralValue>>> {14match expr_arena.get(e) {15AExpr::Literal(lv) => Some(Some(Cow::Borrowed(lv))),16_ => {17if aexpr_to_leaf_names_iter(e, expr_arena).next().is_none() {18Some(None)19} else {20None21}22},23}24}2526pub fn into_column<'a>(27e: Node,28expr_arena: &'a Arena<AExpr>,29_schema: &Schema,30_depth: usize,31) -> Option<&'a PlSmallStr> {32match expr_arena.get(e) {33AExpr::Column(c) => Some(c),34_ => None,35}36}373839