pub trait TypePlanner:
Debug
+ Send
+ Sync {
// Provided methods
fn plan_type(&self, _sql_type: &DataType) -> Result<Option<DataType>> { ... }
fn plan_type_field(&self, sql_type: &DataType) -> Result<Option<FieldRef>> { ... }
}sql only.Expand description
Customize planning SQL types to DataFusion (Arrow) types. For more background, please also see the Extending SQL in DataFusion: from ->> to TABLESAMPLE blog
Provided Methods§
Sourcefn plan_type(&self, _sql_type: &DataType) -> Result<Option<DataType>>
👎Deprecated since 53.0.0: Use plan_type_field()
fn plan_type(&self, _sql_type: &DataType) -> Result<Option<DataType>>
Use plan_type_field()
Plan SQL sqlparser::ast::DataType to DataFusion DataType
Returns None if not possible
Sourcefn plan_type_field(&self, sql_type: &DataType) -> Result<Option<FieldRef>>
fn plan_type_field(&self, sql_type: &DataType) -> Result<Option<FieldRef>>
Plan SQL sqlparser::ast::DataType to DataFusion FieldRef
Returns None if not possible. Unlike Self::plan_type, plan_type_field()
makes it possible to express extension types (e.g., arrow.uuid) or otherwise
insert metadata into the DataFusion type representation. The default implementation
falls back on Self::plan_type for backward compatibility and wraps the result
in a nullable field reference.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".