@@ -74,8 +74,7 @@ impl ScalarUDFImpl for LevenshteinFunc {
74
74
75
75
fn invoke ( & self , args : & [ ColumnarValue ] ) -> Result < ColumnarValue > {
76
76
match args[ 0 ] . data_type ( ) {
77
- DataType :: Utf8View => make_scalar_function ( levenshtein :: < i32 > , vec ! [ ] ) ( args) ,
78
- DataType :: Utf8 => make_scalar_function ( levenshtein :: < i32 > , vec ! [ ] ) ( args) ,
77
+ DataType :: Utf8View | DataType :: Utf8 => make_scalar_function ( levenshtein :: < i32 > , vec ! [ ] ) ( args) ,
79
78
DataType :: LargeUtf8 => make_scalar_function ( levenshtein :: < i64 > , vec ! [ ] ) ( args) ,
80
79
other => {
81
80
exec_err ! ( "Unsupported data type {other:?} for function levenshtein" )
@@ -96,20 +95,7 @@ pub fn levenshtein<T: OffsetSizeTrait>(args: &[ArrayRef]) -> Result<ArrayRef> {
96
95
let str1_array = as_generic_string_array :: < T > ( & args[ 0 ] ) ?;
97
96
let str2_array = as_generic_string_array :: < T > ( & args[ 1 ] ) ?;
98
97
match args[ 0 ] . data_type ( ) {
99
- DataType :: Utf8View => {
100
- let result = str1_array
101
- . iter ( )
102
- . zip ( str2_array. iter ( ) )
103
- . map ( |( string1, string2) | match ( string1, string2) {
104
- ( Some ( string1) , Some ( string2) ) => {
105
- Some ( datafusion_strsim:: levenshtein ( string1, string2) as i32 )
106
- }
107
- _ => None ,
108
- } )
109
- . collect :: < Int32Array > ( ) ;
110
- Ok ( Arc :: new ( result) as ArrayRef )
111
- }
112
- DataType :: Utf8 => {
98
+ DataType :: Utf8View | DataType :: Utf8 => {
113
99
let result = str1_array
114
100
. iter ( )
115
101
. zip ( str2_array. iter ( ) )
0 commit comments