From cc7b5c5a2660276f034f94b21af8abcf11b91819 Mon Sep 17 00:00:00 2001 From: Jack Wright <56345+ayax79@users.noreply.github.com> Date: Thu, 18 Apr 2024 15:10:38 -0700 Subject: [PATCH] Only mark collected dataframes as from_lazy=false when collect is called from the collect command. (#12571) I had previously changed NuLazyFrame::collect to set the NuDataFrame's from_lazy field to false to prevent conversion back to a lazy frame. It appears there are cases where this should happen. Instead, I am only setting from_lazy=false inside the `polars collect` command. [Related discord message](https://discord.com/channels/601130461678272522/1227612017171501136/1230600465159421993) Co-authored-by: Jack Wright --- crates/nu_plugin_polars/src/dataframe/lazy/collect.rs | 4 +++- .../nu_plugin_polars/src/dataframe/values/nu_lazyframe/mod.rs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/nu_plugin_polars/src/dataframe/lazy/collect.rs b/crates/nu_plugin_polars/src/dataframe/lazy/collect.rs index c14098e28b..47f91f1d71 100644 --- a/crates/nu_plugin_polars/src/dataframe/lazy/collect.rs +++ b/crates/nu_plugin_polars/src/dataframe/lazy/collect.rs @@ -64,7 +64,9 @@ impl PluginCommand for LazyCollect { let value = input.into_value(call.head); match PolarsPluginObject::try_from_value(plugin, &value)? { PolarsPluginObject::NuLazyFrame(lazy) => { - let eager = lazy.collect(call.head)?; + let mut eager = lazy.collect(call.head)?; + // We don't want this converted back to a lazy frame + eager.from_lazy = true; Ok(PipelineData::Value( eager .cache(plugin, engine, call.head)? diff --git a/crates/nu_plugin_polars/src/dataframe/values/nu_lazyframe/mod.rs b/crates/nu_plugin_polars/src/dataframe/values/nu_lazyframe/mod.rs index bb2ae67130..86267dd51b 100644 --- a/crates/nu_plugin_polars/src/dataframe/values/nu_lazyframe/mod.rs +++ b/crates/nu_plugin_polars/src/dataframe/values/nu_lazyframe/mod.rs @@ -64,7 +64,7 @@ impl NuLazyFrame { help: None, inner: vec![], }) - .map(|df| NuDataFrame::new(false, df)) + .map(|df| NuDataFrame::new(true, df)) } pub fn apply_with_expr(self, expr: NuExpression, f: F) -> Self