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

Function nested_batch

datafusion/core/benches/parquet_struct_projection.rs:313–358  ·  view source on GitHub ↗
(batch_id: usize)

Source from the content-addressed store, hash-verified

311}
312
313fn nested_batch(batch_id: usize) -> RecordBatch {
314 let schema = nested_schema();
315 let len = WRITE_RECORD_BATCH_SIZE;
316
317 let base_id = (batch_id * len) as i32;
318 let id_values: Vec<i32> = (0..len).map(|i| base_id + i as i32).collect();
319 let id_array = Arc::new(Int32Array::from(id_values.clone()));
320 let small_int_array = Arc::new(Int32Array::from(id_values));
321
322 let large_string: String = "x".repeat(LARGE_STRING_LEN);
323
324 let mut sb1 = StringBuilder::new();
325 let mut sb2 = StringBuilder::new();
326 for _ in 0..len {
327 sb1.append_value(&large_string);
328 sb2.append_value(&large_string);
329 }
330
331 let inner_struct = StructArray::from(vec![
332 (
333 Arc::new(Field::new("large_string", DataType::Utf8, false)),
334 Arc::new(sb1.finish()) as ArrayRef,
335 ),
336 (
337 Arc::new(Field::new("small_int", DataType::Int32, false)),
338 small_int_array as ArrayRef,
339 ),
340 ]);
341
342 let inner_fields = Fields::from(vec![
343 Field::new("large_string", DataType::Utf8, false),
344 Field::new("small_int", DataType::Int32, false),
345 ]);
346 let outer_struct = StructArray::from(vec![
347 (
348 Arc::new(Field::new("inner", DataType::Struct(inner_fields), false)),
349 Arc::new(inner_struct) as ArrayRef,
350 ),
351 (
352 Arc::new(Field::new("extra_string", DataType::Utf8, false)),
353 Arc::new(sb2.finish()) as ArrayRef,
354 ),
355 ]);
356
357 RecordBatch::try_new(schema, vec![id_array, Arc::new(outer_struct)]).unwrap()
358}
359
360fn nested_benchmarks(c: &mut Criterion) {
361 let temp_file = generate_file(nested_schema(), nested_batch, "nested_struct");

Callers

nothing calls this directly

Calls 6

nested_schemaFunction · 0.85
newFunction · 0.85
collectMethod · 0.80
mapMethod · 0.45
cloneMethod · 0.45
append_valueMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…