This is an automated email from the ASF dual-hosted git repository.

marong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 8aefd875e [VL] Daily Update Velox Version (2024_03_26) (#5115)
8aefd875e is described below

commit 8aefd875ed151a568746e939085ea52e56751aed
Author: Rong Ma <rong...@intel.com>
AuthorDate: Tue Mar 26 17:44:53 2024 +0800

    [VL] Daily Update Velox Version (2024_03_26) (#5115)
---
 cpp/velox/operators/functions/RegistrationAllFunctions.cc |  3 ++-
 cpp/velox/operators/functions/RowConstructorWithNull.cc   | 14 ++++++++++----
 cpp/velox/operators/functions/RowFunctionWithNull.h       |  5 +++--
 ep/build-velox/src/get_velox.sh                           |  2 +-
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/cpp/velox/operators/functions/RegistrationAllFunctions.cc 
b/cpp/velox/operators/functions/RegistrationAllFunctions.cc
index 4ff19be93..a11963446 100644
--- a/cpp/velox/operators/functions/RegistrationAllFunctions.cc
+++ b/cpp/velox/operators/functions/RegistrationAllFunctions.cc
@@ -56,7 +56,8 @@ void registerFunctionOverwrite() {
   velox::exec::registerVectorFunction(
       "row_constructor_with_null",
       std::vector<std::shared_ptr<velox::exec::FunctionSignature>>{},
-      std::make_unique<RowFunctionWithNull>());
+      std::make_unique<RowFunctionWithNull>(),
+      RowFunctionWithNull::metadata());
   velox::exec::registerFunctionCallToSpecialForm(
       RowConstructorWithNullCallToSpecialForm::kRowConstructorWithNull,
       std::make_unique<RowConstructorWithNullCallToSpecialForm>());
diff --git a/cpp/velox/operators/functions/RowConstructorWithNull.cc 
b/cpp/velox/operators/functions/RowConstructorWithNull.cc
index 411dd478e..955d957e2 100644
--- a/cpp/velox/operators/functions/RowConstructorWithNull.cc
+++ b/cpp/velox/operators/functions/RowConstructorWithNull.cc
@@ -37,14 +37,20 @@ facebook::velox::exec::ExprPtr 
RowConstructorWithNullCallToSpecialForm::construc
     std::vector<facebook::velox::exec::ExprPtr>&& compiledChildren,
     bool trackCpuUsage,
     const facebook::velox::core::QueryConfig& config) {
-  auto rowConstructorVectorFunction =
-      facebook::velox::exec::vectorFunctionFactories().withRLock([&config, 
&name](auto& functionMap) {
+  auto [function, metadata] = 
facebook::velox::exec::vectorFunctionFactories().withRLock(
+      [&config, &name](auto& functionMap) -> std::pair<
+                                              
std::shared_ptr<facebook::velox::exec::VectorFunction>,
+                                              
facebook::velox::exec::VectorFunctionMetadata> {
         auto functionIterator = functionMap.find(name);
-        return functionIterator->second.factory(name, {}, config);
+        if (functionIterator != functionMap.end()) {
+          return {functionIterator->second.factory(name, {}, config), 
functionIterator->second.metadata};
+        } else {
+          VELOX_FAIL("Function {} is not registered.", name);
+        }
       });
 
   return std::make_shared<facebook::velox::exec::Expr>(
-      type, std::move(compiledChildren), rowConstructorVectorFunction, name, 
trackCpuUsage);
+      type, std::move(compiledChildren), function, metadata, name, 
trackCpuUsage);
 }
 
 facebook::velox::exec::ExprPtr 
RowConstructorWithNullCallToSpecialForm::constructSpecialForm(
diff --git a/cpp/velox/operators/functions/RowFunctionWithNull.h 
b/cpp/velox/operators/functions/RowFunctionWithNull.h
index d66fda99e..9ed6bc277 100644
--- a/cpp/velox/operators/functions/RowFunctionWithNull.h
+++ b/cpp/velox/operators/functions/RowFunctionWithNull.h
@@ -26,6 +26,7 @@ namespace gluten {
  * A customized RowFunction to set struct as null when one of its argument is 
null.
  */
 class RowFunctionWithNull final : public facebook::velox::exec::VectorFunction 
{
+ public:
   void apply(
       const facebook::velox::SelectivityVector& rows,
       std::vector<facebook::velox::VectorPtr>& args,
@@ -58,8 +59,8 @@ class RowFunctionWithNull final : public 
facebook::velox::exec::VectorFunction {
     context.moveOrCopyResult(localResult, rows, result);
   }
 
-  bool isDefaultNullBehavior() const override {
-    return false;
+  static facebook::velox::exec::VectorFunctionMetadata metadata() {
+    return 
facebook::velox::exec::VectorFunctionMetadataBuilder().defaultNullBehavior(false).build();
   }
 };
 
diff --git a/ep/build-velox/src/get_velox.sh b/ep/build-velox/src/get_velox.sh
index 074f80918..767585e91 100755
--- a/ep/build-velox/src/get_velox.sh
+++ b/ep/build-velox/src/get_velox.sh
@@ -17,7 +17,7 @@
 set -exu
 
 VELOX_REPO=https://github.com/oap-project/velox.git
-VELOX_BRANCH=2024_03_25
+VELOX_BRANCH=2024_03_26
 VELOX_HOME=""
 
 #Set on run gluten on HDFS


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@gluten.apache.org
For additional commands, e-mail: commits-h...@gluten.apache.org

Reply via email to