Skip to content

Commit 12cecdb

Browse files
committed
Remove implicit cloning
1 parent 1db636a commit 12cecdb

File tree

2 files changed

+3
-14
lines changed

2 files changed

+3
-14
lines changed

datafusion/core/src/physical_plan/windows/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ pub(crate) fn calc_requirements(
199199
for sort_expr in orderby_sort_exprs {
200200
let contains = sort_reqs.iter().any(|e| sort_expr.expr.eq(e.expr()));
201201
if !contains {
202-
sort_reqs.push(PhysicalSortRequirement::from(sort_expr));
202+
sort_reqs.push(PhysicalSortRequirement::from(sort_expr.clone()));
203203
}
204204
}
205205
// Convert empty result to None. Otherwise wrap result inside Some()

datafusion/physical-expr/src/sort_expr.rs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -112,24 +112,12 @@ impl From<PhysicalSortRequirement> for PhysicalSortExpr {
112112
}
113113
}
114114

115-
impl From<&PhysicalSortRequirement> for PhysicalSortExpr {
116-
fn from(value: &PhysicalSortRequirement) -> Self {
117-
value.clone().into_sort_expr()
118-
}
119-
}
120-
121115
impl From<PhysicalSortExpr> for PhysicalSortRequirement {
122116
fn from(value: PhysicalSortExpr) -> Self {
123117
PhysicalSortRequirement::new(value.expr, Some(value.options))
124118
}
125119
}
126120

127-
impl From<&PhysicalSortExpr> for PhysicalSortRequirement {
128-
fn from(value: &PhysicalSortExpr) -> Self {
129-
PhysicalSortRequirement::from(value.clone())
130-
}
131-
}
132-
133121
impl PartialEq for PhysicalSortRequirement {
134122
fn eq(&self, other: &PhysicalSortRequirement) -> bool {
135123
self.options == other.options && self.expr.eq(&other.expr)
@@ -190,13 +178,14 @@ impl PhysicalSortRequirement {
190178
/// Returns [`PhysicalSortRequirement`] that requires the exact
191179
/// sort of the [`PhysicalSortExpr`]s in `ordering`
192180
///
193-
/// This method is designed for
181+
/// This method takes `&'a PhysicalSortExpr` to make it easy to
194182
/// use implementing [`ExecutionPlan::required_input_ordering`].
195183
pub fn from_sort_exprs<'a>(
196184
ordering: impl IntoIterator<Item = &'a PhysicalSortExpr>,
197185
) -> Vec<PhysicalSortRequirement> {
198186
ordering
199187
.into_iter()
188+
.cloned()
200189
.map(PhysicalSortRequirement::from)
201190
.collect()
202191
}

0 commit comments

Comments
 (0)