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

Function make_array

arrow-array/src/array/mod.rs:890–988  ·  view source on GitHub ↗

Constructs an [`ArrayRef`] from an [`ArrayData`]. # Notes: It is more efficient to directly construct the concrete array type rather than using this function as creating an `ArrayData` requires at least one additional allocation (the Vec of buffers). # Example: ``` # use std::sync::Arc; # use arrow_data::ArrayData; # use arrow_array::{make_array, ArrayRef, Int32Array}; # use arrow_buffer::{Buff

(data: ArrayData)

Source from the content-addressed store, hash-verified

888/// assert_eq!(&array, &int32_array);
889/// ```
890pub fn make_array(data: ArrayData) -> ArrayRef {
891 match data.data_type() {
892 DataType::Boolean => Arc::new(BooleanArray::from(data)) as ArrayRef,
893 DataType::Int8 => Arc::new(Int8Array::from(data)) as ArrayRef,
894 DataType::Int16 => Arc::new(Int16Array::from(data)) as ArrayRef,
895 DataType::Int32 => Arc::new(Int32Array::from(data)) as ArrayRef,
896 DataType::Int64 => Arc::new(Int64Array::from(data)) as ArrayRef,
897 DataType::UInt8 => Arc::new(UInt8Array::from(data)) as ArrayRef,
898 DataType::UInt16 => Arc::new(UInt16Array::from(data)) as ArrayRef,
899 DataType::UInt32 => Arc::new(UInt32Array::from(data)) as ArrayRef,
900 DataType::UInt64 => Arc::new(UInt64Array::from(data)) as ArrayRef,
901 DataType::Float16 => Arc::new(Float16Array::from(data)) as ArrayRef,
902 DataType::Float32 => Arc::new(Float32Array::from(data)) as ArrayRef,
903 DataType::Float64 => Arc::new(Float64Array::from(data)) as ArrayRef,
904 DataType::Date32 => Arc::new(Date32Array::from(data)) as ArrayRef,
905 DataType::Date64 => Arc::new(Date64Array::from(data)) as ArrayRef,
906 DataType::Time32(TimeUnit::Second) => Arc::new(Time32SecondArray::from(data)) as ArrayRef,
907 DataType::Time32(TimeUnit::Millisecond) => {
908 Arc::new(Time32MillisecondArray::from(data)) as ArrayRef
909 }
910 DataType::Time64(TimeUnit::Microsecond) => {
911 Arc::new(Time64MicrosecondArray::from(data)) as ArrayRef
912 }
913 DataType::Time64(TimeUnit::Nanosecond) => {
914 Arc::new(Time64NanosecondArray::from(data)) as ArrayRef
915 }
916 DataType::Timestamp(TimeUnit::Second, _) => {
917 Arc::new(TimestampSecondArray::from(data)) as ArrayRef
918 }
919 DataType::Timestamp(TimeUnit::Millisecond, _) => {
920 Arc::new(TimestampMillisecondArray::from(data)) as ArrayRef
921 }
922 DataType::Timestamp(TimeUnit::Microsecond, _) => {
923 Arc::new(TimestampMicrosecondArray::from(data)) as ArrayRef
924 }
925 DataType::Timestamp(TimeUnit::Nanosecond, _) => {
926 Arc::new(TimestampNanosecondArray::from(data)) as ArrayRef
927 }
928 DataType::Interval(IntervalUnit::YearMonth) => {
929 Arc::new(IntervalYearMonthArray::from(data)) as ArrayRef
930 }
931 DataType::Interval(IntervalUnit::DayTime) => {
932 Arc::new(IntervalDayTimeArray::from(data)) as ArrayRef
933 }
934 DataType::Interval(IntervalUnit::MonthDayNano) => {
935 Arc::new(IntervalMonthDayNanoArray::from(data)) as ArrayRef
936 }
937 DataType::Duration(TimeUnit::Second) => {
938 Arc::new(DurationSecondArray::from(data)) as ArrayRef
939 }
940 DataType::Duration(TimeUnit::Millisecond) => {
941 Arc::new(DurationMillisecondArray::from(data)) as ArrayRef
942 }
943 DataType::Duration(TimeUnit::Microsecond) => {
944 Arc::new(DurationMicrosecondArray::from(data)) as ArrayRef
945 }
946 DataType::Duration(TimeUnit::Nanosecond) => {
947 Arc::new(DurationNanosecondArray::from(data)) as ArrayRef

Callers 15

fromMethod · 0.70
fromMethod · 0.70
new_empty_arrayFunction · 0.70
new_null_arrayFunction · 0.70
fromMethod · 0.70
flattenMethod · 0.70
fromMethod · 0.70
new_nullMethod · 0.70
fromMethod · 0.70
create_random_list_arrayFunction · 0.50

Calls 2

data_typeMethod · 0.45
as_refMethod · 0.45