Struct datafusion_physical_expr::udf::ScalarUDF
source · pub struct ScalarUDF {
pub name: String,
pub signature: Signature,
pub return_type: Arc<dyn Fn(&[DataType]) -> Result<Arc<DataType, Global>, DataFusionError> + Sync + Send, Global>,
pub fun: Arc<dyn Fn(&[ColumnarValue]) -> Result<ColumnarValue, DataFusionError> + Sync + Send, Global>,
}
Expand description
Logical representation of a UDF.
Fields§
§name: String
name
signature: Signature
signature
return_type: Arc<dyn Fn(&[DataType]) -> Result<Arc<DataType, Global>, DataFusionError> + Sync + Send, Global>
Return type
fun: Arc<dyn Fn(&[ColumnarValue]) -> Result<ColumnarValue, DataFusionError> + Sync + Send, Global>
actual implementation
The fn param is the wrapped function but be aware that the function will be passed with the slice / vec of columnar values (either scalar or array) with the exception of zero param function, where a singular element vec will be passed. In that case the single element is a null array to indicate the batch’s row count (so that the generative zero-argument function can know the result array size).
Implementations§
source§impl ScalarUDF
impl ScalarUDF
sourcepub fn new(
name: &str,
signature: &Signature,
return_type: &Arc<dyn Fn(&[DataType]) -> Result<Arc<DataType, Global>, DataFusionError> + Sync + Send, Global>,
fun: &Arc<dyn Fn(&[ColumnarValue]) -> Result<ColumnarValue, DataFusionError> + Sync + Send, Global>
) -> ScalarUDF
pub fn new( name: &str, signature: &Signature, return_type: &Arc<dyn Fn(&[DataType]) -> Result<Arc<DataType, Global>, DataFusionError> + Sync + Send, Global>, fun: &Arc<dyn Fn(&[ColumnarValue]) -> Result<ColumnarValue, DataFusionError> + Sync + Send, Global> ) -> ScalarUDF
Create a new ScalarUDF
Trait Implementations§
source§impl PartialEq<ScalarUDF> for ScalarUDF
impl PartialEq<ScalarUDF> for ScalarUDF
impl Eq for ScalarUDF
Auto Trait Implementations§
impl !RefUnwindSafe for ScalarUDF
impl Send for ScalarUDF
impl Sync for ScalarUDF
impl Unpin for ScalarUDF
impl !UnwindSafe for ScalarUDF
Blanket Implementations§
source§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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.