From a88b35590fa160e50fce9b043f3ebe9565644885 Mon Sep 17 00:00:00 2001 From: Lawrence Mitchell Date: Mon, 1 Jul 2024 17:27:01 +0000 Subject: [PATCH] Translate BinOp.Add between strings to ConcatHorizontal This immediately raises, but previously we had a runtime error. --- python/cudf_polars/cudf_polars/dsl/translate.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/python/cudf_polars/cudf_polars/dsl/translate.py b/python/cudf_polars/cudf_polars/dsl/translate.py index fc350048082..b1abaaa0f8c 100644 --- a/python/cudf_polars/cudf_polars/dsl/translate.py +++ b/python/cudf_polars/cudf_polars/dsl/translate.py @@ -468,12 +468,13 @@ def _(node: pl_expr.Ternary, visitor: NodeTraverser, dtype: plc.DataType) -> exp def _( node: pl_expr.BinaryExpr, visitor: NodeTraverser, dtype: plc.DataType ) -> expr.Expr: - return expr.BinOp( - dtype, - expr.BinOp._MAPPING[node.op], - translate_expr(visitor, n=node.left), - translate_expr(visitor, n=node.right), - ) + left = translate_expr(visitor, n=node.left) + right = translate_expr(visitor, n=node.right) + if dtype.id() == plc.TypeId.STRING and node.op == pl_expr.Operator.PLUS: + return expr.StringFunction( + dtype, pl_expr.StringFunction.ConcatHorizontal, (), left, right + ) + return expr.BinOp(dtype, expr.BinOp._MAPPING[node.op], left, right) @_translate_expr.register