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

Function create_run_array_data_int16

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

Source from the content-addressed store, hash-verified

265 }
266
267 fn create_run_array_data_int16(run_ends: Vec<i16>, values: ArrayData) -> ArrayData {
268 let run_ends_field = Arc::new(Field::new("run_ends", DataType::Int16, false));
269 let values_field = Arc::new(Field::new("values", values.data_type().clone(), true));
270 let data_type = DataType::RunEndEncoded(run_ends_field, values_field);
271
272 let last_run_end = if run_ends.is_empty() {
273 0
274 } else {
275 run_ends[run_ends.len() - 1] as usize
276 };
277
278 let run_ends_buffer = Buffer::from_vec(run_ends);
279 let run_ends_data = ArrayDataBuilder::new(DataType::Int16)
280 .len(run_ends_buffer.len() / std::mem::size_of::<i16>())
281 .add_buffer(run_ends_buffer)
282 .build()
283 .unwrap();
284
285 ArrayDataBuilder::new(data_type)
286 .len(last_run_end)
287 .add_child_data(run_ends_data)
288 .add_child_data(values)
289 .build()
290 .unwrap()
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));

Callers 3

test_extend_nulls_int16Function · 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 3

test_extend_nulls_int16Function · 0.68