(batch_id: usize)
| 311 | } |
| 312 | |
| 313 | fn 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 | |
| 360 | fn nested_benchmarks(c: &mut Criterion) { |
| 361 | let temp_file = generate_file(nested_schema(), nested_batch, "nested_struct"); |
nothing calls this directly
no test coverage detected
searching dependent graphs…