Skip to content

Commit 72fd596

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 1d8e089 commit 72fd596

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`].
@@ -841,7 +841,7 @@ impl ExprFuncBuilder {
841841
udwf.params.filter = filter.map(Box::new);
842842
udwf.params.null_treatment = null_treatment;
843843
udwf.params.distinct = distinct;
844-
Expr::WindowFunction(Box::new(udwf))
844+
Expr::WindowFunction(udwf)
845845
}
846846
};
847847

@@ -895,7 +895,7 @@ impl ExprFunctionExt for Expr {
895895
ExprFuncBuilder::new(Some(ExprFuncKind::Aggregate(udaf)))
896896
}
897897
Expr::WindowFunction(udwf) => {
898-
ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)))
898+
ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)))
899899
}
900900
_ => ExprFuncBuilder::new(None),
901901
};
@@ -935,7 +935,7 @@ impl ExprFunctionExt for Expr {
935935
ExprFuncBuilder::new(Some(ExprFuncKind::Aggregate(udaf)))
936936
}
937937
Expr::WindowFunction(udwf) => {
938-
ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)))
938+
ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)))
939939
}
940940
_ => ExprFuncBuilder::new(None),
941941
};
@@ -948,7 +948,7 @@ impl ExprFunctionExt for Expr {
948948
fn partition_by(self, partition_by: Vec<Expr>) -> ExprFuncBuilder {
949949
match self {
950950
Expr::WindowFunction(udwf) => {
951-
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)));
951+
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)));
952952
builder.partition_by = Some(partition_by);
953953
builder
954954
}
@@ -959,7 +959,7 @@ impl ExprFunctionExt for Expr {
959959
fn window_frame(self, window_frame: WindowFrame) -> ExprFuncBuilder {
960960
match self {
961961
Expr::WindowFunction(udwf) => {
962-
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(*udwf)));
962+
let mut builder = ExprFuncBuilder::new(Some(ExprFuncKind::Window(udwf)));
963963
builder.window_frame = Some(window_frame);
964964
builder
965965
}

0 commit comments

Comments
 (0)