pub struct IcebergCreateTableArrowConvert {
next_field_id: RefCell<u32>,
}Expand description
Iceberg sink with create_table_if_not_exists option will use this struct to convert the
iceberg data type to arrow data type.
Specifically, it will add the field id to the arrow field metadata, because iceberg-rust need the field id to be set.
Note: this is different from IcebergArrowConvert, which is used to read from/write to
an existing iceberg table. In that case, we just need to make sure the data is compatible to the existing schema.
But to create a new table, we need to meet more requirements of iceberg.
Fields§
§next_field_id: RefCell<u32>Implementations§
Source§impl IcebergCreateTableArrowConvert
impl IcebergCreateTableArrowConvert
pub fn to_arrow_field( &self, name: &str, data_type: &DataType, ) -> Result<Field, ArrayError>
fn add_field_id(&self, arrow_field: &mut Field)
Trait Implementations§
Source§impl Default for IcebergCreateTableArrowConvert
impl Default for IcebergCreateTableArrowConvert
Source§fn default() -> IcebergCreateTableArrowConvert
fn default() -> IcebergCreateTableArrowConvert
Returns the “default value” for a type. Read more
Source§impl ToArrow for IcebergCreateTableArrowConvert
impl ToArrow for IcebergCreateTableArrowConvert
Source§fn 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 decimal_type_to_arrow(&self, name: &str) -> Field
fn interval_type_to_arrow(&self) -> DataType
fn jsonb_type_to_arrow(&self, name: &str) -> Field
Source§fn to_record_batch(
&self,
schema: SchemaRef,
chunk: &DataChunk,
) -> Result<RecordBatch, ArrayError>
fn to_record_batch( &self, schema: SchemaRef, chunk: &DataChunk, ) -> Result<RecordBatch, ArrayError>
Source§fn 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>
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 varchar_type_to_arrow(&self) -> DataType
fn bytea_type_to_arrow(&self) -> DataType
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>
Auto Trait Implementations§
impl !Freeze for IcebergCreateTableArrowConvert
impl !RefUnwindSafe for IcebergCreateTableArrowConvert
impl !Sync for IcebergCreateTableArrowConvert
impl Send for IcebergCreateTableArrowConvert
impl Unpin for IcebergCreateTableArrowConvert
impl UnsafeUnpin for IcebergCreateTableArrowConvert
impl UnwindSafe for IcebergCreateTableArrowConvert
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
U: Sized,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
U: Sized,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Forward to the method defined on the type
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Forward to the method defined on the type
Any.§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].impl<T> MaybeSend for Twhere
T: Send,
Source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
Source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level.Source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n.Source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n with metric_level set to
MetricLevel::Debug and relabel_num set to 1.