Skip to content
Closed
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
ac2b88c
feat: Support `PiecewiseMergeJoin` for single range join filters
jonathanc-n Jul 2, 2025
6af253b
fix
jonathanc-n Jul 2, 2025
60047ba
add children()
jonathanc-n Jul 2, 2025
1d09886
Merge branch 'main' into pwmj
jonathanc-n Jul 2, 2025
6199b61
fmt
jonathanc-n Jul 2, 2025
e7cf488
tma
jonathanc-n Jul 2, 2025
e77bd5a
clippy
jonathanc-n Jul 2, 2025
7212242
fix: Required input ordering
jonathanc-n Jul 3, 2025
30e73e4
fix
jonathanc-n Jul 3, 2025
feaee9a
fix sorting
jonathanc-n Jul 6, 2025
75a60b2
update
jonathanc-n Jul 6, 2025
0845600
Update datafusion/physical-plan/src/joins/mod.rs
jonathanc-n Jul 7, 2025
eb9040f
feat: Add `compute_properties` + add comments
jonathanc-n Jul 7, 2025
b66a69b
Merge branch 'pwmj' of https://github.com/jonathanc-n/datafusion into…
jonathanc-n Jul 7, 2025
f33b8d8
fmt!
jonathanc-n Jul 7, 2025
250a8a5
feat: Add metrics + memory reservation
jonathanc-n Jul 7, 2025
516ebdb
Merge branch 'apache:main' into pwmj
jonathanc-n Jul 7, 2025
a2ec52b
min/max refactor
jonathanc-n Jul 7, 2025
3551ddb
Merge branch 'pwmj' of https://github.com/jonathanc-n/datafusion into…
jonathanc-n Jul 7, 2025
23298f1
rm output_rows
jonathanc-n Jul 7, 2025
2f28845
Merge branch 'main' into pwmj
jonathanc-n Jul 29, 2025
3dac640
Merge branch 'main' into pwmj
jonathanc-n Aug 5, 2025
3e3a8b6
new join
jonathanc-n Aug 5, 2025
77e25a7
Merge branch 'pwmj' of https://github.com/jonathanc-n/datafusion into…
jonathanc-n Aug 5, 2025
fdd2f3f
Merge branch 'main' into pwmj
jonathanc-n Aug 5, 2025
9016ce7
add sql examples
jonathanc-n Aug 11, 2025
e865e27
Update datafusion/physical-plan/src/joins/piecewise_merge_join.rs
jonathanc-n Aug 13, 2025
22e423d
fix
jonathanc-n Aug 13, 2025
bd245f7
update
jonathanc-n Aug 20, 2025
d426def
Merge branch 'main' into pwmj
jonathanc-n Aug 20, 2025
f490de6
update
jonathanc-n Aug 20, 2025
79a5aab
remove pub from `BatchProcessState`
jonathanc-n Aug 20, 2025
e78115f
Merge branch 'main' into pwmj
jonathanc-n Aug 20, 2025
5297936
doc changes
jonathanc-n Sep 5, 2025
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
1 change: 1 addition & 0 deletions datafusion/physical-plan/src/joins/hash_join.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1621,6 +1621,7 @@ impl HashJoinStream {
let (left_side, right_side) = get_final_indices_from_shared_bitmap(
build_side.left_data.visited_indices_bitmap(),
self.join_type,
false,
);
let empty_right_batch = RecordBatch::new_empty(self.right.schema());
// use the left and right indices to produce the batch result
Expand Down
4 changes: 3 additions & 1 deletion datafusion/physical-plan/src/joins/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@ use datafusion_physical_expr::PhysicalExprRef;
pub use hash_join::HashJoinExec;
pub use nested_loop_join::NestedLoopJoinExec;
use parking_lot::Mutex;
pub use piecewise_merge_join::PiecewiseMergeJoinExec;
// Note: SortMergeJoin is not used in plans yet
pub use sort_merge_join::SortMergeJoinExec;
pub use symmetric_hash_join::SymmetricHashJoinExec;
mod cross_join;
mod hash_join;
mod nested_loop_join;
mod piecewise_merge_join;
mod sort_merge_join;
mod stream_join_utils;
mod symmetric_hash_join;
Expand Down Expand Up @@ -67,5 +69,5 @@ pub enum StreamJoinPartitionMode {
SinglePartition,
}

/// Shared bitmap for visited left-side indices
/// Shared bitmap for visited indices
type SharedBitmapBuilder = Mutex<BooleanBufferBuilder>;
7 changes: 5 additions & 2 deletions datafusion/physical-plan/src/joins/nested_loop_join.rs
Original file line number Diff line number Diff line change
Expand Up @@ -943,8 +943,11 @@ impl<T: BatchTransformer> NestedLoopJoinStream<T> {
// Only setting up timer, input is exhausted
let timer = self.join_metrics.join_time.timer();
// use the global left bitmap to produce the left indices and right indices
let (left_side, right_side) =
get_final_indices_from_shared_bitmap(visited_left_side, self.join_type);
let (left_side, right_side) = get_final_indices_from_shared_bitmap(
visited_left_side,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

visited_left_side awesome name

self.join_type,
false,
);
let empty_right_batch = RecordBatch::new_empty(self.outer_table.schema());
// use the left and right indices to produce the batch result
let result = build_batch_from_indices(
Expand Down
Loading