This is an automated email from the ASF dual-hosted git repository.
goldmedal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 45d9820aa7 chore: Migrate Array Functions to invoke_with_args (#14726)
45d9820aa7 is described below
commit 45d9820aa7d858adc48ddcf88feb240cbb639fc6
Author: irenjj <[email protected]>
AuthorDate: Tue Feb 18 21:36:16 2025 +0800
chore: Migrate Array Functions to invoke_with_args (#14726)
* chore: Migrate Array Functions to invoke_with_args
* fix clippy
* fix issues
* fix tests
* fix
---
datafusion/functions-nested/src/array_has.rs | 29 ++++++++++-----------
datafusion/functions-nested/src/cardinality.rs | 7 +++--
datafusion/functions-nested/src/concat.rs | 21 +++++++--------
datafusion/functions-nested/src/dimension.rs | 14 +++++-----
datafusion/functions-nested/src/distance.rs | 7 +++--
datafusion/functions-nested/src/empty.rs | 7 +++--
datafusion/functions-nested/src/except.rs | 7 +++--
datafusion/functions-nested/src/extract.rs | 36 ++++++++++++--------------
datafusion/functions-nested/src/flatten.rs | 7 +++--
datafusion/functions-nested/src/length.rs | 7 +++--
datafusion/functions-nested/src/make_array.rs | 7 +++--
datafusion/functions-nested/src/map.rs | 7 +++--
datafusion/functions-nested/src/map_extract.rs | 7 +++--
datafusion/functions-nested/src/map_keys.rs | 7 +++--
datafusion/functions-nested/src/map_values.rs | 7 +++--
datafusion/functions-nested/src/position.rs | 14 +++++-----
datafusion/functions-nested/src/range.rs | 14 +++++-----
datafusion/functions-nested/src/remove.rs | 21 +++++++--------
datafusion/functions-nested/src/repeat.rs | 7 +++--
datafusion/functions-nested/src/replace.rs | 21 +++++++--------
datafusion/functions-nested/src/resize.rs | 7 +++--
datafusion/functions-nested/src/reverse.rs | 7 +++--
datafusion/functions-nested/src/set_ops.rs | 21 +++++++--------
datafusion/functions-nested/src/sort.rs | 7 +++--
datafusion/functions-nested/src/string.rs | 13 +++++-----
25 files changed, 137 insertions(+), 172 deletions(-)
diff --git a/datafusion/functions-nested/src/array_has.rs
b/datafusion/functions-nested/src/array_has.rs
index 5c694600b8..5a29cf9628 100644
--- a/datafusion/functions-nested/src/array_has.rs
+++ b/datafusion/functions-nested/src/array_has.rs
@@ -25,6 +25,7 @@ use arrow::datatypes::DataType;
use arrow::row::{RowConverter, Rows, SortField};
use datafusion_common::cast::as_generic_list_array;
use datafusion_common::utils::string_utils::string_array_to_vec;
+use datafusion_common::utils::take_function_args;
use datafusion_common::{exec_err, Result, ScalarValue};
use datafusion_expr::{
ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility,
@@ -120,15 +121,15 @@ impl ScalarUDFImpl for ArrayHas {
Ok(DataType::Boolean)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- match &args[1] {
+ let [first_arg, second_arg] = take_function_args(self.name(),
&args.args)?;
+ match &second_arg {
ColumnarValue::Array(array_needle) => {
// the needle is already an array, convert the haystack to an
array of the same length
- let haystack = args[0].to_array(array_needle.len())?;
+ let haystack = first_arg.to_array(array_needle.len())?;
let array = array_has_inner_for_array(&haystack,
array_needle)?;
Ok(ColumnarValue::Array(array))
}
@@ -140,11 +141,11 @@ impl ScalarUDFImpl for ArrayHas {
}
// since the needle is a scalar, convert it to an array of
size 1
- let haystack = args[0].to_array(1)?;
+ let haystack = first_arg.to_array(1)?;
let needle = scalar_needle.to_array_of_size(1)?;
let needle = Scalar::new(needle);
let array = array_has_inner_for_scalar(&haystack, &needle)?;
- if let ColumnarValue::Scalar(_) = &args[0] {
+ if let ColumnarValue::Scalar(_) = &first_arg {
// If both inputs are scalar, keeps output as scalar
let scalar_value = ScalarValue::try_from_array(&array, 0)?;
Ok(ColumnarValue::Scalar(scalar_value))
@@ -332,12 +333,11 @@ impl ScalarUDFImpl for ArrayHasAll {
Ok(DataType::Boolean)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_has_all_inner)(args)
+ make_scalar_function(array_has_all_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -407,12 +407,11 @@ impl ScalarUDFImpl for ArrayHasAny {
Ok(DataType::Boolean)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_has_any_inner)(args)
+ make_scalar_function(array_has_any_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/cardinality.rs
b/datafusion/functions-nested/src/cardinality.rs
index 8867097799..f2f2384158 100644
--- a/datafusion/functions-nested/src/cardinality.rs
+++ b/datafusion/functions-nested/src/cardinality.rs
@@ -112,12 +112,11 @@ impl ScalarUDFImpl for Cardinality {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(cardinality_inner)(args)
+ make_scalar_function(cardinality_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/concat.rs
b/datafusion/functions-nested/src/concat.rs
index 17fb1a3731..f4b9208e5c 100644
--- a/datafusion/functions-nested/src/concat.rs
+++ b/datafusion/functions-nested/src/concat.rs
@@ -109,12 +109,11 @@ impl ScalarUDFImpl for ArrayAppend {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_append_inner)(args)
+ make_scalar_function(array_append_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -205,12 +204,11 @@ impl ScalarUDFImpl for ArrayPrepend {
Ok(arg_types[1].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_prepend_inner)(args)
+ make_scalar_function(array_prepend_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -324,12 +322,11 @@ impl ScalarUDFImpl for ArrayConcat {
Ok(expr_type)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_concat_inner)(args)
+ make_scalar_function(array_concat_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/dimension.rs
b/datafusion/functions-nested/src/dimension.rs
index dc1547b7b4..a7d0336414 100644
--- a/datafusion/functions-nested/src/dimension.rs
+++ b/datafusion/functions-nested/src/dimension.rs
@@ -106,12 +106,11 @@ impl ScalarUDFImpl for ArrayDims {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_dims_inner)(args)
+ make_scalar_function(array_dims_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -184,12 +183,11 @@ impl ScalarUDFImpl for ArrayNdims {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_ndims_inner)(args)
+ make_scalar_function(array_ndims_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/distance.rs
b/datafusion/functions-nested/src/distance.rs
index fc33828078..cfc7fccdd7 100644
--- a/datafusion/functions-nested/src/distance.rs
+++ b/datafusion/functions-nested/src/distance.rs
@@ -124,12 +124,11 @@ impl ScalarUDFImpl for ArrayDistance {
Ok(result)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_distance_inner)(args)
+ make_scalar_function(array_distance_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/empty.rs
b/datafusion/functions-nested/src/empty.rs
index 07e5d41b80..dcefd583e9 100644
--- a/datafusion/functions-nested/src/empty.rs
+++ b/datafusion/functions-nested/src/empty.rs
@@ -98,12 +98,11 @@ impl ScalarUDFImpl for ArrayEmpty {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_empty_inner)(args)
+ make_scalar_function(array_empty_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/except.rs
b/datafusion/functions-nested/src/except.rs
index f7958caa63..2385f6d12d 100644
--- a/datafusion/functions-nested/src/except.rs
+++ b/datafusion/functions-nested/src/except.rs
@@ -106,12 +106,11 @@ impl ScalarUDFImpl for ArrayExcept {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_except_inner)(args)
+ make_scalar_function(array_except_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/extract.rs
b/datafusion/functions-nested/src/extract.rs
index 6bf4d16db6..422b1b6128 100644
--- a/datafusion/functions-nested/src/extract.rs
+++ b/datafusion/functions-nested/src/extract.rs
@@ -172,12 +172,11 @@ impl ScalarUDFImpl for ArrayElement {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_element_inner)(args)
+ make_scalar_function(array_element_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -395,12 +394,11 @@ impl ScalarUDFImpl for ArraySlice {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_slice_inner)(args)
+ make_scalar_function(array_slice_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -704,12 +702,11 @@ impl ScalarUDFImpl for ArrayPopFront {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_pop_front_inner)(args)
+ make_scalar_function(array_pop_front_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -812,12 +809,11 @@ impl ScalarUDFImpl for ArrayPopBack {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_pop_back_inner)(args)
+ make_scalar_function(array_pop_back_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -918,13 +914,13 @@ impl ScalarUDFImpl for ArrayAnyValue {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_any_value_inner)(args)
+ make_scalar_function(array_any_value_inner)(&args.args)
}
+
fn aliases(&self) -> &[String] {
&self.aliases
}
diff --git a/datafusion/functions-nested/src/flatten.rs
b/datafusion/functions-nested/src/flatten.rs
index 0003db38e0..f288035948 100644
--- a/datafusion/functions-nested/src/flatten.rs
+++ b/datafusion/functions-nested/src/flatten.rs
@@ -124,12 +124,11 @@ impl ScalarUDFImpl for Flatten {
Ok(data_type)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(flatten_inner)(args)
+ make_scalar_function(flatten_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/length.rs
b/datafusion/functions-nested/src/length.rs
index a8190a6108..3c3a42da0d 100644
--- a/datafusion/functions-nested/src/length.rs
+++ b/datafusion/functions-nested/src/length.rs
@@ -103,12 +103,11 @@ impl ScalarUDFImpl for ArrayLength {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_length_inner)(args)
+ make_scalar_function(array_length_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/make_array.rs
b/datafusion/functions-nested/src/make_array.rs
index 7c41238af5..4daaafc5a8 100644
--- a/datafusion/functions-nested/src/make_array.rs
+++ b/datafusion/functions-nested/src/make_array.rs
@@ -117,12 +117,11 @@ impl ScalarUDFImpl for MakeArray {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(make_array_inner)(args)
+ make_scalar_function(make_array_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/map.rs
b/datafusion/functions-nested/src/map.rs
index 67ff918251..828f2e2441 100644
--- a/datafusion/functions-nested/src/map.rs
+++ b/datafusion/functions-nested/src/map.rs
@@ -273,12 +273,11 @@ impl ScalarUDFImpl for MapFunc {
))
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_map_batch(args)
+ make_map_batch(&args.args)
}
fn documentation(&self) -> Option<&Documentation> {
diff --git a/datafusion/functions-nested/src/map_extract.rs
b/datafusion/functions-nested/src/map_extract.rs
index ddc12482e3..55ab8447c5 100644
--- a/datafusion/functions-nested/src/map_extract.rs
+++ b/datafusion/functions-nested/src/map_extract.rs
@@ -110,12 +110,11 @@ impl ScalarUDFImpl for MapExtract {
))))
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(map_extract_inner)(args)
+ make_scalar_function(map_extract_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/map_keys.rs
b/datafusion/functions-nested/src/map_keys.rs
index c58624e12c..0f15c06d86 100644
--- a/datafusion/functions-nested/src/map_keys.rs
+++ b/datafusion/functions-nested/src/map_keys.rs
@@ -100,12 +100,11 @@ impl ScalarUDFImpl for MapKeysFunc {
))))
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(map_keys_inner)(args)
+ make_scalar_function(map_keys_inner)(&args.args)
}
fn documentation(&self) -> Option<&Documentation> {
diff --git a/datafusion/functions-nested/src/map_values.rs
b/datafusion/functions-nested/src/map_values.rs
index d4a67b7f67..f82e4bfa1a 100644
--- a/datafusion/functions-nested/src/map_values.rs
+++ b/datafusion/functions-nested/src/map_values.rs
@@ -100,12 +100,11 @@ impl ScalarUDFImpl for MapValuesFunc {
))))
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(map_values_inner)(args)
+ make_scalar_function(map_values_inner)(&args.args)
}
fn documentation(&self) -> Option<&Documentation> {
diff --git a/datafusion/functions-nested/src/position.rs
b/datafusion/functions-nested/src/position.rs
index 9adb174c4f..b186b65407 100644
--- a/datafusion/functions-nested/src/position.rs
+++ b/datafusion/functions-nested/src/position.rs
@@ -120,12 +120,11 @@ impl ScalarUDFImpl for ArrayPosition {
Ok(UInt64)
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_position_inner)(args)
+ make_scalar_function(array_position_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -274,12 +273,11 @@ impl ScalarUDFImpl for ArrayPositions {
Ok(List(Arc::new(Field::new_list_field(UInt64, true))))
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_positions_inner)(args)
+ make_scalar_function(array_positions_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/range.rs
b/datafusion/functions-nested/src/range.rs
index dcf5f33ea2..637a78d158 100644
--- a/datafusion/functions-nested/src/range.rs
+++ b/datafusion/functions-nested/src/range.rs
@@ -155,11 +155,12 @@ impl ScalarUDFImpl for Range {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
+ let args = &args.args;
+
if args.iter().any(|arg| arg.data_type().is_null()) {
return Ok(ColumnarValue::Array(Arc::new(NullArray::new(1))));
}
@@ -278,11 +279,12 @@ impl ScalarUDFImpl for GenSeries {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
+ let args = &args.args;
+
if args.iter().any(|arg| arg.data_type().is_null()) {
return Ok(ColumnarValue::Array(Arc::new(NullArray::new(1))));
}
diff --git a/datafusion/functions-nested/src/remove.rs
b/datafusion/functions-nested/src/remove.rs
index f9539dbc16..7f5baa18e7 100644
--- a/datafusion/functions-nested/src/remove.rs
+++ b/datafusion/functions-nested/src/remove.rs
@@ -101,12 +101,11 @@ impl ScalarUDFImpl for ArrayRemove {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_remove_inner)(args)
+ make_scalar_function(array_remove_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -180,12 +179,11 @@ impl ScalarUDFImpl for ArrayRemoveN {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_remove_n_inner)(args)
+ make_scalar_function(array_remove_n_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -258,12 +256,11 @@ impl ScalarUDFImpl for ArrayRemoveAll {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_remove_all_inner)(args)
+ make_scalar_function(array_remove_all_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/repeat.rs
b/datafusion/functions-nested/src/repeat.rs
index 16d7c1912f..26d67ad311 100644
--- a/datafusion/functions-nested/src/repeat.rs
+++ b/datafusion/functions-nested/src/repeat.rs
@@ -115,12 +115,11 @@ impl ScalarUDFImpl for ArrayRepeat {
))))
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_repeat_inner)(args)
+ make_scalar_function(array_repeat_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/replace.rs
b/datafusion/functions-nested/src/replace.rs
index 6d84e64cba..71bfedb72d 100644
--- a/datafusion/functions-nested/src/replace.rs
+++ b/datafusion/functions-nested/src/replace.rs
@@ -128,12 +128,11 @@ impl ScalarUDFImpl for ArrayReplace {
Ok(args[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_replace_inner)(args)
+ make_scalar_function(array_replace_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -210,12 +209,11 @@ impl ScalarUDFImpl for ArrayReplaceN {
Ok(args[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_replace_n_inner)(args)
+ make_scalar_function(array_replace_n_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -290,12 +288,11 @@ impl ScalarUDFImpl for ArrayReplaceAll {
Ok(args[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_replace_all_inner)(args)
+ make_scalar_function(array_replace_all_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/resize.rs
b/datafusion/functions-nested/src/resize.rs
index 83d04ec1b7..6c0b91a678 100644
--- a/datafusion/functions-nested/src/resize.rs
+++ b/datafusion/functions-nested/src/resize.rs
@@ -112,12 +112,11 @@ impl ScalarUDFImpl for ArrayResize {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_resize_inner)(args)
+ make_scalar_function(array_resize_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/reverse.rs
b/datafusion/functions-nested/src/reverse.rs
index b7c4274ca4..140cd19aef 100644
--- a/datafusion/functions-nested/src/reverse.rs
+++ b/datafusion/functions-nested/src/reverse.rs
@@ -96,12 +96,11 @@ impl ScalarUDFImpl for ArrayReverse {
Ok(arg_types[0].clone())
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_reverse_inner)(args)
+ make_scalar_function(array_reverse_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/set_ops.rs
b/datafusion/functions-nested/src/set_ops.rs
index 97ccc035a0..a67945b1f1 100644
--- a/datafusion/functions-nested/src/set_ops.rs
+++ b/datafusion/functions-nested/src/set_ops.rs
@@ -131,12 +131,11 @@ impl ScalarUDFImpl for ArrayUnion {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_union_inner)(args)
+ make_scalar_function(array_union_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -211,12 +210,11 @@ impl ScalarUDFImpl for ArrayIntersect {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_intersect_inner)(args)
+ make_scalar_function(array_intersect_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -288,12 +286,11 @@ impl ScalarUDFImpl for ArrayDistinct {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_distinct_inner)(args)
+ make_scalar_function(array_distinct_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/sort.rs
b/datafusion/functions-nested/src/sort.rs
index 163ca0c05b..7dbf9f2b21 100644
--- a/datafusion/functions-nested/src/sort.rs
+++ b/datafusion/functions-nested/src/sort.rs
@@ -121,12 +121,11 @@ impl ScalarUDFImpl for ArraySort {
}
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_sort_inner)(args)
+ make_scalar_function(array_sort_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
diff --git a/datafusion/functions-nested/src/string.rs
b/datafusion/functions-nested/src/string.rs
index 9b5e0c952a..99af3e95c8 100644
--- a/datafusion/functions-nested/src/string.rs
+++ b/datafusion/functions-nested/src/string.rs
@@ -192,12 +192,11 @@ impl ScalarUDFImpl for ArrayToString {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
- make_scalar_function(array_to_string_inner)(args)
+ make_scalar_function(array_to_string_inner)(&args.args)
}
fn aliases(&self) -> &[String] {
@@ -286,11 +285,11 @@ impl ScalarUDFImpl for StringToArray {
})
}
- fn invoke_batch(
+ fn invoke_with_args(
&self,
- args: &[ColumnarValue],
- _number_rows: usize,
+ args: datafusion_expr::ScalarFunctionArgs,
) -> Result<ColumnarValue> {
+ let args = &args.args;
match args[0].data_type() {
Utf8 | Utf8View =>
make_scalar_function(string_to_array_inner::<i32>)(args),
LargeUtf8 =>
make_scalar_function(string_to_array_inner::<i64>)(args),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]