Skip to content

Commit 196ce13

Browse files
fix: Box WindowFunction in ExprFuncKind enum to reduce enum total size
As suggested by `clippy`: ``` warning: large size difference between variants --> datafusion/expr/src/expr_fn.rs:772:1 | 772 | / pub enum ExprFuncKind { 773 | | Aggregate(AggregateFunction), | | ---------------------------- the second-largest variant contains at least 72 bytes 774 | | Window(WindowFunction), | | ---------------------- the largest variant contains at least 288 bytes 775 | | } | |_^ the entire enum is at least 288 bytes | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant = note: `#[warn(clippy::large_enum_variant)]` on by default help: consider boxing the large fields to reduce the total size of the enum | 774 - Window(WindowFunction), 774 + Window(Box<WindowFunction>), | ```
1 parent 3034e15 commit 196ce13

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

datafusion/expr/src/expr_fn.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ pub trait ExprFunctionExt {
770770
#[derive(Debug, Clone)]
771771
pub enum ExprFuncKind {
772772
Aggregate(AggregateFunction),
773-
Window(WindowFunction),
773+
Window(Box<WindowFunction>),
774774
}
775775

776776
/// Implementation of [`ExprFunctionExt`].
@@ -842,7 +842,7 @@ impl ExprFuncBuilder {
842842
udwf.params.filter = filter.map(Box::new);
843843
udwf.params.null_treatment = null_treatment;
844844
udwf.params.distinct = distinct;
845-
Expr::WindowFunction(Box::new(udwf))
845+
Expr::WindowFunction(udwf)
846846
}
847847
};
848848

@@ -896,7 +896,7 @@ impl ExprFunctionExt for Expr {
896896
ExprFuncBuilder::new(Some(ExprFuncKind::Aggregate(udaf)))
897897
}
898898
Expr::WindowFunction(udwf) => {
899-
ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)))
899+
ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)))
900900
}
901901
_ => ExprFuncBuilder::new(None),
902902
};
@@ -936,7 +936,7 @@ impl ExprFunctionExt for Expr {
936936
ExprFuncBuilder::new(Some(ExprFuncKind::Aggregate(udaf)))
937937
}
938938
Expr::WindowFunction(udwf) => {
939-
ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)))
939+
ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)))
940940
}
941941
_ => ExprFuncBuilder::new(None),
942942
};
@@ -949,7 +949,7 @@ impl ExprFunctionExt for Expr {
949949
fn partition_by(self, partition_by: Vec<Expr>) -> ExprFuncBuilder {
950950
match self {
951951
Expr::WindowFunction(udwf) => {
952-
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)));
952+
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)));
953953
builder.partition_by = Some(partition_by);
954954
builder
955955
}
@@ -960,7 +960,7 @@ impl ExprFunctionExt for Expr {
960960
fn window_frame(self, window_frame: WindowFrame) -> ExprFuncBuilder {
961961
match self {
962962
Expr::WindowFunction(udwf) => {
963-
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)));
963+
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)));
964964
builder.window_frame = Some(window_frame);
965965
builder
966966
}

0 commit comments

Comments
 (0)