Skip to content

chore: Upgrade Velox to 59b492 pointed by upstream Presto release-0.297-edge10.#52

Closed
20001020ycx wants to merge 3 commits intoy-scope:presto-0.293-clp-connectorfrom
20001020ycx:2026-02-23-0.297-integration
Closed

chore: Upgrade Velox to 59b492 pointed by upstream Presto release-0.297-edge10.#52
20001020ycx wants to merge 3 commits intoy-scope:presto-0.293-clp-connectorfrom
20001020ycx:2026-02-23-0.297-integration

Conversation

@20001020ycx
Copy link

@20001020ycx 20001020ycx commented Feb 23, 2026

Description

This PR updates the Velox submodule to a newer upstream snapshot and adapts the CLP connector to remain compatible.

Commit 1 (a4383b5) chore: Pull from upstream Velox open-source repo at commit facebookincubator@59b492a, this is the commit pointed by Presto release-0.297-edge10.

Commit 2 (5b10428) fix: CLP connector API adaptation and dependency upgrades to build against the new Velox version:

  • API changes: Updated ClpConnector, ClpDataSource, ClpColumnHandle, and ClpTableHandle to conform to breaking Velox connector API changes:
    • ColumnHandle and ConnectorTableHandle now declare name() as pure virtual — implemented in ClpColumnHandle and ClpTableHandle.
    • createDataSource / ClpDataSource signatures updated to use Velox-defined type aliases ConnectorTableHandlePtr, ColumnHandleMap, and ConnectorInsertTableHandlePtr (all const-qualified in 0.297).
    • Global connector factory registry removed — replaced with direct ClpConnectorFactory instantiation.
    • DataSource::runtimeStats() / RuntimeCounter renamed to getRuntimeStats() / RuntimeMetric; supportsSplitPreload() is now const; connectorConfig() is no longer virtual.
  • clp upgraded to commit f82e6114
  • log-surgeon upgraded to commit 193e1f91
  • spdlog upgraded to v1.15.3

Commit 3 (00157a8) fix: Update builder dockerfile — setup-ubuntu.sh switched from pip to uv for cmake installation, so remove the Python venv setup and the manual cmake 3.28.3 pre-installation


Note for reviewers: Please only review 2nd and 3rd commit. The 2nd commit is relevant to the CLP Velox connector and warrants review, and the 3rd commit is fixing the breaking changes from ci workflow. The 1st commit is a merge commit from the upstream Velox open-source repository.

Checklist

  • The PR satisfies the contribution guidelines.
  • This is a breaking change and that has been indicated in the PR title, OR this isn't a
    breaking change.
  • Necessary docs have been updated, OR no docs need to be updated.

Validation performed

  • All unit test passed
  • End to end test
    • Query: SELECT CLP_GET_JSON_STRING() from clp.default.default limit 100
    • Set up: official clp package v0.9.0, OSS version of Presto with the integration of upstream Presto's 0.297, velox with changes in this PR (integration of upstream Presto's 0.297), and minio as the storage.
    • The result is returned as expected.

@coderabbitai
Copy link

coderabbitai bot commented Feb 23, 2026

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

📥 Commits

Reviewing files that changed from the base of the PR and between 6fabc5e and bd6e5d3.

