From 53011f73458374e152c622904c3f0debed6aae13 Mon Sep 17 00:00:00 2001 From: zhaoliu4 Date: Mon, 12 Dec 2022 12:29:15 +0800 Subject: [PATCH] KYLIN-5359 'replace' function expression convert error --- .../apache/kylin/query/runtime/ExpressionConverter.scala | 4 ++-- .../apache/kylin/query/runtime/ExpressionConverter.scala | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala b/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala index a08affe6054..13ae14bdaf9 100644 --- a/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala +++ b/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala @@ -173,8 +173,8 @@ object ExpressionConverter { case "character_length" => length(k_lit(children.head)) case "replace" => regexp_replace(k_lit(children.head), - children.apply(1).asInstanceOf[String], - children.apply(2).asInstanceOf[String]) + k_lit(children.apply(1)), + k_lit(children.apply(2))) case "substring" | "substr" => if (children.length == 3) { //substr(str1,startPos,length) k_lit(children.head) diff --git a/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala b/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala index 764807d48f1..9301ff7d704 100644 --- a/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala +++ b/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/kylin/query/runtime/ExpressionConverter.scala @@ -173,10 +173,10 @@ object ExpressionConverter { case "upper" => upper(k_lit(children.head)) case "char_length" => length(k_lit(children.head)) case "character_length" => length(k_lit(children.head)) - case "replace " => + case "replace" => regexp_replace(k_lit(children.head), - children.apply(1).asInstanceOf[String], - children.apply(2).asInstanceOf[String]) + k_lit(children.apply(1)), + k_lit(children.apply(2))) case "substring" | "substr" => if (children.length == 3) { //substr(str1,startPos,length) k_lit(children.head)