Skip to content

Commit 46101f3

Browse files
authored
Replace BooleanArray::extend with append_n (#13832)
1 parent b7fb32a commit 46101f3

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

datafusion/physical-plan/src/joins/sort_merge_join.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -856,8 +856,7 @@ fn get_corrected_filter_mask(
856856
}
857857

858858
// Generate null joined rows for records which have no matching join key
859-
let null_matched = expected_size - corrected_mask.len();
860-
corrected_mask.extend(vec![Some(false); null_matched]);
859+
corrected_mask.append_n(expected_size - corrected_mask.len(), false);
861860
Some(corrected_mask.finish())
862861
}
863862
JoinType::LeftMark => {
@@ -879,8 +878,7 @@ fn get_corrected_filter_mask(
879878
}
880879

881880
// Generate null joined rows for records which have no matching join key
882-
let null_matched = expected_size - corrected_mask.len();
883-
corrected_mask.extend(vec![Some(false); null_matched]);
881+
corrected_mask.append_n(expected_size - corrected_mask.len(), false);
884882
Some(corrected_mask.finish())
885883
}
886884
JoinType::LeftSemi => {
@@ -922,9 +920,9 @@ fn get_corrected_filter_mask(
922920
corrected_mask.append_null();
923921
}
924922
}
925-
926-
let null_matched = expected_size - corrected_mask.len();
927-
corrected_mask.extend(vec![Some(true); null_matched]);
923+
// Generate null joined rows for records which have no matching join key,
924+
// for LeftAnti non-matched considered as true
925+
corrected_mask.append_n(expected_size - corrected_mask.len(), true);
928926
Some(corrected_mask.finish())
929927
}
930928
JoinType::Full => {
@@ -1569,10 +1567,10 @@ impl SortMergeJoinStream {
15691567
let num_rows = record_batch.num_rows();
15701568
self.output_record_batches
15711569
.filter_mask
1572-
.extend(&BooleanArray::from(vec![None; num_rows]));
1570+
.append_nulls(num_rows);
15731571
self.output_record_batches
15741572
.row_indices
1575-
.extend(&UInt64Array::from(vec![None; num_rows]));
1573+
.append_nulls(num_rows);
15761574
self.output_record_batches
15771575
.batch_ids
15781576
.extend(vec![0; num_rows]);
@@ -1613,10 +1611,10 @@ impl SortMergeJoinStream {
16131611

16141612
self.output_record_batches
16151613
.filter_mask
1616-
.extend(&BooleanArray::from(vec![None; num_rows]));
1614+
.append_nulls(num_rows);
16171615
self.output_record_batches
16181616
.row_indices
1619-
.extend(&UInt64Array::from(vec![None; num_rows]));
1617+
.append_nulls(num_rows);
16201618
self.output_record_batches
16211619
.batch_ids
16221620
.extend(vec![0; num_rows]);

0 commit comments

Comments
 (0)