📒 Files selected for processing (300)
  • .clang-tidy
  • .cmake-format.yaml
  • .dockerignore
  • .gersemirc
  • .github/CODEOWNERS
  • .github/workflows/linux-build-base.yml
  • .github/zizmor.yml
  • .gitignore
  • .pre-commit-config.yaml
  • CMake/FindArrow.cmake
  • CMake/FindSnappy.cmake
  • CMake/FindSodium.cmake
  • CMake/FindThrift.cmake
  • CMake/FindXxhash.cmake
  • CMake/Findc-ares.cmake
  • CMake/Finddouble-conversion.cmake
  • CMake/Findglog.cmake
  • CMake/Findlz4.cmake
  • CMake/Findlzo2.cmake
  • CMake/Findpyarrow.cmake
  • CMake/Findre2.cmake
  • CMake/Findstemmer.cmake
  • CMake/Findzstd.cmake
  • CMake/ResolveDependency.cmake
  • CMake/VeloxConfig.cmake.in
  • CMake/VeloxUtils.cmake
  • CMake/resolve_dependency_modules/README.md
  • CMake/resolve_dependency_modules/absl.cmake
  • CMake/resolve_dependency_modules/arrow/CMakeLists.txt
  • CMake/resolve_dependency_modules/arrow/cmake-compatibility.patch
  • CMake/resolve_dependency_modules/boost.cmake
  • CMake/resolve_dependency_modules/boost/CMakeLists.txt
  • CMake/resolve_dependency_modules/c-ares.cmake
  • CMake/resolve_dependency_modules/clp.cmake
  • CMake/resolve_dependency_modules/cpr.cmake
  • CMake/resolve_dependency_modules/cpr/cpr-libcurl-compatible.patch
  • CMake/resolve_dependency_modules/cudf.cmake
  • CMake/resolve_dependency_modules/curl.cmake
  • CMake/resolve_dependency_modules/curl/CMakeLists.txt
  • CMake/resolve_dependency_modules/duckdb.cmake
  • CMake/resolve_dependency_modules/duckdb/fix-duckdbversion.patch
  • CMake/resolve_dependency_modules/faiss.cmake
  • CMake/resolve_dependency_modules/fastfloat.cmake
  • CMake/resolve_dependency_modules/fmt.cmake
  • CMake/resolve_dependency_modules/folly/CMakeLists.txt
  • CMake/resolve_dependency_modules/geos.cmake
  • CMake/resolve_dependency_modules/geos/geos-build.patch
  • CMake/resolve_dependency_modules/gflags.cmake
  • CMake/resolve_dependency_modules/glog.cmake
  • CMake/resolve_dependency_modules/google_cloud_cpp_storage.cmake
  • CMake/resolve_dependency_modules/grpc.cmake
  • CMake/resolve_dependency_modules/gtest.cmake
  • CMake/resolve_dependency_modules/icu.cmake
  • CMake/resolve_dependency_modules/icu/FindICU.cmake
  • CMake/resolve_dependency_modules/log_surgeon.cmake
  • CMake/resolve_dependency_modules/protobuf.cmake
  • CMake/resolve_dependency_modules/pybind11.cmake
  • CMake/resolve_dependency_modules/re2.cmake
  • CMake/resolve_dependency_modules/simdjson.cmake
  • CMake/resolve_dependency_modules/spdlog.cmake
  • CMake/resolve_dependency_modules/stemmer.cmake
  • CMake/resolve_dependency_modules/template.cmake
  • CMake/resolve_dependency_modules/xsimd.cmake
  • CMakeLists.txt
  • CODING_STYLE.md
  • CONTRIBUTING.md
  • Makefile
  • NOTICE.txt
  • README.md
  • docker-bake.hcl
  • docker-compose.yml
  • pyproject.toml
  • python/test/test_runner.py
  • python/test/test_type.py
  • scripts/checks/license-header.py
  • scripts/checks/run-clang-tidy.py
  • scripts/checks/util.py
  • scripts/ci/bm-report/report.qmd
  • scripts/ci/gersemi_cmd_definitions.py
  • scripts/ci/presto/start-prestojava.sh
  • scripts/ci/signature.py
  • scripts/ci/spark/start-spark.sh
  • scripts/docker/adapters.dockerfile
  • scripts/docker/centos-multi.dockerfile
  • scripts/docker/centos.dockerfile
  • scripts/docker/docker-command.sh
  • scripts/docker/fedora.dockerfile
  • scripts/docker/java.dockerfile
  • scripts/docker/prestojava-container.dockerfile
  • scripts/docker/pyvelox.dockerfile
  • scripts/docker/spark-container.dockerfile
  • scripts/docker/ubuntu-22.04-cpp.dockerfile
  • scripts/docker/yscope-velox-builder.dockerfile
  • scripts/info.sh
  • scripts/setup-centos-adapters.sh
  • scripts/setup-centos9.sh
  • scripts/setup-classpath.sh
  • scripts/setup-common.sh
  • scripts/setup-fedora.sh
  • scripts/setup-helper-functions.sh
  • scripts/setup-macos.sh
  • scripts/setup-manylinux.sh
  • scripts/setup-ubuntu.sh
  • scripts/setup-versions.sh
  • scripts/tests/TestFramework.sh
  • scripts/tests/test_LicenseHeader.sh
  • scripts/velox_env_linux.yml
  • scripts/velox_env_mac.yml
  • velox/CMakeLists.txt
  • velox/benchmarks/CMakeLists.txt
  • velox/benchmarks/QueryBenchmarkBase.cpp
  • velox/benchmarks/QueryBenchmarkBase.h
  • velox/benchmarks/basic/CMakeLists.txt
  • velox/benchmarks/basic/EstimateFlatSizeBenchmark.cpp
  • velox/benchmarks/basic/LikeTpchBenchmark.cpp
  • velox/benchmarks/basic/Preproc.cpp
  • velox/benchmarks/basic/SimpleCastExpr.cpp
  • velox/benchmarks/basic/VectorSlice.cpp
  • velox/benchmarks/filesystem/CMakeLists.txt
  • velox/benchmarks/filesystem/ReadBenchmark.h
  • velox/benchmarks/tpch/CMakeLists.txt
  • velox/benchmarks/tpch/TpchBenchmark.cpp
  • velox/benchmarks/tpch/TpchBenchmark.h
  • velox/benchmarks/tpch/TpchBenchmarkMain.cpp
  • velox/benchmarks/unstable/CMakeLists.txt
  • velox/buffer/Buffer.cpp
  • velox/buffer/Buffer.h
  • velox/buffer/StringViewBufferHolder.cpp
  • velox/buffer/StringViewBufferHolder.h
  • velox/buffer/tests/BufferTest.cpp
  • velox/buffer/tests/CMakeLists.txt
  • velox/buffer/tests/StringViewBufferHolderTest.cpp
  • velox/common/CMakeLists.txt
  • velox/common/Casts.h
  • velox/common/Enums.h
  • velox/common/base/AdmissionController.cpp
  • velox/common/base/AsyncSource.h
  • velox/common/base/BigintIdMap.h
  • velox/common/base/BitUtil.h
  • velox/common/base/BloomFilter.h
  • velox/common/base/CMakeLists.txt
  • velox/common/base/CoalesceIo.h
  • velox/common/base/CompareFlags.h
  • velox/common/base/CountBits.h
  • velox/common/base/Counters.cpp
  • velox/common/base/Counters.h
  • velox/common/base/ExceptionHelper.h
  • velox/common/base/Exceptions.h
  • velox/common/base/Macros.h
  • velox/common/base/Nulls.h
  • velox/common/base/PeriodicStatsReporter.cpp
  • velox/common/base/Portability.h
  • velox/common/base/RuntimeMetrics.cpp
  • velox/common/base/RuntimeMetrics.h
  • velox/common/base/Semaphore.h
  • velox/common/base/SimdUtil-inl.h
  • velox/common/base/SimdUtil.h
  • velox/common/base/SkewedPartitionBalancer.cpp
  • velox/common/base/SpillConfig.cpp
  • velox/common/base/SpillConfig.h
  • velox/common/base/SpillStats.cpp
  • velox/common/base/SpillStats.h
  • velox/common/base/SplitBlockBloomFilter.cpp
  • velox/common/base/SplitBlockBloomFilter.h
  • velox/common/base/StatsReporter.h
  • velox/common/base/Status.cpp
  • velox/common/base/Status.h
  • velox/common/base/TraceConfig.cpp
  • velox/common/base/TraceConfig.h
  • velox/common/base/TreeOfLosers.h
  • velox/common/base/VeloxException.cpp
  • velox/common/base/VeloxException.h
  • velox/common/base/benchmarks/CMakeLists.txt
  • velox/common/base/benchmarks/SplitBlockBloomFilterBenchmark.cpp
  • velox/common/base/benchmarks/StringSearchBenchmark.cpp
  • velox/common/base/tests/AsyncSourceTest.cpp
  • velox/common/base/tests/BitUtilTest.cpp
  • velox/common/base/tests/BloomFilterTest.cpp
  • velox/common/base/tests/CMakeLists.txt
  • velox/common/base/tests/ConcurrentCounterTest.cpp
  • velox/common/base/tests/ExceptionTest.cpp
  • velox/common/base/tests/GTestUtils.h
  • velox/common/base/tests/Memcpy.cpp
  • velox/common/base/tests/SimdUtilTest.cpp
  • velox/common/base/tests/SkewedPartitionBalancerTest.cpp
  • velox/common/base/tests/SpillConfigTest.cpp
  • velox/common/base/tests/SpillStatsTest.cpp
  • velox/common/base/tests/SplitBlockBloomFilterTest.cpp
  • velox/common/base/tests/StatsReporterTest.cpp
  • velox/common/base/tests/StatsReporterUtils.h
  • velox/common/base/tests/StatusTest.cpp
  • velox/common/caching/AsyncDataCache.cpp
  • velox/common/caching/AsyncDataCache.h
  • velox/common/caching/CMakeLists.txt
  • velox/common/caching/SsdCache.cpp
  • velox/common/caching/SsdCache.h
  • velox/common/caching/SsdFile.cpp
  • velox/common/caching/SsdFile.h
  • velox/common/caching/StringIdMap.cpp
  • velox/common/caching/tests/AsyncDataCacheTest.cpp
  • velox/common/caching/tests/CMakeLists.txt
  • velox/common/caching/tests/CacheTestUtil.h
  • velox/common/caching/tests/SsdFileTest.cpp
  • velox/common/caching/tests/StringIdMapTest.cpp
  • velox/common/compression/CMakeLists.txt
  • velox/common/compression/Compression.cpp
  • velox/common/compression/Lz4Compression.cpp
  • velox/common/compression/tests/CMakeLists.txt
  • velox/common/compression/tests/CompressionTest.cpp
  • velox/common/config/CMakeLists.txt
  • velox/common/config/Config.cpp
  • velox/common/config/Config.h
  • velox/common/config/IConfig.h
  • velox/common/config/tests/CMakeLists.txt
  • velox/common/dynamic_registry/tests/CMakeLists.txt
  • velox/common/dynamic_registry/tests/DynamicErrFunction.cpp
  • velox/common/dynamic_registry/tests/DynamicFunction.cpp
  • velox/common/dynamic_registry/tests/DynamicFunctionNonDefault.cpp
  • velox/common/dynamic_registry/tests/DynamicIntFunctionOverload.cpp
  • velox/common/dynamic_registry/tests/DynamicIntFunctionOverwrite.cpp
  • velox/common/dynamic_registry/tests/DynamicLinkTest.cpp
  • velox/common/dynamic_registry/tests/DynamicVarcharFunctionOverload.cpp
  • velox/common/dynamic_registry/tests/DynamicVarcharFunctionOverwrite.cpp
  • velox/common/encode/Base32.cpp
  • velox/common/encode/Base32.h
  • velox/common/encode/Base64.cpp
  • velox/common/encode/Base64.h
  • velox/common/encode/ByteStream.h
  • velox/common/encode/CMakeLists.txt
  • velox/common/encode/Coding.h
  • velox/common/encode/UInt128.h
  • velox/common/encode/tests/Base64Test.cpp
  • velox/common/encode/tests/CMakeLists.txt
  • velox/common/encode/tests/ZigZagTest.cpp
  • velox/common/file/CMakeLists.txt
  • velox/common/file/File.cpp
  • velox/common/file/File.h
  • velox/common/file/FileSystems.cpp
  • velox/common/file/FileSystems.h
  • velox/common/file/PlainUserNameTokenProvider.h
  • velox/common/file/Region.h
  • velox/common/file/TokenProvider.h
  • velox/common/file/Utils.h
  • velox/common/file/tests/CMakeLists.txt
  • velox/common/file/tests/FaultyFile.cpp
  • velox/common/file/tests/FaultyFile.h
  • velox/common/file/tests/FaultyFileSystem.h
  • velox/common/file/tests/FileTest.cpp
  • velox/common/file/tests/PlainUserNameTokenProviderTest.cpp
  • velox/common/file/tests/UtilsTest.cpp
  • velox/common/future/CMakeLists.txt
  • velox/common/future/VeloxPromise.h
  • velox/common/fuzzer/CMakeLists.txt
  • velox/common/fuzzer/ConstrainedGenerators.cpp
  • velox/common/fuzzer/ConstrainedGenerators.h
  • velox/common/fuzzer/Utils.cpp
  • velox/common/fuzzer/Utils.h
  • velox/common/fuzzer/tests/CMakeLists.txt
  • velox/common/fuzzer/tests/ConstrainedGeneratorsTest.cpp
  • velox/common/fuzzer/tests/UtilsTest.cpp
  • velox/common/geospatial/CMakeLists.txt
  • velox/common/geospatial/GeometryConstants.h
  • velox/common/geospatial/GeometrySerde.cpp
  • velox/common/geospatial/GeometrySerde.h
  • velox/common/geospatial/tests/CMakeLists.txt
  • velox/common/geospatial/tests/GeometrySerdeTest.cpp
  • velox/common/hyperloglog/CMakeLists.txt
  • velox/common/hyperloglog/DenseHll.cpp
  • velox/common/hyperloglog/DenseHll.h
  • velox/common/hyperloglog/HllAccumulator.h
  • velox/common/hyperloglog/KHyperLogLog.h
  • velox/common/hyperloglog/KHyperLogLogImpl.h
  • velox/common/hyperloglog/SparseHll.cpp
  • velox/common/hyperloglog/SparseHll.h
  • velox/common/hyperloglog/benchmarks/CMakeLists.txt
  • velox/common/hyperloglog/benchmarks/DenseHll.cpp
  • velox/common/hyperloglog/tests/CMakeLists.txt
  • velox/common/hyperloglog/tests/DenseHllTest.cpp
  • velox/common/hyperloglog/tests/HllAccumulatorTest.cpp
  • velox/common/hyperloglog/tests/KHyperLogLogTest.cpp
  • velox/common/hyperloglog/tests/SparseHllTest.cpp
  • velox/common/io/IoStatistics.h
  • velox/common/memory/Allocation.cpp
  • velox/common/memory/ArbitrationOperation.h
  • velox/common/memory/ArbitrationParticipant.cpp
  • velox/common/memory/ArbitrationParticipant.h
  • velox/common/memory/ByteStream.cpp
  • velox/common/memory/ByteStream.h
  • velox/common/memory/CMakeLists.txt
  • velox/common/memory/HashStringAllocator.h
  • velox/common/memory/MallocAllocator.cpp
  • velox/common/memory/MallocAllocator.h
  • velox/common/memory/Memory.cpp
  • velox/common/memory/Memory.h
  • velox/common/memory/MemoryAllocator.h
  • velox/common/memory/MemoryArbitrator.cpp
  • velox/common/memory/MemoryArbitrator.h
  • velox/common/memory/MemoryPool.cpp
  • velox/common/memory/MemoryPool.h
  • velox/common/memory/MmapAllocator.cpp

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@20001020ycx 20001020ycx changed the title chore: upgrade Velox to upstream 59b492a9 and adapt CLP connector. chore: upgrade Velox to upstream 59b492a9 (0.297-edge-10) and adapt CLP connector. Feb 23, 2026
@20001020ycx 20001020ycx changed the title chore: upgrade Velox to upstream 59b492a9 (0.297-edge-10) and adapt CLP connector. chore: upgrade Velox to upstream 59b492a9 (release-0.297-edge10) and adapt CLP connector. Feb 23, 2026
@20001020ycx 20001020ycx changed the title chore: upgrade Velox to upstream 59b492a9 (release-0.297-edge10) and adapt CLP connector. chore: upgrade Velox to 59b492 pointed by upstream Presto release-0.297-edge10. Feb 23, 2026
@20001020ycx 20001020ycx changed the title chore: upgrade Velox to 59b492 pointed by upstream Presto release-0.297-edge10. chore: Upgrade Velox to 59b492 pointed by upstream Presto release-0.297-edge10. Feb 23, 2026
@20001020ycx 20001020ycx force-pushed the 2026-02-23-0.297-integration branch 4 times, most recently from 56a2c3a to 30580ef Compare February 23, 2026 20:57
@gibber9809 gibber9809 self-requested a review February 24, 2026 15:46
@gibber9809
Copy link

