Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions datafusion/src/logical_plan/plan.rs
Original file line number Diff line number Diff line change
Expand Up @@ -375,12 +375,10 @@ impl LogicalPlan {
{
self.using_columns.push(
on.iter()
.map(|entry| {
std::iter::once(entry.0.clone())
.chain(std::iter::once(entry.1.clone()))
})
.map(|entry| std::array::IntoIter::new([&entry.0, &entry.1]))
.flatten()
.collect::<HashSet<_>>(),
.cloned()
.collect::<HashSet<Column>>(),
);
}
Ok(true)
Expand Down
13 changes: 9 additions & 4 deletions datafusion/src/optimizer/filter_push_down.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,18 +97,23 @@ fn get_join_predicates<'a>(
.fields()
.iter()
.map(|f| {
std::iter::once(f.qualified_column())
std::array::IntoIter::new([
f.qualified_column(),
// we need to push down filter using unqualified column as well
.chain(std::iter::once(f.unqualified_column()))
f.unqualified_column(),
])
})
.flatten()
.collect::<HashSet<_>>();
let right_columns = &right
.fields()
.iter()
.map(|f| {
std::iter::once(f.qualified_column())
.chain(std::iter::once(f.unqualified_column()))
std::array::IntoIter::new([
f.qualified_column(),
// we need to push down filter using unqualified column as well
f.unqualified_column(),
])
})
.flatten()
.collect::<HashSet<_>>();
Expand Down