risingwave_common::array::arrow::arrow_52::arrow_impl

Trait ToArrow

source
pub trait ToArrow {
Show 43 methods // Provided methods fn to_record_batch( &self, schema: SchemaRef, chunk: &DataChunk, ) -> Result<RecordBatch, ArrayError> { ... } fn to_array( &self, data_type: &DataType, array: &ArrayImpl, ) -> Result<ArrayRef, ArrayError> { ... } fn bool_to_arrow(&self, array: &BoolArray) -> Result<ArrayRef, ArrayError> { ... } fn int16_to_arrow(&self, array: &I16Array) -> Result<ArrayRef, ArrayError> { ... } fn int32_to_arrow(&self, array: &I32Array) -> Result<ArrayRef, ArrayError> { ... } fn int64_to_arrow(&self, array: &I64Array) -> Result<ArrayRef, ArrayError> { ... } fn float32_to_arrow(&self, array: &F32Array) -> Result<ArrayRef, ArrayError> { ... } fn float64_to_arrow(&self, array: &F64Array) -> Result<ArrayRef, ArrayError> { ... } fn utf8_to_arrow(&self, array: &Utf8Array) -> Result<ArrayRef, ArrayError> { ... } fn int256_to_arrow( &self, array: &Int256Array, ) -> Result<ArrayRef, ArrayError> { ... } fn date_to_arrow(&self, array: &DateArray) -> Result<ArrayRef, ArrayError> { ... } fn timestamp_to_arrow( &self, array: &TimestampArray, ) -> Result<ArrayRef, ArrayError> { ... } fn timestamptz_to_arrow( &self, array: &TimestamptzArray, ) -> Result<ArrayRef, ArrayError> { ... } fn time_to_arrow(&self, array: &TimeArray) -> Result<ArrayRef, ArrayError> { ... } fn interval_to_arrow( &self, array: &IntervalArray, ) -> Result<ArrayRef, ArrayError> { ... } fn bytea_to_arrow(&self, array: &BytesArray) -> Result<ArrayRef, ArrayError> { ... } fn decimal_to_arrow( &self, _data_type: &DataType, array: &DecimalArray, ) -> Result<ArrayRef, ArrayError> { ... } fn jsonb_to_arrow(&self, array: &JsonbArray) -> Result<ArrayRef, ArrayError> { ... } fn serial_to_arrow( &self, array: &SerialArray, ) -> Result<ArrayRef, ArrayError> { ... } fn list_to_arrow( &self, data_type: &DataType, array: &ListArray, ) -> Result<ArrayRef, ArrayError> { ... } fn struct_to_arrow( &self, data_type: &DataType, array: &StructArray, ) -> Result<ArrayRef, ArrayError> { ... } fn map_to_arrow( &self, data_type: &DataType, array: &MapArray, ) -> Result<ArrayRef, ArrayError> { ... } fn to_arrow_field( &self, name: &str, value: &DataType, ) -> Result<Field, ArrayError> { ... } fn bool_type_to_arrow(&self) -> DataType { ... } fn int16_type_to_arrow(&self) -> DataType { ... } fn int32_type_to_arrow(&self) -> DataType { ... } fn int64_type_to_arrow(&self) -> DataType { ... } fn int256_type_to_arrow(&self) -> DataType { ... } fn float32_type_to_arrow(&self) -> DataType { ... } fn float64_type_to_arrow(&self) -> DataType { ... } fn date_type_to_arrow(&self) -> DataType { ... } fn time_type_to_arrow(&self) -> DataType { ... } fn timestamp_type_to_arrow(&self) -> DataType { ... } fn timestamptz_type_to_arrow(&self) -> DataType { ... } fn interval_type_to_arrow(&self) -> DataType { ... } fn varchar_type_to_arrow(&self) -> DataType { ... } fn jsonb_type_to_arrow(&self, name: &str) -> Field { ... } fn bytea_type_to_arrow(&self) -> DataType { ... } fn decimal_type_to_arrow(&self, name: &str) -> Field { ... } fn serial_type_to_arrow(&self) -> DataType { ... } fn list_type_to_arrow( &self, elem_type: &DataType, ) -> Result<DataType, ArrayError> { ... } fn struct_type_to_arrow( &self, fields: &StructType, ) -> Result<DataType, ArrayError> { ... } fn map_type_to_arrow( &self, map_type: &MapType, ) -> Result<DataType, ArrayError> { ... }
}
Expand description

Defines how to convert RisingWave arrays to Arrow arrays.

