Skip to main content

DataSink

Trait DataSink 

Source
pub trait DataSink:
    Any
    + DisplayAs
    + Debug
    + Send
    + Sync {
    // Required methods
    fn schema(&self) -> &SchemaRef;
    fn write_all<'life0, 'life1, 'async_trait>(
        &'life0 self,
        data: SendableRecordBatchStream,
        context: &'life1 Arc<TaskContext>,
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;

    // Provided method
    fn metrics(&self) -> Option<MetricsSet> { ... }
}
Expand description

DataSink implements writing streams of RecordBatches to user defined destinations.

The Display impl is used to format the sink for explain plan output.

Required Methods§

Source

fn schema(&self) -> &SchemaRef

Returns the sink schema

Source

fn write_all<'life0, 'life1, 'async_trait>( &'life0 self, data: SendableRecordBatchStream, context: &'life1 Arc<TaskContext>, ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Writes the data to the sink, returns the number of values written

This method will be called exactly once during each DML statement. Thus prior to return, the sink should do any commit or rollback required.

Provided Methods§

Source

fn metrics(&self) -> Option<MetricsSet>

Return a snapshot of the MetricsSet for this DataSink.

See ExecutionPlan::metrics() for more details

Implementations§

Source§

impl dyn DataSink

Source

pub fn is<T: DataSink>(&self) -> bool

Returns true if the inner type is T.

Source

pub fn downcast_ref<T: DataSink>(&self) -> Option<&T>

Returns a reference to the inner value as the type T if it is of that type.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§