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

yuanzhou 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 903bf54310 [GLUTEN-6887][VL] Daily Update Velox Version (2025_11_05) 
(#11030)
903bf54310 is described below

commit 903bf543102f9ca5619ffa5ab43585ca28528065
Author: Gluten Performance Bot 
<[email protected]>
AuthorDate: Wed Nov 5 21:26:39 2025 +0000

    [GLUTEN-6887][VL] Daily Update Velox Version (2025_11_05) (#11030)
    
    * [GLUTEN-6887][VL] Daily Update Velox Version (2025_11_05)
    
    Upstream Velox's New Commits:
    5c9f9dd55 by Ke Wang, fix: Add missing metadataFilter_ transfer for split 
prefetch (#15385)
    e174b466b by Ke Wang, Back out "perf: Do not request data size if there is 
only a single source as in persistent shuffle" (#15406)
    f25af0b8d by Masha Basmanova, refactor: Delete no longer used 
exec::toSubfieldFilter API (#15402)
    6fa94f21c by Masha Basmanova, docs: Document ExprToSubfieldFilterParser 
APIs (#15393)
    b36595fb7 by Masha Basmanova, refactor: Deprecate exec::toSubfieldFilter 
API (#15392)
    833482d7a by Xiao Du, fix: Fix memory pool cleanup in exchange operator 
tests (#15344)
    371703eaa by Jialiang Tan, feat: Add custom spill base dir support for 
trace replayer (#15335)
    2423fbe4c by Karthikeyan, fix(cudf): Add missed updates to LocalPartition 
and Aggregation (#15368)
    f33915857 by Devavret Makkar, feat(cuDF): Add support for Coalesce in 
cudf's expression evaluator (#14803)
    5589bdaaa by Masha Basmanova, refactor: Replace factory with singleton in 
ExprToSubfieldFilterParser (#15390)
    ec4059b98 by Jimmy Lu, Back out "fix: Reduce lock contention in 
ScanTracker" (#15388)
    ba52907ed by MacVincent Agha-Oko, feat(Nimble): New Flush Policy 
Implementation With Chunking (#14846)
    86228365d by Christian Zentgraf, build(ci): Use GCC14 for the adapters CI 
(#15307)
    6bb539903 by Jimmy Lu, feat: Add HiveTableHandle::columnHandles (#15351)
    c1f2bb43e by Karthikeyan, feat(cudf): Add velox-cudf support for TopN 
(#14797)
    
    Signed-off-by: glutenperfbot <[email protected]>
    
    * fix
    
    Signed-off-by: Yuan <[email protected]>
    
    * fix
    
    Signed-off-by: Yuan <[email protected]>
    
    ---------
    
    Signed-off-by: glutenperfbot <[email protected]>
    Signed-off-by: Yuan <[email protected]>
    Co-authored-by: glutenperfbot <[email protected]>
    Co-authored-by: Yuan <[email protected]>
---
 cpp/velox/compute/VeloxBackend.cc                  |  3 +--
 .../functions/SparkExprToSubfieldFilterParser.cc   | 26 ++++++++++++++++++++++
 .../functions/SparkExprToSubfieldFilterParser.h    |  4 ++++
 ep/build-velox/src/get-velox.sh                    |  4 ++--
 4 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/cpp/velox/compute/VeloxBackend.cc 
b/cpp/velox/compute/VeloxBackend.cc
index fedb5aa171..8e54762fc0 100644
--- a/cpp/velox/compute/VeloxBackend.cc
+++ b/cpp/velox/compute/VeloxBackend.cc
@@ -187,8 +187,7 @@ void VeloxBackend::init(
   velox::parquet::registerParquetReaderFactory();
   velox::parquet::registerParquetWriterFactory();
   velox::orc::registerOrcReaderFactory();
-  velox::exec::ExprToSubfieldFilterParser::registerParserFactory(
-      []() { return std::make_shared<SparkExprToSubfieldFilterParser>(); });
+  
velox::exec::ExprToSubfieldFilterParser::registerParser(std::make_unique<SparkExprToSubfieldFilterParser>());
 
   // Register Velox functions
   registerAllFunctions();
diff --git a/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.cc 
b/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.cc
index e17796632e..c1bc452bd8 100644
--- a/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.cc
+++ b/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.cc
@@ -20,6 +20,32 @@ namespace gluten {
 
 using namespace facebook::velox;
 
+std::pair<common::Subfield, std::unique_ptr<common::Filter>> 
SparkExprToSubfieldFilterParser::toSubfieldFilter(
+    const core::TypedExprPtr& expr,
+    core::ExpressionEvaluator* evaluator) {
+  if (expr->isCallKind(); auto* call = 
expr->asUnchecked<core::CallTypedExpr>()) {
+    if (call->name() == "or") {
+      auto left = toSubfieldFilter(call->inputs()[0], evaluator);
+      auto right = toSubfieldFilter(call->inputs()[1], evaluator);
+      VELOX_CHECK(left.first == right.first);
+      return {std::move(left.first), makeOrFilter(std::move(left.second), 
std::move(right.second))};
+    }
+    common::Subfield subfield;
+    std::unique_ptr<common::Filter> filter;
+    if (call->name() == "not") {
+      if (auto* inner = call->inputs()[0]->asUnchecked<core::CallTypedExpr>()) 
{
+        filter = leafCallToSubfieldFilter(*inner, subfield, evaluator, true);
+      }
+    } else {
+      filter = leafCallToSubfieldFilter(*call, subfield, evaluator, false);
+    }
+    if (filter) {
+      return std::make_pair(std::move(subfield), std::move(filter));
+    }
+  }
+  VELOX_UNSUPPORTED("Unsupported expression for range filter: {}", 
expr->toString());
+}
+
 std::unique_ptr<common::Filter> 
SparkExprToSubfieldFilterParser::leafCallToSubfieldFilter(
     const core::CallTypedExpr& call,
     common::Subfield& subfield,
diff --git a/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.h 
b/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.h
index 84f28325f7..4b699fb172 100644
--- a/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.h
+++ b/cpp/velox/operators/functions/SparkExprToSubfieldFilterParser.h
@@ -23,6 +23,10 @@ namespace gluten {
 /// 2) The supported functions vary.
 class SparkExprToSubfieldFilterParser : public 
facebook::velox::exec::ExprToSubfieldFilterParser {
  public:
+  std::pair<facebook::velox::common::Subfield, 
std::unique_ptr<facebook::velox::common::Filter>> toSubfieldFilter(
+      const facebook::velox::core::TypedExprPtr& expr,
+      facebook::velox::core::ExpressionEvaluator* evaluator) override;
+
   std::unique_ptr<facebook::velox::common::Filter> leafCallToSubfieldFilter(
       const facebook::velox::core::CallTypedExpr& call,
       facebook::velox::common::Subfield& subfield,
diff --git a/ep/build-velox/src/get-velox.sh b/ep/build-velox/src/get-velox.sh
index 961b2d99ee..8ae534be1a 100755
--- a/ep/build-velox/src/get-velox.sh
+++ b/ep/build-velox/src/get-velox.sh
@@ -18,11 +18,11 @@ set -exu
 
 CURRENT_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
 VELOX_REPO=https://github.com/oap-project/velox.git
-VELOX_BRANCH=2025_11_04
+VELOX_BRANCH=2025_11_05
 VELOX_HOME=""
 RUN_SETUP_SCRIPT=ON
 VELOX_ENHANCED_REPO=https://github.com/IBM/velox.git
-VELOX_ENHANCED_BRANCH=ibm-2025_11_04
+VELOX_ENHANCED_BRANCH=ibm-2025_11_05
 ENABLE_ENHANCED_FEATURES=OFF
 
 # Developer use only for testing Velox PR.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to