Path: blob/main/crates/polars-plan/src/plans/aexpr/evaluate.rs
8422 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(e: Node, expr_arena: &Arena<AExpr>) -> Option<&PlSmallStr> {27match expr_arena.get(e) {28AExpr::Column(c) => Some(c),29_ => None,30}31}323334