This trait allows for customized conversion logic for different external systems using Arrow. The default implementation is based on the From implemented in this mod.

Provided Methods§

source

fn to_record_batch( &self, schema: SchemaRef, chunk: &DataChunk, ) -> Result<RecordBatch, ArrayError>

Converts RisingWave DataChunk to Arrow RecordBatch with specified schema.

This function will try to convert the array if the type is not same with the schema.

source

fn to_array( &self, data_type: &DataType, array: &ArrayImpl, ) -> Result<ArrayRef, ArrayError>

Converts RisingWave array to Arrow array.

source

fn bool_to_arrow(&self, array: &BoolArray) -> Result<ArrayRef, ArrayError>

source

fn int16_to_arrow(&self, array: &I16Array) -> Result<ArrayRef, ArrayError>

source

fn int32_to_arrow(&self, array: &I32Array) -> Result<ArrayRef, ArrayError>

source

fn int64_to_arrow(&self, array: &I64Array) -> Result<ArrayRef, ArrayError>

source

fn float32_to_arrow(&self, array: &F32Array) -> Result<ArrayRef, ArrayError>

source

fn float64_to_arrow(&self, array: &F64Array) -> Result<ArrayRef, ArrayError>

source

fn utf8_to_arrow(&self, array: &Utf8Array) -> Result<ArrayRef, ArrayError>

source

fn int256_to_arrow(&self, array: &Int256Array) -> Result<ArrayRef, ArrayError>

source

fn date_to_arrow(&self, array: &DateArray) -> Result<ArrayRef, ArrayError>

source

fn timestamp_to_arrow( &self, array: &TimestampArray, ) -> Result<ArrayRef, ArrayError>

source

fn timestamptz_to_arrow( &self, array: &TimestamptzArray, ) -> Result<ArrayRef, ArrayError>

source

fn time_to_arrow(&self, array: &TimeArray) -> Result<ArrayRef, ArrayError>

source

fn interval_to_arrow( &self, array: &IntervalArray, ) -> Result<ArrayRef, ArrayError>

source

fn bytea_to_arrow(&self, array: &BytesArray) -> Result<ArrayRef, ArrayError>

source

fn decimal_to_arrow( &self, _data_type: &DataType, array: &DecimalArray, ) -> Result<ArrayRef, ArrayError>

source

fn jsonb_to_arrow(&self, array: &JsonbArray) -> Result<ArrayRef, ArrayError>

source

fn serial_to_arrow(&self, array: &SerialArray) -> Result<ArrayRef, ArrayError>

source

fn list_to_arrow( &self, data_type: &DataType, array: &ListArray, ) -> Result<ArrayRef, ArrayError>

source

fn struct_to_arrow( &self, data_type: &DataType, array: &StructArray, ) -> Result<ArrayRef, ArrayError>

source

fn map_to_arrow( &self, data_type: &DataType, array: &MapArray, ) -> Result<ArrayRef, ArrayError>

source

fn to_arrow_field( &self, name: &str, value: &DataType, ) -> Result<Field, ArrayError>

Convert RisingWave data type to Arrow data type.

This function returns a Field instead of DataType because some may be converted to extension types which require additional metadata in the field.

source

fn bool_type_to_arrow(&self) -> DataType

source

fn int16_type_to_arrow(&self) -> DataType

source

fn int32_type_to_arrow(&self) -> DataType

source

fn int64_type_to_arrow(&self) -> DataType

source

fn int256_type_to_arrow(&self) -> DataType

source

fn float32_type_to_arrow(&self) -> DataType

source

fn float64_type_to_arrow(&self) -> DataType

source

fn date_type_to_arrow(&self) -> DataType

source

fn time_type_to_arrow(&self) -> DataType

source

fn timestamp_type_to_arrow(&self) -> DataType

source

fn timestamptz_type_to_arrow(&self) -> DataType

source

fn interval_type_to_arrow(&self) -> DataType

source

fn varchar_type_to_arrow(&self) -> DataType

source

fn jsonb_type_to_arrow(&self, name: &str) -> Field

source

fn bytea_type_to_arrow(&self) -> DataType

source

fn decimal_type_to_arrow(&self, name: &str) -> Field

source

fn serial_type_to_arrow(&self) -> DataType

source

fn list_type_to_arrow( &self, elem_type: &DataType, ) -> Result<DataType, ArrayError>

source

fn struct_type_to_arrow( &self, fields: &StructType, ) -> Result<DataType, ArrayError>

source

fn map_type_to_arrow(&self, map_type: &MapType) -> Result<DataType, ArrayError>

Implementors§