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

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


The following commit(s) were added to refs/heads/main by this push:
     new 3a13aefc7a [GLUTEN-6887][VL] Daily Update Velox Version (2026_06_12) 
(#12281)
3a13aefc7a is described below

commit 3a13aefc7ac0370550d0d066283afa41a3b84de6
Author: Gluten Performance Bot 
<[email protected]>
AuthorDate: Thu Jun 18 19:17:54 2026 +0100

    [GLUTEN-6887][VL] Daily Update Velox Version (2026_06_12) (#12281)
    
    Upstream Velox's New Commits:
    97d08923f by Chengcheng Jin, build(cudf): Add cudf label to cudf pull 
request (#16976)
    68b3e46e0 by Richard Barnes, refactor: Migrate PrestoCastHooks from 
double-conversion to fast_float (#17807)
    306fdacea by Krishna Pai, feat: Add forwardedProbeColumns to 
IndexLookupJoinNode (#17737)
    f3e7bcfc0 by Liangcai Li, fix(cudf): Evaluate row constructor dereferences 
(#17460)
    2c0b18f7a by Kyle Hubert, fix(cudf): Fix UCX output buffer lifetime after 
async cuDF concat (#17533)
    cc0fbeb76 by Luis GarcΓ©s-Erice, fix(cudf): Fix 
velox_cudf_iceberg_deletion_vector_test (#17767)
    683337aaf by Anup Kesavan, refactor(parquet): Avoid copying logical type 
(#17782)
    25f1fe493 by Orri Erling, feat: Support in-place ops, fix fused/standalone 
syncs, broadcast shapes (#17770)
    e5d15ee37 by Xiaoxuan Meng, feat: Add synchronous io_uring batch reads for 
local files (#17788)
    457bb8ffd by Ping Liu, refactor: FileFormat's hand-rolled toString() switch 
to VELOX_DEFINE_ENUM_NAME (#17777)
    1d05baea9 by Ping Liu, fix(build): Dwrf proto build error (#17716)
    69fd99226 by dependabot[bot], build(ci): Bump astral-sh/setup-uv from 7.1.2 
to 8.2.0 (#17762)
    9fcf58381 by Orri Erling, feat(torchwave): Zero-copy parallel 
reference-frame load (#17751)
    ca38b8971 by Matt Gara, feat(cudf): Add basic support for timestamp and 
date (#16634)
    73c7ae2b7 by Zac Wen, feat: Support lazy reader creation in HiveIndexSource 
(#17786)
    f59223d35 by Zhenyuan Zhao, fix: Clean up parquet thrift (#17784)
    cce26b637 by Zac Wen, refactor: Unify partitioned and non-partitioned paths 
with SplitGroup (#17772)
    c0f92ff76 by Xiaoxuan Meng, test: Make cached duplicate-region test 
deterministic (#17780)
    adead10dd by Heidi Han, feat(types): Serialize enum types in toSql and 
parse enum kinds case-insensitively (#17717)
    904df4b67 by peterenescu, build: Use FBThrift instead of Apache Thrift 
(#16019) (#16019) (#16019)
    f68e7ae9f by dependabot[bot], build(ci): Bump pypa/cibuildwheel from 3.3.0 
to 4.0.0 (#17763)
    379847068 by dependabot[bot], build(deps): Bump 
@babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.7 in /website 
(#17771)
    4c0441d83 by Deepthi Bose, feat(function): Add Google Polyline encoding and 
decoding Presto scalar functions (#16516)
    48590c71d by Daniel Bauer, feat(cudf): Support DATE identity partition 
columns in Iceberg reader (#17755)
    9d0fbd54f by Orri Erling, fix: Force alwaysSingleBlock ops to a single 
block in makeGrid (#17769)
    a3d93dff0 by lifulong, fix(parquet): LIST/MAP reader: null buffer size() 
stale after ensureCapacity (#17496)
    d66364f74 by Kyle Hubert, fix(UCX): Fix UCX intra-node fast-path selection 
(#17753)
    75a7b56bb by Bradley Dice, build(cuda): Allow DNF fallback for adapter CUDA 
installs (#17712)
    c26556994 by Matt Gara, fix(cudf): Transfer hash join build input ownership 
(#17754)
    450598d99 by Masha Basmanova, docs(review): Make design and maintainability 
a first-class review pass (#17766)
    9febb8c58 by zhli1142015, perf(window): Skip RowContainer round-trip in 
streaming window build (#17558)
    ceecbfc43 by Xiaoxuan Meng, fix: Support duplicate regions in 
CachedBufferedInput (#17757)
    5aad32741 by Xiaoxuan Meng, feat: Support duplicate regions in 
DirectBufferedInput (#17756)
    91e3fb5e0 by Prashant Golash, perf: Lazy per-column I/O for projected 
columns in Nimble (#17350)
    1bb178337 by Christian Zentgraf, feat(ci): Add ASAN and UBSAN build and CI 
job (#15444)
    99cf749ec by dependabot[bot], build(deps): Bump axios from 1.15.2 to 1.16.0 
in /website (#17742)
    27d515493 by Apurva Kumar, feat: IcebergMergeSink: composite DataSink for 
UPDATE/MERGE (#17738)
    3e97e9763 by Pramod Satya, test(cudf): Add tests for parquet stats 
filtering for decimals (#17432)
    c441ece28 by Xiaoxuan Meng, perf: Coalesce exact duplicate IO ranges
    1f90087b4 by Ping Liu, refactor: Rename inconsistent Hive Parquet config 
keys (#17733)
    d171ea054 by Zhenyuan Zhao, fix(iceberg): Support reading flatmap as struct 
(#17741)
    
    Co-authored-by: glutenperfbot <[email protected]>
    Co-authored-by: Yuan <[email protected]>
---
 .github/workflows/util/check.py                    |   5 +-
 .github/workflows/velox_backend_arm.yml            |   1 +
 .github/workflows/velox_backend_x86.yml            |   2 +-
 .../org/apache/gluten/config/VeloxConfig.scala     |   2 +-
 cpp/velox/CMakeLists.txt                           |  58 ++++++++++++
 cpp/velox/config/VeloxConfig.h                     |   2 +-
 cpp/velox/utils/ConfigExtractor.cc                 |   4 +-
 dev/build-arrow.sh                                 |   6 +-
 dev/check.py                                       |   2 +
 dev/ci-velox-buildshared-centos-9.sh               |   5 +-
 ...velox-buildstatic-centos-7-enhanced-features.sh |   1 +
 dev/ci-velox-buildstatic-centos-7.sh               |   1 +
 dev/vcpkg/README.md                                |  16 +---
 dev/vcpkg/init.sh                                  |   4 +-
 .../fbthrift/compactv1-protocol-refiller.patch     |  23 +++++
 dev/vcpkg/ports/fbthrift/fix-deps.patch            |  47 +++++++++
 dev/vcpkg/ports/fbthrift/fix-fmt-include.patch     |  13 +++
 dev/vcpkg/ports/fbthrift/fix-test.patch            |  16 ++++
 dev/vcpkg/ports/fbthrift/folly-has-liburing.diff   |  13 +++
 dev/vcpkg/ports/fbthrift/portfile.cmake            | 102 ++++++++++++++++++++
 dev/vcpkg/ports/fbthrift/vcpkg.json                |  35 +++++++
 dev/vcpkg/ports/folly/adding-api.patch             |  34 -------
 dev/vcpkg/ports/folly/fix-absolute-dir.patch       |  14 ---
 dev/vcpkg/ports/folly/fix-deps.patch               |  74 +++++++++------
 dev/vcpkg/ports/folly/fix-perf_scoped-target.patch |  14 +++
 dev/vcpkg/ports/folly/portfile.cmake               |   8 +-
 dev/vcpkg/ports/folly/vcpkg.json                   |   2 +-
 dev/vcpkg/ports/mvfst/portfile.cmake               |  21 +++++
 dev/vcpkg/ports/mvfst/removexsk.patch              |  13 +++
 dev/vcpkg/ports/mvfst/vcpkg.json                   |  30 ++++++
 dev/vcpkg/vcpkg-configuration.json                 |   6 ++
 dev/vcpkg/vcpkg.json                               |   9 +-
 docs/velox-configuration.md                        |   2 +-
 ep/build-velox/src/get-velox.sh                    |   5 +-
 ep/build-velox/src/socket.h                        | 105 +++++++++++++++++++++
 35 files changed, 575 insertions(+), 120 deletions(-)

diff --git a/.github/workflows/util/check.py b/.github/workflows/util/check.py
index 7861c0aca3..755a4868b1 100755
--- a/.github/workflows/util/check.py
+++ b/.github/workflows/util/check.py
@@ -63,10 +63,7 @@ def get_files(commit, path):
             for name in files:
                 filelist.append(os.path.join(root, name))
 
-    return [
-        file
-        for file in filelist
-    ]
+    return [file for file in filelist if "ep/build-velox" not in file]
 
 
 def help(args):
diff --git a/.github/workflows/velox_backend_arm.yml 
b/.github/workflows/velox_backend_arm.yml
index 13a4515d08..178d430c11 100644
--- a/.github/workflows/velox_backend_arm.yml
+++ b/.github/workflows/velox_backend_arm.yml
@@ -66,6 +66,7 @@ jobs:
       - name: Build Gluten native libraries
         run: |
           df -a
+          pip install cmake==3.31.4
           bash dev/ci-velox-buildstatic-centos-9.sh
           ccache -s
       - name: "Save ccache"
diff --git a/.github/workflows/velox_backend_x86.yml 
b/.github/workflows/velox_backend_x86.yml
index 3b97c86b3a..ad3cf96ecf 100644
--- a/.github/workflows/velox_backend_x86.yml
+++ b/.github/workflows/velox_backend_x86.yml
@@ -1178,7 +1178,7 @@ jobs:
           mkdir -p /work/.ccache
 
           cd /work
-          bash dev/builddeps-veloxbe.sh --run_setup_script=OFF 
--build_arrow=OFF --build_tests=ON --build_benchmarks=ON --enable_gpu=ON
+          bash dev/builddeps-veloxbe.sh --run_setup_script=ON 
--build_arrow=OFF --build_tests=ON --build_benchmarks=ON --enable_gpu=ON
           rm -rf ep/build-velox/build/velox_ep
           build/mvn clean package -Pbackends-velox -Pspark-3.4 -DskipTests
           ccache -s
diff --git 
a/backends-velox/src/main/scala/org/apache/gluten/config/VeloxConfig.scala 
b/backends-velox/src/main/scala/org/apache/gluten/config/VeloxConfig.scala
index 13ec2dfebe..3a1ce682b8 100644
--- a/backends-velox/src/main/scala/org/apache/gluten/config/VeloxConfig.scala
+++ b/backends-velox/src/main/scala/org/apache/gluten/config/VeloxConfig.scala
@@ -305,7 +305,7 @@ object VeloxConfig extends ConfigRegistry {
       .createWithDefault(10000)
 
   val MAX_TARGET_FILE_SIZE_SESSION =
-    buildConf("spark.gluten.sql.columnar.backend.velox.maxTargetFileSize")
+    
buildConf("spark.gluten.sql.columnar.backend.velox.parquetMaxTargetFileSize")
       .doc(
         "The target file size for each output file when writing data. " +
           "0 means no limit on target file size, and the actual file size will 
be determined by " +
diff --git a/cpp/velox/CMakeLists.txt b/cpp/velox/CMakeLists.txt
index 2c98d9c78c..b267aa6e95 100644
--- a/cpp/velox/CMakeLists.txt
+++ b/cpp/velox/CMakeLists.txt
@@ -376,6 +376,64 @@ else()
 endif()
 target_link_libraries(velox PUBLIC external::geos)
 
+find_package(veloxthrift CONFIG)
+if(veloxthrift_FOUND AND TARGET veloxthrift::veloxthrift)
+  add_library(external::veloxthrift ALIAS veloxthrift::veloxthrift)
+else()
+  message(STATUS "import Velox bundled veloxthrift")
+  import_library(
+    external::veloxthrift
+    
${VELOX_BUILD_PATH}/velox/dwio/parquet/thrift/libvelox_dwio_parquet_thrift_raw.a
+  )
+endif()
+target_link_libraries(velox PUBLIC external::veloxthrift)
+
+# Link thrift libraries - check vcpkg first, then fall back to system libraries
+# Determine vcpkg triplet directory based on architecture
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
+  set(VCPKG_TRIPLET_DIR "x64-linux-avx")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64)|(arm64)")
+  set(VCPKG_TRIPLET_DIR "arm64-linux-neon")
+else()
+  message(
+    WARNING
+      "Unknown processor type for vcpkg: ${CMAKE_SYSTEM_PROCESSOR}, defaulting 
to x64-linux-avx"
+  )
+  set(VCPKG_TRIPLET_DIR "x64-linux-avx")
+endif()
+
+if(DEFINED VCPKG_INSTALLED_DIR
+   AND EXISTS 
"${VCPKG_INSTALLED_DIR}/${VCPKG_TRIPLET_DIR}/lib/libthriftcpp2.a")
+  message(
+    STATUS
+      "Using vcpkg thrift libraries from 
${VCPKG_INSTALLED_DIR}/${VCPKG_TRIPLET_DIR}"
+  )
+  target_link_libraries(
+    velox
+    PRIVATE ${VCPKG_INSTALLED_DIR}/${VCPKG_TRIPLET_DIR}/lib/libthriftcpp2.a
+            
${VCPKG_INSTALLED_DIR}/${VCPKG_TRIPLET_DIR}/lib/libthriftprotocol.a)
+else()
+  message(STATUS "Using system thrift libraries from /usr/local/lib")
+  find_library(
+    THRIFTCPP2_LIB
+    NAMES thriftcpp2
+    PATHS /usr/local/lib
+    NO_DEFAULT_PATH)
+  find_library(
+    THRIFTPROTOCOL_LIB
+    NAMES thriftprotocol
+    PATHS /usr/local/lib
+    NO_DEFAULT_PATH)
+
+  if(THRIFTCPP2_LIB AND THRIFTPROTOCOL_LIB)
+    target_link_libraries(velox PRIVATE ${THRIFTCPP2_LIB} 
${THRIFTPROTOCOL_LIB})
+  else()
+    message(
+      FATAL_ERROR
+        "Could not find thrift libraries. Please install them or use vcpkg.")
+  endif()
+endif()
+
 find_package(simdjson CONFIG)
 if(simdjson_FOUND AND TARGET simdjson::simdjson)
   target_link_libraries(velox PUBLIC simdjson::simdjson)
diff --git a/cpp/velox/config/VeloxConfig.h b/cpp/velox/config/VeloxConfig.h
index 5d8c3bd4d9..b88cd505ad 100644
--- a/cpp/velox/config/VeloxConfig.h
+++ b/cpp/velox/config/VeloxConfig.h
@@ -174,7 +174,7 @@ const std::string kAllowInt32Narrowing = 
"spark.gluten.sql.columnar.backend.velo
 
 // write files
 const std::string kMaxPartitions = 
"spark.gluten.sql.columnar.backend.velox.maxPartitionsPerWritersSession";
-const std::string kMaxTargetFileSize = 
"spark.gluten.sql.columnar.backend.velox.maxTargetFileSize";
+const std::string kParquetMaxTargetFileSize = 
"spark.gluten.sql.columnar.backend.velox.parquetMaxTargetFileSize";
 
 const std::string kGlogVerboseLevel = 
"spark.gluten.sql.columnar.backend.velox.glogVerboseLevel";
 const uint32_t kGlogVerboseLevelDefault = 0;
diff --git a/cpp/velox/utils/ConfigExtractor.cc 
b/cpp/velox/utils/ConfigExtractor.cc
index a236d3ea7c..bc226541a8 100644
--- a/cpp/velox/utils/ConfigExtractor.cc
+++ b/cpp/velox/utils/ConfigExtractor.cc
@@ -233,8 +233,8 @@ std::shared_ptr<facebook::velox::config::ConfigBase> 
createHiveConnectorSessionC
   
configs[facebook::velox::connector::hive::HiveConfig::kReadTimestampUnitSession]
 = std::string("6");
   
configs[facebook::velox::connector::hive::HiveConfig::kMaxPartitionsPerWritersSession]
 =
       conf->get<std::string>(kMaxPartitions, "10000");
-  configs[facebook::velox::connector::hive::HiveConfig::kMaxTargetFileSize] =
-      conf->get<std::string>(kMaxTargetFileSize, "0B"); // 0 means no limit on 
target file size
+  
configs[facebook::velox::connector::hive::HiveConfig::kParquetMaxTargetFileSize]
 =
+      conf->get<std::string>(kParquetMaxTargetFileSize, "0B"); // 0 means no 
limit on target file size
   
configs[facebook::velox::connector::hive::HiveConfig::kIgnoreMissingFilesSession]
 =
       conf->get<bool>(kIgnoreMissingFiles, false) ? "true" : "false";
   
configs[facebook::velox::connector::hive::HiveConfig::kParquetUseColumnNamesSession]
 =
diff --git a/dev/build-arrow.sh b/dev/build-arrow.sh
index 007047a8ad..8c9a4686e6 100755
--- a/dev/build-arrow.sh
+++ b/dev/build-arrow.sh
@@ -53,11 +53,11 @@ function build_arrow_cpp() {
        -DARROW_PROTOBUF_USE_SHARED=OFF \
        -DARROW_DEPENDENCY_USE_SHARED=OFF \
        -DARROW_DEPENDENCY_SOURCE=BUNDLED \
-       -DARROW_WITH_THRIFT=ON \
        -DARROW_WITH_LZ4=ON \
        -DARROW_WITH_SNAPPY=ON \
        -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
        -DARROW_WITH_ZSTD=ON \
+       -DBoost_NO_BOOST_CMAKE=TRUE \
        -DARROW_JEMALLOC=OFF \
        -DARROW_SIMD_LEVEL=NONE \
        -DARROW_RUNTIME_SIMD_LEVEL=NONE \
@@ -68,10 +68,6 @@ function build_arrow_cpp() {
        -DARROW_BUILD_SHARED=OFF \
        -DARROW_BUILD_STATIC=ON
 
- # Install thrift.
- cd _build/thrift_ep-prefix/src/thrift_ep-build
- ${SUDO} cmake --install ./ --prefix "${INSTALL_PREFIX}"/
- popd
 }
 
 function build_arrow_java() {
diff --git a/dev/check.py b/dev/check.py
index b81b1a6844..89b7a9155d 100755
--- a/dev/check.py
+++ b/dev/check.py
@@ -218,6 +218,8 @@ def get_files(commit, path):
         if "_build" not in file
         and "cmake-build-debug" not in file
         and "cpp-ch" not in file
+        and "dev" not in file
+        and "ep/build-velox" not in file
     ]
 
 
diff --git a/dev/ci-velox-buildshared-centos-9.sh 
b/dev/ci-velox-buildshared-centos-9.sh
index d4008d125c..846765df7e 100755
--- a/dev/ci-velox-buildshared-centos-9.sh
+++ b/dev/ci-velox-buildshared-centos-9.sh
@@ -24,5 +24,8 @@ if [ "$(uname -m)" = "aarch64" ]; then
     export VCPKG_FORCE_SYSTEM_BINARIES=1;
 fi
 
-./dev/builddeps-veloxbe.sh --run_setup_script=OFF --build_arrow=OFF 
--build_tests=ON \
+
+export VELOX_BUILD_SHARED=ON 
+
+./dev/builddeps-veloxbe.sh --run_setup_script=ON --build_arrow=ON 
--build_tests=ON \
     --build_examples=ON --build_benchmarks=ON
diff --git a/dev/ci-velox-buildstatic-centos-7-enhanced-features.sh 
b/dev/ci-velox-buildstatic-centos-7-enhanced-features.sh
index ce385f0cd2..63cb8ccb4a 100755
--- a/dev/ci-velox-buildstatic-centos-7-enhanced-features.sh
+++ b/dev/ci-velox-buildstatic-centos-7-enhanced-features.sh
@@ -18,5 +18,6 @@
 set -e
 
 export NUM_THREADS=2
+cp ep/build-velox/src/socket.h /usr/include/asm-generic/socket.h 
 ./dev/builddeps-veloxbe.sh --enable_vcpkg=ON --build_arrow=OFF 
--build_tests=ON --build_benchmarks=ON \
                            --build_examples=OFF --enable_s3=ON --enable_gcs=ON 
--enable_hdfs=ON --enable_abfs=ON --enable_enhanced_features=ON
diff --git a/dev/ci-velox-buildstatic-centos-7.sh 
b/dev/ci-velox-buildstatic-centos-7.sh
index 2c71a70222..1990d4c7d3 100755
--- a/dev/ci-velox-buildstatic-centos-7.sh
+++ b/dev/ci-velox-buildstatic-centos-7.sh
@@ -18,5 +18,6 @@
 set -e
 
 export NUM_THREADS=4
+cp ep/build-velox/src/socket.h /usr/include/asm-generic/socket.h 
 ./dev/builddeps-veloxbe.sh --enable_vcpkg=ON --build_arrow=OFF 
--build_tests=OFF --build_benchmarks=OFF \
                            --build_examples=OFF --enable_s3=ON --enable_gcs=ON 
--enable_hdfs=ON --enable_abfs=ON
diff --git a/dev/vcpkg/README.md b/dev/vcpkg/README.md
index 19615e7d63..549d70295e 100644
--- a/dev/vcpkg/README.md
+++ b/dev/vcpkg/README.md
@@ -2,14 +2,14 @@
 
 ## Overview
 
-Currently, the `builtin-baseline` set in `vcpkg.json` is the commit hash for 
the `2025.09.17` tag of vcpkg.
+Currently, the `builtin-baseline` set in `vcpkg.json` is the commit hash for 
the `2026.03.18` tag of vcpkg.
 The versions of all dependency libraries are determined by their respective 
ports at this vcpkg version,
 except for those overridden in `vcpkg.json`, `vcpkg-configuration.json`, and 
overlay ports.
 
 ## Build in docker
 
 For main branch code, you can follow the commands below.
-- Pull the docker image: `docker pull apache/gluten:vcpkg-centos-7`
+- Pull the docker image: `docker pull apache/gluten:vcpkg-centos-7-gcc13`
 - Build native code: `bash dev/ci-velox-buildstatic-centos-7.sh`
 - Build JVM code: `mvn clean install -Pbackends-velox -Pspark-3.5 -DskipTests`
 
@@ -25,15 +25,7 @@ Please install build depends on your system to compile all 
libraries:
 sudo $GLUTEN_REPO/dev/vcpkg/setup-build-depends.sh
 ```
 
-GCC 11 is the minimum required compiler. It needs to be enabled beforehand. 
Take Centos 7/8 as example:
-
-``` sh
-# CentOS 8
-source /opt/rh/gcc-toolset-11/enable
-
-# CentOS 7
-source /opt/rh/devtoolset-11/enable
-```
+GCC 12 is the minimum required compiler. It needs to be enabled beforehand.
 
 For unsupported linux distro, you can install the following packages from 
package manager.
 
@@ -42,7 +34,7 @@ For unsupported linux distro, you can install the following 
packages from packag
 * wget
 * curl
 * git >= 2.7.4
-* gcc >= 11
+* gcc >= 12
 * pkg-config
 * autotools
 * flex >= 2.6.0
diff --git a/dev/vcpkg/init.sh b/dev/vcpkg/init.sh
index 6683ba9151..410373f229 100755
--- a/dev/vcpkg/init.sh
+++ b/dev/vcpkg/init.sh
@@ -70,7 +70,7 @@ cd "$SCRIPT_ROOT"
 if [ ! -d "$VCPKG_ROOT" ] || [ -z "$(ls "$VCPKG_ROOT")" ]; then
     # The builtin-baseline (commit hash) specified in vcpkg.json should exist 
in this branch.
     # Therefore, upgrading the builtin-baseline may require updating the 
branch.
-    git clone https://github.com/microsoft/vcpkg.git --branch 2025.09.17 
"$VCPKG_ROOT"
+    git clone https://github.com/microsoft/vcpkg.git --branch 2026.03.18 
"$VCPKG_ROOT"
 fi
 [ -f "$VCPKG" ] || "$VCPKG_ROOT/bootstrap-vcpkg.sh" -disableMetrics
 
@@ -92,7 +92,7 @@ if [ "${VCPKG_DYNAMIC_OPENSSL:-OFF}" = "ON" ]; then
 fi
 
 
-$VCPKG install --no-print-usage \
+$VCPKG install --no-print-usage --allow-unsupported \
     --triplet="${VCPKG_TRIPLET}" --host-triplet="${VCPKG_TRIPLET}" 
${EXTRA_FEATURES}
 
 # For fixing a build error like below when gluten's build type is Debug:
diff --git a/dev/vcpkg/ports/fbthrift/compactv1-protocol-refiller.patch 
b/dev/vcpkg/ports/fbthrift/compactv1-protocol-refiller.patch
new file mode 100644
index 0000000000..315590b44d
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/compactv1-protocol-refiller.patch
@@ -0,0 +1,23 @@
+--- a/thrift/lib/cpp2/protocol/ProtocolReaderWithRefill.h
++++ b/thrift/lib/cpp2/protocol/ProtocolReaderWithRefill.h
+@@ -172,6 +172,20 @@
+     protocol_.skipBytes(bytes);
+   }
+
++ protected:
++  /**
++   * Allow derived refill readers to use this helper where they cannot access
++   * CompactProtocolReader::in_ directly (due to not having a friend
++   * declaration).
++   * Allows users to implement refill readers for CompactV1ProtocolReader if
++   * necessary, without supporting it in the Thrift codebase or having to 
patch
++   * in a friend declaration.
++   */
++  template <typename T>
++  T readLEFromBuffer() {
++    return protocol_.in_.template readLE<T>();
++  }
++
+  private:
+   /**
+    * Make sure a varint can be read from the current buffer after idx bytes.
diff --git a/dev/vcpkg/ports/fbthrift/fix-deps.patch 
b/dev/vcpkg/ports/fbthrift/fix-deps.patch
new file mode 100644
index 0000000000..0e423cdf07
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/fix-deps.patch
@@ -0,0 +1,47 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2f214f5..b45f528 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -118,12 +118,15 @@ endif ()
+ 
+ # Find required dependencies for thrift/lib
+ if (THRIFT_LIB_ONLY OR build_all)
+-  find_package(Gflags REQUIRED)
+-  find_package(Glog REQUIRED)
++  find_package(gflags CONFIG REQUIRED)
++  set(LIBGFLAGS_LIBRARY gflags::gflags)
++  find_package(glog CONFIG REQUIRED)
++  set(GLOG_LIBRARIES glog::glog)
+   find_package(fizz CONFIG REQUIRED)
+   find_package(wangle CONFIG REQUIRED)
+   find_package(ZLIB REQUIRED)
+-  find_package(Zstd REQUIRED)
++  find_package(zstd CONFIG REQUIRED)
++  set(ZSTD_LIBRARIES zstd::libzstd)
+   find_package(Xxhash REQUIRED)
+   find_package(mvfst CONFIG REQUIRED)
+   # https://cmake.org/cmake/help/v3.9/module/FindThreads.html
+diff --git a/thrift/cmake/FBThriftConfig.cmake.in 
b/thrift/cmake/FBThriftConfig.cmake.in
+index e279485..4dd8bd1 100644
+--- a/thrift/cmake/FBThriftConfig.cmake.in
++++ b/thrift/cmake/FBThriftConfig.cmake.in
+@@ -29,9 +29,16 @@ else()
+   set_and_check(FBTHRIFT_COMPILER "@PACKAGE_BIN_INSTALL_DIR@/thrift1")
+ endif()
+ 
+-find_dependency(Xxhash REQUIRED)
+-find_dependency(ZLIB REQUIRED)
+-find_package(mvfst CONFIG REQUIRED)
++find_dependency(xxHash CONFIG)
++find_dependency(ZLIB)
++find_dependency(mvfst CONFIG)
++find_dependency(fizz CONFIG)
++find_dependency(fmt CONFIG)
++find_dependency(folly CONFIG)
++find_dependency(gflags CONFIG)
++find_dependency(glog CONFIG)
++find_dependency(wangle CONFIG)
++find_dependency(zstd CONFIG)
+ 
+ if (NOT TARGET FBThrift::thriftcpp2)
+   include("${FBTHRIFT_CMAKE_DIR}/FBThriftTargets.cmake")
diff --git a/dev/vcpkg/ports/fbthrift/fix-fmt-include.patch 
b/dev/vcpkg/ports/fbthrift/fix-fmt-include.patch
new file mode 100644
index 0000000000..ca216df456
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/fix-fmt-include.patch
@@ -0,0 +1,13 @@
+diff --git a/thrift/lib/cpp2/server/RoundRobinRequestPile.h 
b/thrift/lib/cpp2/server/RoundRobinRequestPile.h
+index 3a06c5b..bae9387 100644
+--- a/thrift/lib/cpp2/server/RoundRobinRequestPile.h
++++ b/thrift/lib/cpp2/server/RoundRobinRequestPile.h
+@@ -21,6 +21,8 @@
+ #include <limits>
+ #include <memory>
+ 
++#include <fmt/ranges.h>
++
+ #include <folly/Executor.h>
+ #include <folly/concurrency/UnboundedQueue.h>
+ #include <folly/io/async/AtomicNotificationQueue.h>
diff --git a/dev/vcpkg/ports/fbthrift/fix-test.patch 
b/dev/vcpkg/ports/fbthrift/fix-test.patch
new file mode 100644
index 0000000000..918ea51b82
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/fix-test.patch
@@ -0,0 +1,16 @@
+diff --git a/thrift/lib/cpp2/CMakeLists.txt b/thrift/lib/cpp2/CMakeLists.txt
+index 439f0814..3374dd34 100644
+--- a/thrift/lib/cpp2/CMakeLists.txt
++++ b/thrift/lib/cpp2/CMakeLists.txt
+@@ -15,11 +15,6 @@
+ # Set the cpp2 directory
+ set(LIB_CPP2_HOME ${CMAKE_CURRENT_SOURCE_DIR})
+ 
+-if (enable_tests)
+-  add_subdirectory(protocol/test)
+-endif ()
+-add_subdirectory(test)
+-
+ #######
+ # CMAKE variables only have local/subdirectory scope
+ # So even though this is defined in ../thrift/CMakeLists.txt as a variable
diff --git a/dev/vcpkg/ports/fbthrift/folly-has-liburing.diff 
b/dev/vcpkg/ports/fbthrift/folly-has-liburing.diff
new file mode 100644
index 0000000000..47dc5b6ce4
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/folly-has-liburing.diff
@@ -0,0 +1,13 @@
+diff --git a/thrift/lib/cpp2/security/SSLUtil.cpp 
b/thrift/lib/cpp2/security/SSLUtil.cpp
+index 571ffef..8803f37 100644
+--- a/thrift/lib/cpp2/security/SSLUtil.cpp
++++ b/thrift/lib/cpp2/security/SSLUtil.cpp
+@@ -144,7 +144,7 @@ folly::AsyncSocketTransport::UniquePtr toFDSocket(
+ 
+   auto sock = fizzSock->template getUnderlyingTransport<folly::AsyncSocket>();
+   folly::AsyncSocketTransport::UniquePtr ret;
+-#if defined(__linux__) && __has_include(<liburing.h>)
++#if defined(__linux__) && FOLLY_HAS_LIBURING
+   if (!sock &&
+       fizzSock->template getUnderlyingTransport<folly::AsyncIoUringSocket>()) 
{
+     // `AsyncFdSocket` currently lacks uring support, so hardcode 
`AsyncSocket`
diff --git a/dev/vcpkg/ports/fbthrift/portfile.cmake 
b/dev/vcpkg/ports/fbthrift/portfile.cmake
new file mode 100644
index 0000000000..ea16a0152c
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/portfile.cmake
@@ -0,0 +1,102 @@
+vcpkg_from_github(
+    OUT_SOURCE_PATH SOURCE_PATH
+    REPO facebook/fbthrift
+    REF "v${VERSION}"
+    SHA512 
32f2a648496a321b6aaf55197c2dc1412d030ca82f8d8a5ca0516379379a0f71dc17e2edcb2be3972f76603935c7dcae29769c067caa1ec8a33e7f4efb251581
+    HEAD_REF main
+    PATCHES
+        fix-deps.patch
+        folly-has-liburing.diff
+        fix-fmt-include.patch
+        compactv1-protocol-refiller.patch # patch from velox
+)
+
+file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindGMock.cmake")
+file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindOpenSSL.cmake")
+file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindZstd.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGflags.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGlog.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGMock.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindLibEvent.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindSodium.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindZstd.cmake")
+
+vcpkg_cmake_configure(
+    SOURCE_PATH "${SOURCE_PATH}"
+    OPTIONS
+        "-Dthriftpy=OFF"
+        "-Denable_tests=OFF"
+)
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fbthrift)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+# There should be no empty directories in vcpkg/packages/fbthrift_x64-linux
+file(REMOVE_RECURSE
+    "${CURRENT_PACKAGES_DIR}/include/thrift/common/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/transport/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/util/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/async/metadata/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/debug_thrift_data_difference/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/detail/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/dynamic/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/folly_dynamic/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/frozen/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/patch/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/detail/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/tool"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/reflection/demo"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/reflection/docs"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/runtime/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/schema/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/security/extensions/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/security/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/server/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/core/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/common/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/server/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/inmemory/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/client/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/compression/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/core/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/framing/parser/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/payload/test"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/server/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/util/gtest/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/util/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/visitation/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/py3/benchmark"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/py3/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/any/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/benchmark"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/capi/benchmark"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/conformance"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/conformance/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/server/interceptor/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/server/test"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/adapters"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/cpp_conversion"
+    
"${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/request_context_extractor"
+    "${CURRENT_PACKAGES_DIR}/include/thrift/lib/thrift/annotation"
+)
+vcpkg_copy_tools(TOOL_NAMES thrift1 AUTO_CLEAN)
+vcpkg_copy_pdbs()
+
+if(EXISTS "${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake")
+    
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake"
 
+        "${PACKAGE_PREFIX_DIR}/lib/cmake/fbthrift" 
"${PACKAGE_PREFIX_DIR}/share/fbthrift")
+    
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake"
 
+        "${PACKAGE_PREFIX_DIR}/bin/thrift1.exe" 
"${PACKAGE_PREFIX_DIR}/tools/fbthrift/thrift1.exe")
+    
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake"
 
+        "${PACKAGE_PREFIX_DIR}/bin/thrift1" 
"${PACKAGE_PREFIX_DIR}/tools/fbthrift/thrift1")
+endif()
+
+# Only used internally and removed in master
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftTargets.cmake"
 
"LOCATION_HH=\\\"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/thrift/compiler/location.hh\\\""
 "" IGNORE_UNCHANGED)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/dev/vcpkg/ports/fbthrift/vcpkg.json 
b/dev/vcpkg/ports/fbthrift/vcpkg.json
new file mode 100644
index 0000000000..b9d08323f2
--- /dev/null
+++ b/dev/vcpkg/ports/fbthrift/vcpkg.json
@@ -0,0 +1,35 @@
+{
+  "name": "fbthrift",
+  "version-string": "2026.02.23.00",
+  "description": "Facebook's branch of Apache Thrift, including a new C++ 
server.",
+  "homepage": "https://github.com/facebook/fbthrift";,
+  "license": "Apache-2.0",
+  "supports": "x64 & static",
+  "dependencies": [
+    "boost-context",
+    "boost-filesystem",
+    "boost-program-options",
+    "boost-regex",
+    "boost-system",
+    "boost-thread",
+    "fizz",
+    "fmt",
+    "folly",
+    "gflags",
+    "glog",
+    "mvfst",
+    "openssl",
+    {
+      "name": "vcpkg-cmake",
+      "host": true
+    },
+    {
+      "name": "vcpkg-cmake-config",
+      "host": true
+    },
+    "wangle",
+    "xxhash",
+    "zlib",
+    "zstd"
+  ]
+}
diff --git a/dev/vcpkg/ports/folly/adding-api.patch 
b/dev/vcpkg/ports/folly/adding-api.patch
deleted file mode 100644
index 67973b93a0..0000000000
--- a/dev/vcpkg/ports/folly/adding-api.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/folly/system/HardwareConcurrency.cpp 
b/folly/system/HardwareConcurrency.cpp
-index 71213c80a..cd1852034 100644
---- a/folly/system/HardwareConcurrency.cpp
-+++ b/folly/system/HardwareConcurrency.cpp
-@@ -36,4 +36,18 @@ unsigned int hardware_concurrency() noexcept {
-   return std::thread::hardware_concurrency();
- }
-
-+unsigned int available_concurrency() noexcept {
-+#if defined(__linux__) && !defined(__ANDROID__)
-+  cpu_set_t cpuset;
-+  if (!sched_getaffinity(0, sizeof(cpuset), &cpuset)) {
-+    auto count = CPU_COUNT(&cpuset);
-+    if (count != 0) {
-+      return count;
-+    }
-+  }
-+#endif
-+
-+  return std::thread::hardware_concurrency();
-+}
-+
- } // namespace folly
-diff --git a/folly/system/HardwareConcurrency.h 
b/folly/system/HardwareConcurrency.h
-index 7c497634c..71dfb5db1 100644
---- a/folly/system/HardwareConcurrency.h
-+++ b/folly/system/HardwareConcurrency.h
-@@ -20,4 +20,6 @@ namespace folly {
-
- unsigned int hardware_concurrency() noexcept;
-
-+unsigned int available_concurrency() noexcept;
-+
- } // namespace folly
diff --git a/dev/vcpkg/ports/folly/fix-absolute-dir.patch 
b/dev/vcpkg/ports/folly/fix-absolute-dir.patch
deleted file mode 100644
index fac930a188..0000000000
--- a/dev/vcpkg/ports/folly/fix-absolute-dir.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bc99ce3..d887a7e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -481,9 +481,6 @@ add_library(folly_test_util
-   ${FOLLY_DIR}/test/DeterministicSchedule.cpp
-   ${FOLLY_DIR}/json/JsonTestUtil.cpp
- )
--target_compile_definitions(folly_test_util PUBLIC
--  FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs"
--)
- set_property(TARGET folly_test_util PROPERTY VERSION ${PACKAGE_VERSION})
- target_link_libraries(folly_test_util
-   PUBLIC
diff --git a/dev/vcpkg/ports/folly/fix-deps.patch 
b/dev/vcpkg/ports/folly/fix-deps.patch
index 6aa5891798..500b3a71db 100644
--- a/dev/vcpkg/ports/folly/fix-deps.patch
+++ b/dev/vcpkg/ports/folly/fix-deps.patch
@@ -1,8 +1,8 @@
 diff --git a/CMake/folly-config.cmake.in b/CMake/folly-config.cmake.in
-index 0b96f0a..d5a200f 100644
+index 5fc83ac..7efb0fc 100644
 --- a/CMake/folly-config.cmake.in
 +++ b/CMake/folly-config.cmake.in
-@@ -29,10 +29,31 @@ endif()
+@@ -34,10 +34,31 @@ endif()
  set(FOLLY_LIBRARIES Folly::folly)
  
  # Find folly's dependencies
@@ -31,13 +31,13 @@ index 0b96f0a..d5a200f 100644
 +endif()
  
  set(Boost_USE_STATIC_LIBS "@FOLLY_BOOST_LINK_STATIC@")
--find_dependency(Boost 1.51.0 MODULE
-+find_dependency(Boost
+-find_package(Boost 1.69.0 REQUIRED
++find_dependency(Boost 1.69.0
    COMPONENTS
      context
      filesystem
 diff --git a/CMake/folly-config.h.cmake b/CMake/folly-config.h.cmake
-index 9a309fb..7e6e05f 100644
+index 1da1cc1..701ec99 100644
 --- a/CMake/folly-config.h.cmake
 +++ b/CMake/folly-config.h.cmake
 @@ -16,6 +16,9 @@
@@ -51,24 +51,11 @@ index 9a309fb..7e6e05f 100644
  #include <TargetConditionals.h> // @manual
  #endif
 diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
-index 6ce4c67..a347cf0 100644
+index 1c41750..6ab485c 100644
 --- a/CMake/folly-deps.cmake
 +++ b/CMake/folly-deps.cmake
-@@ -35,7 +35,7 @@ else()
- endif()
- set(Boost_USE_STATIC_LIBS "${FOLLY_BOOST_LINK_STATIC}")
- 
--find_package(Boost 1.51.0 MODULE
-+find_package(Boost
-   COMPONENTS
-     context
-     filesystem
-@@ -45,17 +45,21 @@ find_package(Boost 1.51.0 MODULE
-     thread
-   REQUIRED
- )
-+set(Boost_LIBRARIES Boost::boost Boost::context Boost::filesystem 
Boost::program_options Boost::regex Boost::system Boost::thread)
- list(APPEND FOLLY_LINK_LIBRARIES ${Boost_LIBRARIES})
+@@ -57,14 +57,17 @@ find_package(Boost 1.69.0 REQUIRED
+ # Per-target Boost dependencies are specified via EXTERNAL_DEPS
  list(APPEND FOLLY_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS})
  
 -find_package(DoubleConversion MODULE REQUIRED)
@@ -89,7 +76,7 @@ index 6ce4c67..a347cf0 100644
  set(FOLLY_HAVE_LIBGFLAGS ${LIBGFLAGS_FOUND})
  if(LIBGFLAGS_FOUND)
    list(APPEND FOLLY_LINK_LIBRARIES ${LIBGFLAGS_LIBRARY})
-@@ -64,16 +68,22 @@ if(LIBGFLAGS_FOUND)
+@@ -73,7 +76,8 @@ if(LIBGFLAGS_FOUND)
    set(FOLLY_LIBGFLAGS_INCLUDE ${LIBGFLAGS_INCLUDE_DIR})
  endif()
  
@@ -97,8 +84,11 @@ index 6ce4c67..a347cf0 100644
 +find_package(GLOG NAMES glog REQUIRED)
 +set(GLOG_LIBRARY glog::glog)
  set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND})
- list(APPEND FOLLY_LINK_LIBRARIES ${GLOG_LIBRARY})
+ list(APPEND FOLLY_LINK_LIBRARIES glog::glog)
  list(APPEND FOLLY_INCLUDE_DIRECTORIES ${GLOG_INCLUDE_DIR})
+@@ -83,11 +87,16 @@ if (EXISTS "${GLOG_INCLUDE_DIR}/glog/export.h")
+   list(APPEND FOLLY_CXX_FLAGS -DGLOG_USE_GLOG_EXPORT)
+ endif()
  
 -find_package(LibEvent MODULE REQUIRED)
 +find_package(LIBEVENT NAMES Libevent REQUIRED)
@@ -114,7 +104,7 @@ index 6ce4c67..a347cf0 100644
  set(FOLLY_HAVE_LIBZ ${ZLIB_FOUND})
  if (ZLIB_FOUND)
    list(APPEND FOLLY_INCLUDE_DIRECTORIES ${ZLIB_INCLUDE_DIRS})
-@@ -106,21 +116,24 @@ if (LIBLZMA_FOUND)
+@@ -120,21 +129,24 @@ if (LIBLZMA_FOUND)
    list(APPEND FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES})
  endif()
  
@@ -142,7 +132,7 @@ index 6ce4c67..a347cf0 100644
  set(FOLLY_HAVE_LIBSNAPPY ${SNAPPY_FOUND})
  if (SNAPPY_FOUND)
    list(APPEND FOLLY_INCLUDE_DIRECTORIES ${SNAPPY_INCLUDE_DIR})
-@@ -136,14 +149,19 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBIBERTY_LIBRARIES})
+@@ -150,14 +162,19 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBIBERTY_LIBRARIES})
  list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBIBERTY_INCLUDE_DIRS})
  
  find_package(LibAIO)
@@ -163,7 +153,7 @@ index 6ce4c67..a347cf0 100644
  list(APPEND FOLLY_LINK_LIBRARIES ${LIBSODIUM_LIBRARIES})
  list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBSODIUM_INCLUDE_DIRS})
  
-@@ -160,6 +178,8 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBUNWIND_LIBRARIES})
+@@ -174,6 +191,8 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBUNWIND_LIBRARIES})
  list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBUNWIND_INCLUDE_DIRS})
  if (LIBUNWIND_FOUND)
    set(FOLLY_HAVE_LIBUNWIND ON)
@@ -172,8 +162,32 @@ index 6ce4c67..a347cf0 100644
  endif()
  if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
    list(APPEND FOLLY_LINK_LIBRARIES "execinfo")
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 49dd964..b84f338 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -273,7 +273,8 @@ folly_resolve_deferred_dependencies()
+ # This points to the SSL test certificates used by TestSSLServer and related 
tests
+ if(TARGET folly_testing_test_util)
+   target_compile_definitions(folly_testing_test_util INTERFACE
+-    FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs"
++    $<BUILD_INTERFACE:FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs">
++    $<INSTALL_INTERFACE:FOLLY_CERTS_DIR="share/folly/">
+   )
+ endif()
+ 
+@@ -285,7 +286,8 @@ add_library(folly_test_util
+   ${FOLLY_DIR}/json/JsonTestUtil.cpp
+ )
+ target_compile_definitions(folly_test_util PUBLIC
+-  FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs"
++  $<BUILD_INTERFACE:FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs">
++  $<INSTALL_INTERFACE:FOLLY_CERTS_DIR="share/folly">
+ )
+ set_property(TARGET folly_test_util PROPERTY VERSION ${PACKAGE_VERSION})
+ target_link_libraries(folly_test_util
 diff --git a/folly/io/async/AsyncIO.cpp b/folly/io/async/AsyncIO.cpp
-index 93cda44..ac090bb 100644
+index 2760e0f..a51c16c 100644
 --- a/folly/io/async/AsyncIO.cpp
 +++ b/folly/io/async/AsyncIO.cpp
 @@ -35,7 +35,7 @@
@@ -186,12 +200,12 @@ index 93cda44..ac090bb 100644
  // debugging helpers
  namespace {
 diff --git a/folly/io/async/AsyncIO.h b/folly/io/async/AsyncIO.h
-index b1a6f52..ba84609 100644
+index 36c6df2..02ff518 100644
 --- a/folly/io/async/AsyncIO.h
 +++ b/folly/io/async/AsyncIO.h
 @@ -18,7 +18,7 @@
  
- #include <folly/experimental/io/AsyncBase.h>
+ #include <folly/io/async/AsyncBase.h>
  
 -#if __has_include(<libaio.h>)
 +#if FOLLY_HAS_LIBAIO
@@ -211,7 +225,7 @@ index 8e81aaa..c7f4a67 100644
 -#define FOLLY_HAS_LIBURING 0
  #endif
 diff --git a/folly/io/async/SimpleAsyncIO.cpp 
b/folly/io/async/SimpleAsyncIO.cpp
-index 807a2be..551a003 100644
+index cceb964..9f97e36 100644
 --- a/folly/io/async/SimpleAsyncIO.cpp
 +++ b/folly/io/async/SimpleAsyncIO.cpp
 @@ -25,7 +25,7 @@
diff --git a/dev/vcpkg/ports/folly/fix-perf_scoped-target.patch 
b/dev/vcpkg/ports/folly/fix-perf_scoped-target.patch
new file mode 100644
index 0000000000..7bd8873cf1
--- /dev/null
+++ b/dev/vcpkg/ports/folly/fix-perf_scoped-target.patch
@@ -0,0 +1,14 @@
+diff --git a/folly/detail/CMakeLists.txt b/folly/detail/CMakeLists.txt
+index 521983f..7bbfb6d 100644
+--- a/folly/detail/CMakeLists.txt
++++ b/folly/detail/CMakeLists.txt
+@@ -182,6 +182,9 @@ folly_add_library(
+   EXTERNAL_DEPS
+     Boost::regex
+ )
++if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
++  target_link_libraries(folly_detail_perf_scoped PUBLIC folly_subprocess)
++endif()
+ 
+ folly_add_library(
+   NAME poly_detail
diff --git a/dev/vcpkg/ports/folly/portfile.cmake 
b/dev/vcpkg/ports/folly/portfile.cmake
index bc1c4e9693..9db348d516 100644
--- a/dev/vcpkg/ports/folly/portfile.cmake
+++ b/dev/vcpkg/ports/folly/portfile.cmake
@@ -6,14 +6,13 @@ vcpkg_from_github(
     OUT_SOURCE_PATH SOURCE_PATH
     REPO facebook/folly
     REF "v${VERSION}"
-    SHA512 
6d377c48cf1c0796da6fad34b930e9608f3cd765a675414eaad45ff46e9d0b9bb5f027b187ec135e88bb60a83cb91c07d266a6673621caf3f9961942b55276e2
+    SHA512 
8ee08591724fb1f6183cc0456c13cd00474e425d41824add2751fd3823e23b95ea69ec1b246bc85c95d30add854ee53dafd2bc1b824d0b555917dcbaf6943a6f
     HEAD_REF main
     PATCHES
         fix-deps.patch
         disable-uninitialized-resize-on-new-stl.patch
         fix-unistd-include.patch
-        fix-absolute-dir.patch
-        adding-api.patch
+        fix-perf_scoped-target.patch
 )
 file(REMOVE "${SOURCE_PATH}/CMake/FindFastFloat.cmake")
 file(REMOVE "${SOURCE_PATH}/CMake/FindFmt.cmake")
@@ -56,9 +55,6 @@ vcpkg_cmake_configure(
         -DVCPKG_LOCK_FIND_PACKAGE_Libiberty=OFF
         -DVCPKG_LOCK_FIND_PACKAGE_LibUnwind=${VCPKG_TARGET_IS_LINUX}
         -DVCPKG_LOCK_FIND_PACKAGE_ZLIB=ON
-        # Required by Velox.
-        -DFOLLY_HAVE_INT128_T=ON
-        -DFOLLY_MEMCPY_IS_MEMCPY=ON -DFOLLY_MEMSET_IS_MEMSET=ON
         ${FEATURE_OPTIONS}
     MAYBE_UNUSED_VARIABLES
         MSVC_USE_STATIC_RUNTIME
diff --git a/dev/vcpkg/ports/folly/vcpkg.json b/dev/vcpkg/ports/folly/vcpkg.json
index 99bb39dc1d..0ac3d2e4ad 100644
--- a/dev/vcpkg/ports/folly/vcpkg.json
+++ b/dev/vcpkg/ports/folly/vcpkg.json
@@ -1,6 +1,6 @@
 {
   "name": "folly",
-  "version-string": "2025.05.19.00",
+  "version-string": "2026.02.23.00",
   "description": "An open-source C++ library developed and used at Facebook. 
The library is UNSTABLE on Windows",
   "homepage": "https://github.com/facebook/folly";,
   "license": "Apache-2.0",
diff --git a/dev/vcpkg/ports/mvfst/portfile.cmake 
b/dev/vcpkg/ports/mvfst/portfile.cmake
new file mode 100644
index 0000000000..ac4a90d544
--- /dev/null
+++ b/dev/vcpkg/ports/mvfst/portfile.cmake
@@ -0,0 +1,21 @@
+vcpkg_from_github(
+    OUT_SOURCE_PATH SOURCE_PATH
+    REPO facebook/mvfst
+    REF "v${VERSION}"
+    SHA512 
6669e5b3163f422b3b5b11f298ff16f4f6f196aef765fa4a3da7a4caa69b7675e4ab8a9f9eac0e2f07e5fa30e723af7ab2310d67ec5d1357723da15444333dea
+    HEAD_REF main
+    PATCHES
+       removexsk.patch # patch to workaround on centos7
+)
+
+vcpkg_cmake_configure(
+    SOURCE_PATH "${SOURCE_PATH}"
+    OPTIONS
+        -DBUILD_TESTS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mvfst)
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/dev/vcpkg/ports/mvfst/removexsk.patch 
b/dev/vcpkg/ports/mvfst/removexsk.patch
new file mode 100644
index 0000000000..8dc0bd1c6d
--- /dev/null
+++ b/dev/vcpkg/ports/mvfst/removexsk.patch
@@ -0,0 +1,13 @@
+diff --git a/quic/CMakeLists.txt b/quic/CMakeLists.txt
+index eeb657bf7..d7896bb39 100644
+--- a/quic/CMakeLists.txt
++++ b/quic/CMakeLists.txt
+@@ -80,7 +80,7 @@ add_subdirectory(priority)
+ add_subdirectory(happyeyeballs)
+ add_subdirectory(folly_utils)
+ add_subdirectory(datagram)
+-add_subdirectory(xsk)
++#add_subdirectory(xsk)
+ add_subdirectory(api)
+ add_subdirectory(client)
+ add_subdirectory(server)
diff --git a/dev/vcpkg/ports/mvfst/vcpkg.json b/dev/vcpkg/ports/mvfst/vcpkg.json
new file mode 100644
index 0000000000..c86b498ea9
--- /dev/null
+++ b/dev/vcpkg/ports/mvfst/vcpkg.json
@@ -0,0 +1,30 @@
+{
+  "name": "mvfst",
+  "version-string": "2026.02.23.00",
+  "description": "mvfst (Pronounced move fast) is a client and server 
implementation of IETF QUIC protocol in C++ by Facebook.",
+  "homepage": "https://github.com/facebook/mvfst";,
+  "license": "MIT",
+  "supports": "!windows | static",
+  "dependencies": [
+    "boost-context",
+    "boost-date-time",
+    "boost-filesystem",
+    "boost-iostreams",
+    "boost-program-options",
+    "boost-regex",
+    "boost-system",
+    "boost-thread",
+    "fizz",
+    "fmt",
+    "folly",
+    "glog",
+    {
+      "name": "vcpkg-cmake",
+      "host": true
+    },
+    {
+      "name": "vcpkg-cmake-config",
+      "host": true
+    }
+  ]
+}
diff --git a/dev/vcpkg/vcpkg-configuration.json 
b/dev/vcpkg/vcpkg-configuration.json
index a3558f7b66..ba7c7f58b3 100644
--- a/dev/vcpkg/vcpkg-configuration.json
+++ b/dev/vcpkg/vcpkg-configuration.json
@@ -9,6 +9,12 @@
       "baseline": "f82160a747b1b529daad7ce2f75a0d6c6a0d285d",
       "packages": [ "google-cloud-cpp"]
     },
+    {
+      "kind": "git",
+      "repository": "https://github.com/Microsoft/vcpkg";,
+      "baseline": "2d32fae67c755b665794a0650f5d268979d7807f",
+      "packages": [ "libsodium"]
+    },
     {
       "kind": "git",
       "repository": "https://github.com/Microsoft/vcpkg";,
diff --git a/dev/vcpkg/vcpkg.json b/dev/vcpkg/vcpkg.json
index ebe2329ab0..69b252a0e9 100644
--- a/dev/vcpkg/vcpkg.json
+++ b/dev/vcpkg/vcpkg.json
@@ -1,6 +1,6 @@
 {
   "$schema": 
"https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json";,
-  "builtin-baseline": "4334d8b4c8916018600212ab4dd4bbdc343065d1",
+  "builtin-baseline": "42a91624b277a024ead2654ef4618cd2932fe705",
   "default-features": ["velox"],
   "features": {
     "velox": {
@@ -24,6 +24,8 @@
           "name": "folly",
           "features": ["zstd", "lz4", "lzma", "snappy"]
         },
+             "fizz",
+        "fbthrift",
         "boost-atomic",
         "boost-context",
         "boost-circular-buffer",
@@ -48,7 +50,6 @@
         "protobuf",
         "benchmark",
         "icu",
-        "thrift",
         "libstemmer",
         "geos",
         "grpc"
@@ -114,7 +115,7 @@
     }
   },
   "overrides": [
-    { "name": "fmt", "version": "10.1.1" },
+    { "name": "fmt", "version": "11.2.0" },
     { "name": "liblzma", "version": "5.6.2" },
     { "name": "xsimd", "version": "10.0.0" },
     { "name": "protobuf", "version": "3.21.8"},
@@ -123,6 +124,8 @@
     { "name": "glog", "version": "0.6.0"},
     { "name": "gflags", "version": "2.2.2"},
     { "name": "azure-identity-cpp", "version": "1.11.0"},
+    { "name": "openssl", "version": "3.5.2"},
+    { "name": "fbthrift", "version": "2026.02.23.00"},
     { "name": "grpc", "version": "1.51.1"}
   ]
 }
diff --git a/docs/velox-configuration.md b/docs/velox-configuration.md
index 5b67ef4afe..7f8918d40d 100644
--- a/docs/velox-configuration.md
+++ b/docs/velox-configuration.md
@@ -48,7 +48,7 @@ nav_order: 16
 | spark.gluten.sql.columnar.backend.velox.maxSpillFileSize                     
    | πŸ”„ Dynamic    | 1GB               | The maximum size of a single spill 
file created                                                                    
                                                                                
                                                                                
                                                                                
                  [...]
 | spark.gluten.sql.columnar.backend.velox.maxSpillLevel                        
    | πŸ”„ Dynamic    | 4                 | The max allowed spilling level with 
zero being the initial spilling level                                           
                                                                                
                                                                                
                                                                                
                 [...]
 | spark.gluten.sql.columnar.backend.velox.maxSpillRunRows                      
    | πŸ”„ Dynamic    | 3M                | The maximum row size of a single spill 
run                                                                             
                                                                                
                                                                                
                                                                                
              [...]
-| spark.gluten.sql.columnar.backend.velox.maxTargetFileSize                    
    | πŸ”„ Dynamic    | 0b                | The target file size for each output 
file when writing data. 0 means no limit on target file size, and the actual 
file size will be determined by other factors such as max partition number and 
shuffle batch size.                                                             
                                                                                
                    [...]
+| spark.gluten.sql.columnar.backend.velox.parquetMaxTargetFileSize             
           | πŸ”„ Dynamic    | 0b                | The target file size for each 
output file when writing parquet data. 0 means no limit on target file size, 
and the actual file size will be determined by other factors such as max 
partition number and shuffle batch size.                                        
                                                                                
                          [...]
 | spark.gluten.sql.columnar.backend.velox.memCacheSize                         
    | βš“ Static      | 1GB               | The memory cache size                 
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
 | spark.gluten.sql.columnar.backend.velox.memInitCapacity                      
    | πŸ”„ Dynamic    | 8MB               | The initial memory capacity to reserve 
for a newly created Velox query memory pool.                                    
                                                                                
                                                                                
                                                                                
              [...]
 | 
spark.gluten.sql.columnar.backend.velox.memoryPoolCapacityTransferAcrossTasks   
 | πŸ”„ Dynamic    | true              | Whether to allow memory capacity transfer 
between memory pools from different tasks.                                      
                                                                                
                                                                                
                                                                                
           [...]
diff --git a/ep/build-velox/src/get-velox.sh b/ep/build-velox/src/get-velox.sh
index 71965f6c73..637860db37 100755
--- a/ep/build-velox/src/get-velox.sh
+++ b/ep/build-velox/src/get-velox.sh
@@ -18,8 +18,8 @@ set -exu
 
 CURRENT_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
 VELOX_REPO=https://github.com/IBM/velox.git
-VELOX_BRANCH=dft-2026_06_06
-VELOX_ENHANCED_BRANCH=ibm-2026_06_06
+VELOX_BRANCH=dft-2026_06_12
+VELOX_ENHANCED_BRANCH=ibm-2026_06_12
 VELOX_HOME=""
 RUN_SETUP_SCRIPT=ON
 ENABLE_ENHANCED_FEATURES=OFF
@@ -69,6 +69,7 @@ function process_setup_ubuntu {
 }
 
 function process_setup_centos9 {
+  sed -i "s|run_and_time install_arrow||g" scripts/setup-centos9.sh
   echo "Using setup script from Velox"
 }
 
diff --git a/ep/build-velox/src/socket.h b/ep/build-velox/src/socket.h
new file mode 100644
index 0000000000..af50c40490
--- /dev/null
+++ b/ep/build-velox/src/socket.h
@@ -0,0 +1,105 @@
+#ifndef __ASM_GENERIC_SOCKET_H
+#define __ASM_GENERIC_SOCKET_H
+
+#include <asm/sockios.h>
+
+/* For setsockopt(2) */
+#define SOL_SOCKET     1
+
+#define SO_DEBUG       1
+#define SO_REUSEADDR   2
+#define SO_TYPE                3
+#define SO_ERROR       4
+#define SO_DONTROUTE   5
+#define SO_BROADCAST   6
+#define SO_SNDBUF      7
+#define SO_RCVBUF      8
+#define SO_SNDBUFFORCE 32
+#define SO_RCVBUFFORCE 33
+#define SO_KEEPALIVE   9
+#define SO_OOBINLINE   10
+#define SO_NO_CHECK    11
+#define SO_PRIORITY    12
+#define SO_LINGER      13
+#define SO_BSDCOMPAT   14
+#define SO_REUSEPORT   15
+#ifndef SO_PASSCRED /* powerpc only differs in these */
+#define SO_PASSCRED    16
+#define SO_PEERCRED    17
+#define SO_RCVLOWAT    18
+#define SO_SNDLOWAT    19
+#define SO_RCVTIMEO    20
+#define SO_SNDTIMEO    21
+#endif
+
+/* Security levels - as per NRL IPv6 - don't actually do anything */
+#define SO_SECURITY_AUTHENTICATION             22
+#define SO_SECURITY_ENCRYPTION_TRANSPORT       23
+#define SO_SECURITY_ENCRYPTION_NETWORK         24
+
+#define SO_BINDTODEVICE        25
+
+/* Socket filtering */
+#define SO_ATTACH_FILTER       26
+#define SO_DETACH_FILTER       27
+#define SO_GET_FILTER          SO_ATTACH_FILTER
+
+#define SO_PEERNAME            28
+#define SO_TIMESTAMP           29
+#define SCM_TIMESTAMP          SO_TIMESTAMP
+
+#define SO_ACCEPTCONN          30
+
+#define SO_PEERSEC             31
+#define SO_PASSSEC             34
+#define SO_TIMESTAMPNS         35
+#define SCM_TIMESTAMPNS                SO_TIMESTAMPNS
+
+#define SO_MARK                        36
+
+#define SO_TIMESTAMPING                37
+#define SCM_TIMESTAMPING       SO_TIMESTAMPING
+
+#define SO_PROTOCOL            38
+#define SO_DOMAIN              39
+
+#define SO_RXQ_OVFL             40
+
+#define SO_WIFI_STATUS         41
+#define SCM_WIFI_STATUS        SO_WIFI_STATUS
+#define SO_PEEK_OFF            42
+
+/* Instruct lower device to use last 4-bytes of skb data as FCS */
+#define SO_NOFCS               43
+
+#define SO_LOCK_FILTER         44
+
+#define SO_SELECT_ERR_QUEUE    45
+
+#define SO_BUSY_POLL           46
+
+#define SO_MAX_PACING_RATE     47
+
+#define SO_BPF_EXTENSIONS      48
+
+#define SO_INCOMING_CPU         49
+
+#define SO_ATTACH_BPF           50
+#define SO_DETACH_BPF           SO_DETACH_FILTER
+
+#define SO_ATTACH_REUSEPORT_CBPF        51
+#define SO_ATTACH_REUSEPORT_EBPF        52
+
+#define SO_CNX_ADVICE           53
+
+#define SCM_TIMESTAMPING_OPT_STATS      54
+
+#define SO_MEMINFO              55
+
+#define SO_INCOMING_NAPI_ID     56
+
+#define SO_COOKIE               57
+
+#define SCM_TIMESTAMPING_PKTINFO       58
+
+#endif /* __ASM_GENERIC_SOCKET_H */


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

Reply via email to