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

Function create_inputs

datafusion/functions-nested/benches/array_slice.rs:34–77  ·  view source on GitHub ↗
(
    rng: &mut StdRng,
    size: usize,
    child_array_size: usize,
    null_density: f32,
)

Source from the content-addressed store, hash-verified

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

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…