Skip to content

Commit

Permalink
perf: Improve rename performace for Lazy API (#18890)
Browse files Browse the repository at this point in the history
  • Loading branch information
siddharth-vi authored Sep 24, 2024
1 parent 7bc6214 commit 0f4360b
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions crates/polars-plan/src/plans/functions/rename.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,18 @@ pub(super) fn rename_impl(
existing: &[PlSmallStr],
new: &[PlSmallStr],
) -> PolarsResult<DataFrame> {
let positions = existing
.iter()
.map(|old| df.get_column_index(old))
.collect::<Vec<_>>();
let positions = if existing.len() > 1 && df.get_columns().len() > 10 {
let schema = df.schema();
existing
.iter()
.map(|old| schema.get_full(old).map(|(idx, _, _)| idx))
.collect::<Vec<_>>()
} else {
existing
.iter()
.map(|old| df.get_column_index(old))
.collect::<Vec<_>>()
};

for (pos, name) in positions.iter().zip(new.iter()) {
// the column might be removed due to projection pushdown
Expand Down

0 comments on commit 0f4360b

Please sign in to comment.