Start to move to polars 0.29 (#9145)

This does part of the work of porting to polars 0.29.
However, I am not familiar enough with this part of the codebase to
finish it.

Things to be done:
- We match two times over `polars::Expr` but `Expr::Cache` isn't
handled. I don't know what should be done here
- `ArgExpr:::List` was renamed to `ArgExpr::Implode`. Does that mean
that `dfr list` should be renamed to `dfr implode`?

---------

Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
This commit is contained in:
Hofer-Julian
2023-05-12 14:44:35 +02:00
committed by GitHub
parent a45bd0301a
commit 5e8754bd85
6 changed files with 106 additions and 63 deletions

View File

@ -128,7 +128,7 @@ features = [
"checked_arithmetic",
"concat_str",
"cross_join",
"csv-file",
"csv",
"cum_agg",
"default",
"dtype-categorical",
@ -151,7 +151,7 @@ features = [
"to_dummies",
]
optional = true
version = "0.28.0"
version = "0.29.0"
[target.'cfg(windows)'.dependencies.windows]
features = ["Win32_Foundation", "Win32_Storage_FileSystem", "Win32_System_SystemServices"]

View File

@ -163,7 +163,7 @@ impl SQLContext {
.collect()
.unwrap_or_default()
.schema()
.get_index(shm_p)
.get_at_index(shm_p)
.unwrap_or((&"".into(), &DataType::Null))
.0)
})

View File

@ -134,15 +134,15 @@ macro_rules! expr_command {
// Expands to a command definition for a list expression
expr_command!(
ExprList,
"dfr list",
"dfr implode",
"Aggregates a group to a Series",
vec![Example {
description: "",
example: "",
result: None,
}],
list,
test_list
implode,
test_implode
);
// ExprAggGroups command

View File

@ -160,7 +160,7 @@ fn get_col_name(expr: &Expr) -> Option<String> {
| polars::prelude::AggExpr::First(e)
| polars::prelude::AggExpr::Last(e)
| polars::prelude::AggExpr::Mean(e)
| polars::prelude::AggExpr::List(e)
| polars::prelude::AggExpr::Implode(e)
| polars::prelude::AggExpr::Count(e)
| polars::prelude::AggExpr::Sum(e)
| polars::prelude::AggExpr::AggGroups(e)
@ -170,6 +170,7 @@ fn get_col_name(expr: &Expr) -> Option<String> {
},
Expr::Filter { input: expr, .. }
| Expr::Slice { input: expr, .. }
| Expr::Cache { input: expr, .. }
| Expr::Cast { expr, .. }
| Expr::Sort { expr, .. }
| Expr::Take { expr, .. }

View File

@ -277,7 +277,7 @@ pub fn expr_to_value(expr: &Expr, span: Span) -> Value {
| AggExpr::First(expr)
| AggExpr::Last(expr)
| AggExpr::Mean(expr)
| AggExpr::List(expr)
| AggExpr::Implode(expr)
| AggExpr::Count(expr)
| AggExpr::Sum(expr)
| AggExpr::AggGroups(expr)
@ -578,6 +578,21 @@ pub fn expr_to_value(expr: &Expr, span: Span) -> Value {
span,
}
}
Expr::Cache { input, id } => {
let input = expr_to_value(input.as_ref(), span);
let id = Value::String {
val: format!("{id:?}"),
span,
};
let cols = vec!["input".into(), "id".into()];
Value::Record {
cols,
vals: vec![input, id],
span,
}
}
Expr::Window {
function,
partition_by,