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

Function create_inputs

datafusion/spark/benches/slice.rs:33–76  ·  view source on GitHub ↗
(
    rng: &mut StdRng,
    size: usize,
    child_array_size: usize,
    null_density: f32,
)

Source from the content-addressed store, hash-verified

31use std::sync::Arc;
32
33fn create_inputs(
34 rng: &mut StdRng,
35 size: usize,
36 child_array_size: usize,
37 null_density: f32,
38) -> (ListArray, ListViewArray) {
39 let mut nulls_builder = NullBufferBuilder::new(size);
40 let mut sizes = Vec::with_capacity(size);
41
42 for _ in 0..size {
43 if rng.random::<f32>() < null_density {
44 nulls_builder.append_null();
45 } else {
46 nulls_builder.append_non_null();
47 }
48 sizes.push(rng.random_range(1..child_array_size));
49 }
50 let nulls = nulls_builder.finish();
51
52 let length = sizes.iter().sum();
53 let values: PrimitiveArray<Int64Type> =
54 (0..length).map(|_| Some(rng.random())).collect();
55 let values = Arc::new(values);
56
57 let offsets = OffsetBuffer::from_lengths(sizes.clone());
58 let list_array = ListArray::new(
59 Arc::new(Field::new_list_field(DataType::Int64, true)),
60 offsets.clone(),
61 values.clone(),
62 nulls.clone(),
63 );
64
65 let offsets = ScalarBuffer::from(offsets.slice(0, size - 1));
66 let sizes = ScalarBuffer::from_iter(sizes.into_iter().map(|v| v as i32));
67 let list_view_array = ListViewArray::new(
68 Arc::new(Field::new_list_field(DataType::Int64, true)),
69 offsets,
70 sizes,
71 values,
72 nulls,
73 );
74
75 (list_array, list_view_array)
76}
77
78fn random_from_to(
79 rng: &mut StdRng,

Callers 1

criterion_benchmarkFunction · 0.70

Calls 11

newFunction · 0.85
sumMethod · 0.80
collectMethod · 0.80
sliceMethod · 0.80
append_nullMethod · 0.45
pushMethod · 0.45
finishMethod · 0.45
iterMethod · 0.45
mapMethod · 0.45
cloneMethod · 0.45
into_iterMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…