pub trait LogicalExtensionCodec:
Debug
+ Send
+ Sync {
// Required methods
fn try_decode(
&self,
buf: &[u8],
inputs: &[LogicalPlan],
ctx: &TaskContext,
) -> Result<Extension>;
fn try_encode(&self, node: &Extension, buf: &mut Vec<u8>) -> Result<()>;
fn try_decode_table_provider(
&self,
buf: &[u8],
table_ref: &TableReference,
schema: SchemaRef,
ctx: &TaskContext,
) -> Result<Arc<dyn TableProvider>>;
fn try_encode_table_provider(
&self,
table_ref: &TableReference,
node: Arc<dyn TableProvider>,
buf: &mut Vec<u8>,
) -> Result<()>;
// Provided methods
fn try_decode_file_format(
&self,
_buf: &[u8],
_ctx: &TaskContext,
) -> Result<Arc<dyn FileFormatFactory>> { ... }
fn try_encode_file_format(
&self,
_buf: &mut Vec<u8>,
_node: Arc<dyn FileFormatFactory>,
) -> Result<()> { ... }
fn try_decode_udf(&self, name: &str, _buf: &[u8]) -> Result<Arc<ScalarUDF>> { ... }
fn try_encode_udf(
&self,
_node: &ScalarUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
fn try_decode_udaf(
&self,
name: &str,
_buf: &[u8],
) -> Result<Arc<AggregateUDF>> { ... }
fn try_encode_udaf(
&self,
_node: &AggregateUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
fn try_decode_udwf(&self, name: &str, _buf: &[u8]) -> Result<Arc<WindowUDF>> { ... }
fn try_encode_udwf(
&self,
_node: &WindowUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
}Required Methods§
fn try_decode( &self, buf: &[u8], inputs: &[LogicalPlan], ctx: &TaskContext, ) -> Result<Extension>
fn try_encode(&self, node: &Extension, buf: &mut Vec<u8>) -> Result<()>
fn try_decode_table_provider( &self, buf: &[u8], table_ref: &TableReference, schema: SchemaRef, ctx: &TaskContext, ) -> Result<Arc<dyn TableProvider>>
fn try_encode_table_provider( &self, table_ref: &TableReference, node: Arc<dyn TableProvider>, buf: &mut Vec<u8>, ) -> Result<()>
Provided Methods§
fn try_decode_file_format( &self, _buf: &[u8], _ctx: &TaskContext, ) -> Result<Arc<dyn FileFormatFactory>>
fn try_encode_file_format( &self, _buf: &mut Vec<u8>, _node: Arc<dyn FileFormatFactory>, ) -> Result<()>
fn try_decode_udf(&self, name: &str, _buf: &[u8]) -> Result<Arc<ScalarUDF>>
fn try_encode_udf(&self, _node: &ScalarUDF, _buf: &mut Vec<u8>) -> Result<()>
fn try_decode_udaf(&self, name: &str, _buf: &[u8]) -> Result<Arc<AggregateUDF>>
fn try_encode_udaf( &self, _node: &AggregateUDF, _buf: &mut Vec<u8>, ) -> Result<()>
fn try_decode_udwf(&self, name: &str, _buf: &[u8]) -> Result<Arc<WindowUDF>>
fn try_encode_udwf(&self, _node: &WindowUDF, _buf: &mut Vec<u8>) -> Result<()>
Implementors§
impl LogicalExtensionCodec for ArrowLogicalExtensionCodec
impl LogicalExtensionCodec for AvroLogicalExtensionCodec
impl LogicalExtensionCodec for CsvLogicalExtensionCodec
impl LogicalExtensionCodec for JsonLogicalExtensionCodec
impl LogicalExtensionCodec for ParquetLogicalExtensionCodec
Available on crate feature
parquet only.