File tree 2 files changed +9
-5
lines changed
2 files changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -1555,3 +1555,12 @@ def visit_ArrayIntersect(op, **kw):
1555
1555
left = translate (op .left , ** kw )
1556
1556
right = translate (op .right , ** kw )
1557
1557
return left .list .set_intersection (right )
1558
+
1559
+
1560
+ @translate .register (ops .StringFind )
1561
+ def visit_StringFind (op , ** kw ):
1562
+ arg = translate (op .arg , ** kw )
1563
+ start = translate (op .start , ** kw ) if op .start is not None else 0
1564
+ end = translate (op .end , ** kw ) if op .end is not None else None
1565
+ expr = arg .str .slice (start , end ).str .find (_literal_value (op .substr ), literal = True )
1566
+ return pl .when (expr .is_null ()).then (- 1 ).otherwise (expr + start )
Original file line number Diff line number Diff line change @@ -406,15 +406,11 @@ def uses_java_re(t):
406
406
lambda t : t .string_col .find ("a" ),
407
407
lambda t : t .string_col .str .find ("a" ),
408
408
id = "find" ,
409
- marks = pytest .mark .notimpl (["polars" ], raises = com .OperationNotDefinedError ),
410
409
),
411
410
param (
412
411
lambda t : t .date_string_col .find ("13" , 3 ),
413
412
lambda t : t .date_string_col .str .find ("13" , 3 ),
414
413
id = "find_start" ,
415
- marks = [
416
- pytest .mark .notimpl (["polars" ], raises = com .OperationNotDefinedError ),
417
- ],
418
414
),
419
415
param (
420
416
lambda t : t .string_col .lpad (10 , "a" ),
@@ -1084,7 +1080,6 @@ def string_temp_table(backend, con):
1084
1080
lambda t : t .string_col .find ("123" ),
1085
1081
lambda t : t .str .find ("123" ),
1086
1082
id = "find" ,
1087
- marks = pytest .mark .notimpl ("polars" , raises = com .OperationNotDefinedError ),
1088
1083
),
1089
1084
param (
1090
1085
lambda t : t .string_col .rpad (4 , "-" ),
You can’t perform that action at this time.
0 commit comments