MCPcopy Create free account
hub / github.com/apache/datafusion / scatter_bits

Function scatter_bits

datafusion/physical-expr-common/src/utils.rs:174–203  ·  view source on GitHub ↗
(
    src: &BooleanBuffer,
    mask: &BooleanBuffer,
    output_len: usize,
    selectivity: f64,
)

Source from the content-addressed store, hash-verified

172}
173
174fn scatter_bits(
175 src: &BooleanBuffer,
176 mask: &BooleanBuffer,
177 output_len: usize,
178 selectivity: f64,
179) -> BooleanBuffer {
180 let mut builder = BooleanBufferBuilder::new(output_len);
181 builder.advance(output_len);
182 let mut src_offset = 0;
183
184 if selectivity > SCATTER_SLICES_SELECTIVITY_THRESHOLD {
185 for (start, end) in mask.set_slices() {
186 for i in start..end {
187 if src.value(src_offset) {
188 builder.set_bit(i, true);
189 }
190 src_offset += 1;
191 }
192 }
193 } else {
194 for dst_idx in mask.set_indices() {
195 if src.value(src_offset) {
196 builder.set_bit(dst_idx, true);
197 }
198 src_offset += 1;
199 }
200 }
201
202 builder.finish()
203}
204
205fn scatter_null_mask(
206 src_nulls: Option<&NullBuffer>,

Callers 2

scatter_null_maskFunction · 0.85
scatter_booleanFunction · 0.85

Calls 5

newFunction · 0.85
set_bitMethod · 0.80
advanceMethod · 0.45
valueMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…