pub trait ToArrow {
Show 45 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 vector_to_arrow(
&self,
data_type: &DataType,
array: &VectorArray,
) -> 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,
list_type: &ListType,
) -> 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> { ... }
fn vector_type_to_arrow(&self) -> 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§
Sourcefn to_record_batch(
&self,
schema: SchemaRef,
chunk: &DataChunk,
) -> Result<RecordBatch, ArrayError>
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.
Sourcefn to_array(
&self,
data_type: &DataType,
array: &ArrayImpl,
) -> Result<ArrayRef, ArrayError>
fn to_array( &self, data_type: &DataType, array: &ArrayImpl, ) -> Result<ArrayRef, ArrayError>
Converts RisingWave array to Arrow array.
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 vector_to_arrow( &self, data_type: &DataType, array: &VectorArray, ) -> 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>
Sourcefn to_arrow_field(
&self,
name: &str,
value: &DataType,
) -> Result<Field, ArrayError>
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.
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, list_type: &ListType, ) -> 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>
fn vector_type_to_arrow(&self) -> Result<DataType, ArrayError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".