From 63f38bb9fc7b8d1002de9ec93e6ac2d42fab560c Mon Sep 17 00:00:00 2001 From: liyou Date: Mon, 31 Oct 2022 15:53:14 +0800 Subject: [PATCH 1/2] support round --- .../boostkit/spark/expression/OmniExpressionAdaptor.scala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala b/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala index 170393144..297e58c45 100644 --- a/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala +++ b/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala @@ -548,6 +548,11 @@ object OmniExpressionAdaptor extends Logging { case concat: Concat => getConcatJsonStr(concat, exprsIndexMap) + case round: Round => + "{\"exprType\":\"FUNCTION\",\"returnType\":%s,\"function_name\":\"round\", \"arguments\":[%s,%s]}" + .format(sparkTypeToOmniExpJsonType(round.dataType), + rewriteToOmniJsonExpressionLiteral(round.child, exprsIndexMap), + rewriteToOmniJsonExpressionLiteral(round.scale, exprsIndexMap)) case attr: Attribute => toOmniJsonAttribute(attr, exprsIndexMap(attr.exprId)) case _ => if (HiveUdfAdaptorUtil.isHiveUdf(expr) && ColumnarPluginConfig.getSessionConf.enableColumnarUdf) { -- Gitee From 4d0b500fce1df527bfc379562f0f38166284a0a4 Mon Sep 17 00:00:00 2001 From: liyou Date: Tue, 1 Nov 2022 11:27:24 +0800 Subject: [PATCH 2/2] support round --- .../spark/expression/OmniExpressionAdaptorSuite.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/omnioperator/omniop-spark-extension/java/src/test/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptorSuite.scala b/omnioperator/omniop-spark-extension/java/src/test/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptorSuite.scala index d60c544d7..bf8e24dd5 100644 --- a/omnioperator/omniop-spark-extension/java/src/test/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptorSuite.scala +++ b/omnioperator/omniop-spark-extension/java/src/test/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptorSuite.scala @@ -248,6 +248,10 @@ class OmniExpressionAdaptorSuite extends SparkFunSuite { checkJsonExprRewrite("{\"exprType\":\"FUNCTION\",\"returnType\":1,\"function_name\":\"abs\"," + " \"arguments\":[{\"exprType\":\"FIELD_REFERENCE\",\"dataType\":1,\"colVal\":0}]}", Abs(allAttribute(0))) + + checkJsonExprRewrite("{\"exprType\":\"FUNCTION\",\"returnType\":1,\"function_name\":\"round\"," + + " \"arguments\":[{\"exprType\":\"FIELD_REFERENCE\",\"dataType\":1,\"colVal\":0},{\"exprType\":\"LITERAL\",\"dataType\":1, \"isNull\":false, \"value\":2}]}", + Round(allAttribute(0), Literal(2))) } protected def checkExpressionRewrite(expected: Any, expression: Expression): Unit = { -- Gitee