From aadb0b64056e51d10c43905c2dc16ab794128cfb Mon Sep 17 00:00:00 2001 From: Andy Yen <38731840+onlyjackfrost@users.noreply.github.com> Date: Tue, 25 Feb 2025 05:58:53 +0800 Subject: [PATCH] migrate invoke_batch to invoke_with_args for unicode function (#14856) --- datafusion/functions/src/unicode/character_length.rs | 7 +++---- datafusion/functions/src/unicode/initcap.rs | 6 +++--- datafusion/functions/src/unicode/left.rs | 6 +++--- datafusion/functions/src/unicode/lpad.rs | 6 +++--- datafusion/functions/src/unicode/reverse.rs | 6 +++--- datafusion/functions/src/unicode/right.rs | 6 +++--- datafusion/functions/src/unicode/rpad.rs | 6 +++--- datafusion/functions/src/unicode/strpos.rs | 7 +++---- datafusion/functions/src/unicode/substr.rs | 7 +++---- datafusion/functions/src/unicode/substrindex.rs | 7 +++---- datafusion/functions/src/unicode/translate.rs | 7 +++---- 11 files changed, 33 insertions(+), 38 deletions(-) diff --git a/datafusion/functions/src/unicode/character_length.rs b/datafusion/functions/src/unicode/character_length.rs index 6ef0871f368b..c2db253dc741 100644 --- a/datafusion/functions/src/unicode/character_length.rs +++ b/datafusion/functions/src/unicode/character_length.rs @@ -88,12 +88,11 @@ impl ScalarUDFImpl for CharacterLengthFunc { utf8_to_int_type(&arg_types[0], "character_length") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { - make_scalar_function(character_length, vec![])(args) + make_scalar_function(character_length, vec![])(&args.args) } fn aliases(&self) -> &[String] { diff --git a/datafusion/functions/src/unicode/initcap.rs b/datafusion/functions/src/unicode/initcap.rs index 03314bb24925..a8a4dd0fa249 100644 --- a/datafusion/functions/src/unicode/initcap.rs +++ b/datafusion/functions/src/unicode/initcap.rs @@ -87,11 +87,11 @@ impl ScalarUDFImpl for InitcapFunc { } } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { + let args = &args.args; match args[0].data_type() { DataType::Utf8 => make_scalar_function(initcap::, vec![])(args), DataType::LargeUtf8 => make_scalar_function(initcap::, vec![])(args), diff --git a/datafusion/functions/src/unicode/left.rs b/datafusion/functions/src/unicode/left.rs index c8fbee4d90d8..f99f0de67ebb 100644 --- a/datafusion/functions/src/unicode/left.rs +++ b/datafusion/functions/src/unicode/left.rs @@ -97,11 +97,11 @@ impl ScalarUDFImpl for LeftFunc { utf8_to_str_type(&arg_types[0], "left") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { + let args = &args.args; match args[0].data_type() { DataType::Utf8 | DataType::Utf8View => { make_scalar_function(left::, vec![])(args) diff --git a/datafusion/functions/src/unicode/lpad.rs b/datafusion/functions/src/unicode/lpad.rs index 216037e90659..ea57dbd2bed5 100644 --- a/datafusion/functions/src/unicode/lpad.rs +++ b/datafusion/functions/src/unicode/lpad.rs @@ -109,11 +109,11 @@ impl ScalarUDFImpl for LPadFunc { utf8_to_str_type(&arg_types[0], "lpad") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { + let args = &args.args; match args[0].data_type() { Utf8 | Utf8View => make_scalar_function(lpad::, vec![])(args), LargeUtf8 => make_scalar_function(lpad::, vec![])(args), diff --git a/datafusion/functions/src/unicode/reverse.rs b/datafusion/functions/src/unicode/reverse.rs index c941fe32c13b..311e9e81a8be 100644 --- a/datafusion/functions/src/unicode/reverse.rs +++ b/datafusion/functions/src/unicode/reverse.rs @@ -85,11 +85,11 @@ impl ScalarUDFImpl for ReverseFunc { utf8_to_str_type(&arg_types[0], "reverse") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { + let args = &args.args; match args[0].data_type() { Utf8 | Utf8View => make_scalar_function(reverse::, vec![])(args), LargeUtf8 => make_scalar_function(reverse::, vec![])(args), diff --git a/datafusion/functions/src/unicode/right.rs b/datafusion/functions/src/unicode/right.rs index 3561176f1dd7..1ceaf6998331 100644 --- a/datafusion/functions/src/unicode/right.rs +++ b/datafusion/functions/src/unicode/right.rs @@ -97,11 +97,11 @@ impl ScalarUDFImpl for RightFunc { utf8_to_str_type(&arg_types[0], "right") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { + let args = &args.args; match args[0].data_type() { DataType::Utf8 | DataType::Utf8View => { make_scalar_function(right::, vec![])(args) diff --git a/datafusion/functions/src/unicode/rpad.rs b/datafusion/functions/src/unicode/rpad.rs index 72bb112e6f70..c68c4d329c74 100644 --- a/datafusion/functions/src/unicode/rpad.rs +++ b/datafusion/functions/src/unicode/rpad.rs @@ -108,11 +108,11 @@ impl ScalarUDFImpl for RPadFunc { utf8_to_str_type(&arg_types[0], "rpad") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { + let args = &args.args; match ( args.len(), args[0].data_type(), diff --git a/datafusion/functions/src/unicode/strpos.rs b/datafusion/functions/src/unicode/strpos.rs index 19b82ccc23c2..abc2780e002f 100644 --- a/datafusion/functions/src/unicode/strpos.rs +++ b/datafusion/functions/src/unicode/strpos.rs @@ -83,12 +83,11 @@ impl ScalarUDFImpl for StrposFunc { utf8_to_int_type(&arg_types[0], "strpos/instr/position") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { - make_scalar_function(strpos, vec![])(args) + make_scalar_function(strpos, vec![])(&args.args) } fn aliases(&self) -> &[String] { diff --git a/datafusion/functions/src/unicode/substr.rs b/datafusion/functions/src/unicode/substr.rs index 20d5f6e3abeb..4dcbea4807f4 100644 --- a/datafusion/functions/src/unicode/substr.rs +++ b/datafusion/functions/src/unicode/substr.rs @@ -95,12 +95,11 @@ impl ScalarUDFImpl for SubstrFunc { Ok(DataType::Utf8View) } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { - make_scalar_function(substr, vec![])(args) + make_scalar_function(substr, vec![])(&args.args) } fn aliases(&self) -> &[String] { diff --git a/datafusion/functions/src/unicode/substrindex.rs b/datafusion/functions/src/unicode/substrindex.rs index 20ad33b3cfe3..9a18b5d23c5e 100644 --- a/datafusion/functions/src/unicode/substrindex.rs +++ b/datafusion/functions/src/unicode/substrindex.rs @@ -108,12 +108,11 @@ impl ScalarUDFImpl for SubstrIndexFunc { utf8_to_str_type(&arg_types[0], "substr_index") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { - make_scalar_function(substr_index, vec![])(args) + make_scalar_function(substr_index, vec![])(&args.args) } fn aliases(&self) -> &[String] { diff --git a/datafusion/functions/src/unicode/translate.rs b/datafusion/functions/src/unicode/translate.rs index 47766ded3add..8b4894643a7a 100644 --- a/datafusion/functions/src/unicode/translate.rs +++ b/datafusion/functions/src/unicode/translate.rs @@ -95,12 +95,11 @@ impl ScalarUDFImpl for TranslateFunc { utf8_to_str_type(&arg_types[0], "translate") } - fn invoke_batch( + fn invoke_with_args( &self, - args: &[ColumnarValue], - _number_rows: usize, + args: datafusion_expr::ScalarFunctionArgs, ) -> Result { - make_scalar_function(invoke_translate, vec![])(args) + make_scalar_function(invoke_translate, vec![])(&args.args) } fn documentation(&self) -> Option<&Documentation> {