Skip to content

Commit 958d613

Browse files
committed
feat: provide helper for converting WasmScalarUDF to AsyncScalarUDF
1 parent 18f716d commit 958d613

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

host/src/lib.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ use ::http::HeaderName;
88
use arrow::datatypes::DataType;
99
use datafusion_common::{DataFusionError, Result as DataFusionResult, config::ConfigOptions};
1010
use datafusion_expr::{
11-
ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, async_udf::AsyncScalarUDFImpl,
11+
ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature,
12+
async_udf::{AsyncScalarUDF, AsyncScalarUDFImpl},
1213
};
1314
use tokio::{runtime::Handle, sync::Mutex};
1415
use wasmtime::{
@@ -398,6 +399,11 @@ impl WasmScalarUdf {
398399

399400
Ok(udfs)
400401
}
402+
403+
/// Convert this [WasmScalarUdf] into an [AsyncScalarUDF].
404+
pub fn as_async_udf(self) -> AsyncScalarUDF {
405+
AsyncScalarUDF::new(Arc::new(self))
406+
}
401407
}
402408

403409
impl std::fmt::Debug for WasmScalarUdf {
@@ -490,7 +496,7 @@ impl AsyncScalarUDFImpl for WasmScalarUdf {
490496
let columnar_value: ColumnarValue = return_type.try_into()?;
491497
match columnar_value {
492498
ColumnarValue::Array(v) => Ok(v),
493-
ColumnarValue::Scalar(v) => v.to_array_of_size(1),
499+
ColumnarValue::Scalar(v) => v.to_array_of_size(args.number_rows as usize),
494500
}
495501
}
496502
}

0 commit comments

Comments
 (0)