Skip to content

Commit e1a1f5e

Browse files
committed
Add default for Expr
1 parent 88c98e1 commit e1a1f5e

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

datafusion/expr/src/expr.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,10 @@ pub enum Expr {
184184
Unnest(Unnest),
185185
}
186186

187+
impl Default for Expr {
188+
fn default() -> Self { Expr::Literal(ScalarValue::Null) }
189+
}
190+
187191
#[derive(Clone, PartialEq, Eq, Hash, Debug)]
188192
pub struct Unnest {
189193
pub expr: Box<Expr>,

datafusion/optimizer/src/unwrap_cast_in_comparison.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,7 @@ impl TreeNodeRewriter for UnwrapCastExprRewriter {
179179
};
180180
**left = lit(value);
181181
// unwrap the cast/try_cast for the right expr
182-
**right =
183-
mem::replace(right_expr, Expr::Literal(ScalarValue::Null));
182+
**right = mem::take(right_expr);
184183
Ok(Transformed::yes(expr))
185184
}
186185
(
@@ -203,8 +202,7 @@ impl TreeNodeRewriter for UnwrapCastExprRewriter {
203202
return Ok(Transformed::no(expr));
204203
};
205204
// unwrap the cast/try_cast for the left expr
206-
**left =
207-
mem::replace(left_expr, Expr::Literal(ScalarValue::Null));
205+
**left = mem::take(left_expr);
208206
**right = lit(value);
209207
Ok(Transformed::yes(expr))
210208
}
@@ -262,7 +260,7 @@ impl TreeNodeRewriter for UnwrapCastExprRewriter {
262260
.collect::<Result<Vec<_>>>() else {
263261
return Ok(Transformed::no(expr))
264262
};
265-
**left = mem::replace(left_expr, Expr::Literal(ScalarValue::Null));
263+
**left = mem::take(left_expr);
266264
*list = right_exprs;
267265
Ok(Transformed::yes(expr))
268266
}

0 commit comments

Comments
 (0)