I think this PR mostly looks good to me. Good to approve once the CI passes.

It might also be worth updating the clp repo commit to the current latest (i.e. past the initial timestamp support commit), but not really necessary -- if not I'll just do it in my timestamp support PR.

@20001020ycx 20001020ycx force-pushed the 2026-02-23-0.297-integration branch 3 times, most recently from 5536d06 to c624802 Compare February 24, 2026 18:40
Squash merge of upstream Velox commit 59b492a.

Conflict resolutions:
- CMake/resolve_dependency_modules/log_surgeon.cmake: Keep fork's CLP
  content; git confused it with tpcds/gen/tests/CMakeLists.txt due to
  rename detection during squash merge.
- CMakeLists.txt: Take upstream Clang warning formatting (drop
  -Wno-implicit-const-int-float-conversion); preserve fork's Boost
  libraries (url, iostreams) needed for CLP with upstream formatting;
  take upstream zstd target alias check block.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@20001020ycx 20001020ycx force-pushed the 2026-02-23-0.297-integration branch 2 times, most recently from 88a3943 to 59d886b Compare February 24, 2026 20:33
Adapt CLP connector to upstream Velox API changes in 0.297:

- ConnectorFactory global registry removed: Replace
  connector::registerConnectorFactory / getConnectorFactory /
  unregisterConnectorFactory calls with direct factory instantiation
  (ClpConnectorFactory factory; factory.newConnector(...))

- New type aliases for connector handles: Update createDataSource and
  ClpDataSource constructor signatures to use ConnectorTableHandlePtr
  (shared_ptr<const ConnectorTableHandle>) and ColumnHandleMap
  (unordered_map<string, shared_ptr<const ColumnHandle>>) instead of
  the non-const shared_ptr variants

- Update dynamic_pointer_cast calls to cast to const types to match
  the new const-qualified pointer types

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@20001020ycx 20001020ycx force-pushed the 2026-02-23-0.297-integration branch 3 times, most recently from 9a089b7 to e46f441 Compare February 24, 2026 23:05
setup-ubuntu.sh no longer creates a Python venv — it switched from pip
to uv for cmake installation. Remove the mv /tmp/.venv step and the
VIRTUAL_ENV/PATH activation that depended on it. Also remove the cmake
pre-install step, which was a workaround for pip-installed cmake PATH
issues and is no longer needed since uv installs cmake to /usr/local/bin.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@20001020ycx 20001020ycx force-pushed the 2026-02-23-0.297-integration branch from e46f441 to bd6e5d3 Compare February 25, 2026 21:22
@20001020ycx
Copy link
Author

close this as #53 is merged, my personal fork does not have enough permission for publishing velox build image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants