From 0d6cd91488435f5adbc7f44ff2133f877b806fb6 Mon Sep 17 00:00:00 2001 From: Yuan Zhou Date: Wed, 8 Jun 2022 14:57:33 +0800 Subject: [PATCH] format Signed-off-by: Yuan Zhou --- .../intel/oap/execution/ColumnarWindowExec.scala | 13 +++++++++---- .../cpp/src/codegen/arrow_compute/expr_visitor.cc | 2 +- .../src/codegen/arrow_compute/expr_visitor_impl.h | 6 +++--- .../cpp/src/codegen/arrow_compute/ext/kernels_ext.h | 3 ++- .../src/codegen/arrow_compute/ext/window_kernel.cc | 4 ++-- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ColumnarWindowExec.scala b/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ColumnarWindowExec.scala index aa1656a60..1a670e73a 100644 --- a/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ColumnarWindowExec.scala +++ b/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ColumnarWindowExec.scala @@ -61,7 +61,7 @@ case class ColumnarWindowExec(windowExpression: Seq[NamedExpression], override def output: Seq[Attribute] = child.output ++ windowExpression.map(_.toAttribute) - //buildCheck() + buildCheck() override def requiredChildDistribution: Seq[Distribution] = { if (isLocal) { @@ -103,6 +103,10 @@ case class ColumnarWindowExec(windowExpression: Seq[NamedExpression], try { breakable { for (func <- validateWindowFunctions()) { + if (func._1 == "row_number") { + allLiteral = false + break + } for (child <- func._2.children) { if (!child.isInstanceOf[Literal]) { allLiteral = false @@ -216,9 +220,10 @@ case class ColumnarWindowExec(windowExpression: Seq[NamedExpression], Iterator.empty } else { val prev1 = System.nanoTime() - val gWindowFunctions = windowFunctions.map { - case ("row_number", fc) => - val attr = ConverterUtils.getAttrFromExpr(fc, true) + val gWindowFunctions = windowFunctions.map { + case ("row_number", spec) => + //TODO(): should get attr from orderSpec + val attr = ConverterUtils.getAttrFromExpr(orderSpec.head.child, true) TreeBuilder.makeFunction("row_number", List(TreeBuilder.makeField( Field.nullable(attr.name, diff --git a/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor.cc b/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor.cc index 7967815a1..a0b5e6aae 100644 --- a/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor.cc +++ b/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor.cc @@ -277,7 +277,7 @@ arrow::Status ExprVisitor::MakeWindow( for (const auto& child : node.children()) { auto child_function = std::dynamic_pointer_cast(child); auto child_func_name = child_function->descriptor()->name(); - std::cout << "window func name: " << child_func_name << std::endl; + if (child_func_name == "sum" || child_func_name == "avg" || child_func_name == "min" || child_func_name == "max" || child_func_name == "count" || child_func_name == "count_literal" || diff --git a/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor_impl.h b/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor_impl.h index 39bf46545..edd1a1f42 100644 --- a/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor_impl.h +++ b/native-sql-engine/cpp/src/codegen/arrow_compute/expr_visitor_impl.h @@ -178,9 +178,9 @@ class WindowVisitorImpl : public ExprVisitorImpl { function_param_type_list, &function_kernel, true)); } else if (window_function_name == "row_number") { - RETURN_NOT_OK(extra::WindowRankKernel::Make(&p_->ctx_, window_function_name, - function_param_type_list, - &function_kernel, true/*FIXME: force decending*/)); + RETURN_NOT_OK(extra::WindowRankKernel::Make( + &p_->ctx_, window_function_name, function_param_type_list, &function_kernel, + true /*FIXME: force decending*/)); } else { return arrow::Status::Invalid("window function not supported: " + window_function_name); diff --git a/native-sql-engine/cpp/src/codegen/arrow_compute/ext/kernels_ext.h b/native-sql-engine/cpp/src/codegen/arrow_compute/ext/kernels_ext.h index 0f2df4960..7ca6716de 100644 --- a/native-sql-engine/cpp/src/codegen/arrow_compute/ext/kernels_ext.h +++ b/native-sql-engine/cpp/src/codegen/arrow_compute/ext/kernels_ext.h @@ -315,7 +315,8 @@ class WindowRankKernel : public KernalBase { public: WindowRankKernel(arrow::compute::ExecContext* ctx, std::vector> type_list, - std::shared_ptr sorter, bool desc, bool is_row_number = false); + std::shared_ptr sorter, bool desc, + bool is_row_number = false); static arrow::Status Make(arrow::compute::ExecContext* ctx, std::string function_name, std::vector> type_list, std::shared_ptr* out, bool desc); diff --git a/native-sql-engine/cpp/src/codegen/arrow_compute/ext/window_kernel.cc b/native-sql-engine/cpp/src/codegen/arrow_compute/ext/window_kernel.cc index d24a6b5e0..94acdda4c 100644 --- a/native-sql-engine/cpp/src/codegen/arrow_compute/ext/window_kernel.cc +++ b/native-sql-engine/cpp/src/codegen/arrow_compute/ext/window_kernel.cc @@ -302,7 +302,7 @@ arrow::Status WindowRankKernel::Make( } else { *out = std::make_shared(ctx, type_list, sorter, desc); } - + return arrow::Status::OK(); } @@ -534,7 +534,7 @@ arrow::Status WindowRankKernel::AreTheSameValue(const std::vector& va bool* out) { if (is_row_number_) { *out = false; - return arrow::Status::OK(); + return arrow::Status::OK(); } auto typed_array_i = std::dynamic_pointer_cast(values.at(i->array_id).at(column));