MCPcopy Create free account
hub / github.com/apache/arrow-rs / create_run_array_data_int64

Function create_run_array_data_int64

arrow-data/src/transform/run.rs:293–317  ·  view source on GitHub ↗
(run_ends: Vec<i64>, values: ArrayData)

Source from the content-addressed store, hash-verified

291 }
292
293 fn create_run_array_data_int64(run_ends: Vec<i64>, values: ArrayData) -> ArrayData {
294 let run_ends_field = Arc::new(Field::new("run_ends", DataType::Int64, false));
295 let values_field = Arc::new(Field::new("values", values.data_type().clone(), true));
296 let data_type = DataType::RunEndEncoded(run_ends_field, values_field);
297
298 let last_run_end = if run_ends.is_empty() {
299 0
300 } else {
301 run_ends[run_ends.len() - 1] as usize
302 };
303
304 let run_ends_buffer = Buffer::from_vec(run_ends);
305 let run_ends_data = ArrayDataBuilder::new(DataType::Int64)
306 .len(run_ends_buffer.len() / std::mem::size_of::<i64>())
307 .add_buffer(run_ends_buffer)
308 .build()
309 .unwrap();
310
311 ArrayDataBuilder::new(data_type)
312 .len(last_run_end)
313 .add_child_data(run_ends_data)
314 .add_child_data(values)
315 .build()
316 .unwrap()
317 }
318
319 fn create_int32_array_data(values: Vec<i32>) -> ArrayData {
320 let buffer = Buffer::from_vec(values);

Callers 1

test_extend_nulls_int64Function · 0.85

Calls 8

RunEndEncodedClass · 0.85
add_bufferMethod · 0.80
add_child_dataMethod · 0.80
cloneMethod · 0.45
data_typeMethod · 0.45
is_emptyMethod · 0.45
lenMethod · 0.45
buildMethod · 0.45

Tested by 1

test_extend_nulls_int64Function · 0.68