From cd1994b63e32191640cca80da4fd420af0650378 Mon Sep 17 00:00:00 2001 From: Ritchie Vink Date: Sun, 31 Mar 2024 10:39:20 +0200 Subject: [PATCH] fix: Don't prune alias in function subtree (#15406) --- crates/polars-plan/src/logical_plan/conversion.rs | 8 +------- py-polars/tests/unit/test_schema.py | 5 +++++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/crates/polars-plan/src/logical_plan/conversion.rs b/crates/polars-plan/src/logical_plan/conversion.rs index 3c1f6f65ab3a..c78e8c5b56ea 100644 --- a/crates/polars-plan/src/logical_plan/conversion.rs +++ b/crates/polars-plan/src/logical_plan/conversion.rs @@ -221,13 +221,7 @@ fn to_aexpr_impl(expr: Expr, arena: &mut Arena, state: &mut ConversionSta function, options, } => { - match function { - #[cfg(feature = "dtype-struct")] - FunctionExpr::AsStruct => { - state.prune_alias = false; - }, - _ => {}, - } + state.prune_alias = false; AExpr::Function { input: to_aexprs(input, arena, state), function, diff --git a/py-polars/tests/unit/test_schema.py b/py-polars/tests/unit/test_schema.py index 1950486799a7..41d8c6777aef 100644 --- a/py-polars/tests/unit/test_schema.py +++ b/py-polars/tests/unit/test_schema.py @@ -638,3 +638,8 @@ def test_literal_subtract_schema_13284() -> None: def test_schema_boolean_sum_horizontal() -> None: lf = pl.LazyFrame({"a": [True, False]}).select(pl.sum_horizontal("a")) assert lf.schema == OrderedDict([("a", pl.UInt32)]) + + +def test_struct_alias_prune_15401() -> None: + df = pl.DataFrame({"a": []}, schema={"a": pl.Struct({"b": pl.Int8})}) + assert df.select(pl.col("a").alias("c").struct.field("b")).columns == ["b"]