@@ -28,6 +28,8 @@ use arrow::compute::kernels::arithmetic::{
2828 multiply_scalar, subtract, subtract_scalar,
2929} ;
3030use arrow:: compute:: kernels:: boolean:: { and_kleene, not, or_kleene} ;
31+ use arrow:: compute:: kernels:: comparison:: regexp_is_match_utf8;
32+ use arrow:: compute:: kernels:: comparison:: regexp_is_match_utf8_scalar;
3133use arrow:: compute:: kernels:: comparison:: {
3234 eq_dyn_binary_scalar, gt_dyn_binary_scalar, gt_eq_dyn_binary_scalar,
3335 lt_dyn_binary_scalar, lt_eq_dyn_binary_scalar, neq_dyn_binary_scalar,
@@ -47,13 +49,6 @@ use arrow::compute::kernels::comparison::{
4749use arrow:: compute:: kernels:: comparison:: {
4850 eq_scalar, gt_eq_scalar, gt_scalar, lt_eq_scalar, lt_scalar, neq_scalar,
4951} ;
50- use arrow:: compute:: kernels:: comparison:: {
51- ilike_utf8, like_utf8, nilike_utf8, nlike_utf8, regexp_is_match_utf8,
52- } ;
53- use arrow:: compute:: kernels:: comparison:: {
54- ilike_utf8_scalar, like_utf8_scalar, nilike_utf8_scalar, nlike_utf8_scalar,
55- regexp_is_match_utf8_scalar,
56- } ;
5752
5853use adapter:: { eq_dyn, gt_dyn, gt_eq_dyn, lt_dyn, lt_eq_dyn, neq_dyn} ;
5954use arrow:: compute:: kernels:: concat_elements:: concat_elements_utf8;
@@ -344,19 +339,6 @@ macro_rules! compute_op {
344339 } } ;
345340}
346341
347- macro_rules! binary_string_array_op_scalar {
348- ( $LEFT: expr, $RIGHT: expr, $OP: ident, $OP_TYPE: expr) => { {
349- let result: Result <Arc <dyn Array >> = match $LEFT. data_type( ) {
350- DataType :: Utf8 => compute_utf8_op_scalar!( $LEFT, $RIGHT, $OP, StringArray , $OP_TYPE) ,
351- other => Err ( DataFusionError :: Internal ( format!(
352- "Data type {:?} not supported for scalar operation '{}' on string array" ,
353- other, stringify!( $OP)
354- ) ) ) ,
355- } ;
356- Some ( result)
357- } } ;
358- }
359-
360342macro_rules! binary_string_array_op {
361343 ( $LEFT: expr, $RIGHT: expr, $OP: ident) => { {
362344 match $LEFT. data_type( ) {
@@ -941,18 +923,6 @@ impl BinaryExpr {
941923 Operator :: NotEq => {
942924 binary_array_op_dyn_scalar ! ( array, scalar. clone( ) , neq, bool_type)
943925 }
944- Operator :: Like => {
945- binary_string_array_op_scalar ! ( array, scalar. clone( ) , like, bool_type)
946- }
947- Operator :: NotLike => {
948- binary_string_array_op_scalar ! ( array, scalar. clone( ) , nlike, bool_type)
949- }
950- Operator :: ILike => {
951- binary_string_array_op_scalar ! ( array, scalar. clone( ) , ilike, bool_type)
952- }
953- Operator :: NotILike => {
954- binary_string_array_op_scalar ! ( array, scalar. clone( ) , nilike, bool_type)
955- }
956926 Operator :: Plus => {
957927 binary_primitive_array_op_scalar ! ( array, scalar. clone( ) , add)
958928 }
@@ -1053,10 +1023,6 @@ impl BinaryExpr {
10531023 right_data_type : & DataType ,
10541024 ) -> Result < ArrayRef > {
10551025 match & self . op {
1056- Operator :: Like => binary_string_array_op ! ( left, right, like) ,
1057- Operator :: NotLike => binary_string_array_op ! ( left, right, nlike) ,
1058- Operator :: ILike => binary_string_array_op ! ( left, right, ilike) ,
1059- Operator :: NotILike => binary_string_array_op ! ( left, right, nilike) ,
10601026 Operator :: Lt => lt_dyn ( & left, & right) ,
10611027 Operator :: LtEq => lt_eq_dyn ( & left, & right) ,
10621028 Operator :: Gt => gt_dyn ( & left, & right) ,
@@ -1347,54 +1313,6 @@ mod tests {
13471313 DataType :: Float32 ,
13481314 vec![ 2f32 ] ,
13491315 ) ;
1350- test_coercion ! (
1351- StringArray ,
1352- DataType :: Utf8 ,
1353- vec![ "hello world" , "world" ] ,
1354- StringArray ,
1355- DataType :: Utf8 ,
1356- vec![ "%hello%" , "%hello%" ] ,
1357- Operator :: Like ,
1358- BooleanArray ,
1359- DataType :: Boolean ,
1360- vec![ true , false ] ,
1361- ) ;
1362- test_coercion ! (
1363- StringArray ,
1364- DataType :: Utf8 ,
1365- vec![ "hello world" , "world" ] ,
1366- StringArray ,
1367- DataType :: Utf8 ,
1368- vec![ "%hello%" , "%hello%" ] ,
1369- Operator :: NotLike ,
1370- BooleanArray ,
1371- DataType :: Boolean ,
1372- vec![ false , true ] ,
1373- ) ;
1374- test_coercion ! (
1375- StringArray ,
1376- DataType :: Utf8 ,
1377- vec![ "hEllo world" , "world" ] ,
1378- StringArray ,
1379- DataType :: Utf8 ,
1380- vec![ "%helLo%" , "%helLo%" ] ,
1381- Operator :: ILike ,
1382- BooleanArray ,
1383- DataType :: Boolean ,
1384- vec![ true , false ] ,
1385- ) ;
1386- test_coercion ! (
1387- StringArray ,
1388- DataType :: Utf8 ,
1389- vec![ "hEllo world" , "world" ] ,
1390- StringArray ,
1391- DataType :: Utf8 ,
1392- vec![ "%helLo%" , "%helLo%" ] ,
1393- Operator :: NotILike ,
1394- BooleanArray ,
1395- DataType :: Boolean ,
1396- vec![ false , true ] ,
1397- ) ;
13981316 test_coercion ! (
13991317 StringArray ,
14001318 DataType :: Utf8 ,
0 commit comments