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§
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 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.