Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
9256c10
feat(velox-connector): Add Velox/Folly header dependencies to the build.
20001020ycx Jun 22, 2026
b2d1570
Merge branch 'main' into feat/2026-06-22-velox-connector-deps
jackluo923 Jun 23, 2026
632947a
clean up code for review
20001020ycx Jun 23, 2026
c3ad4b2
Merge branch 'feat/2026-06-22-velox-connector-deps' of github.com:200…
20001020ycx Jun 23, 2026
8538003
refactor(velox-connector): Extract xsimd instead of building it.
20001020ycx Jun 24, 2026
79766ef
fix(velox-connector): Drop no-op REQUIRED from the include() call.
20001020ycx Jun 24, 2026
312f4b9
Merge branch 'main' into feat/2026-06-22-velox-connector-deps
jackluo923 Jun 26, 2026
087cf36
add version explanation in deps.yaml
20001020ycx Jun 26, 2026
50e8e5a
Merge branch 'feat/2026-06-22-velox-connector-deps' of github.com:200…
20001020ycx Jun 26, 2026
a81a4e7
Update velox-connector/README.md
20001020ycx Jun 29, 2026
9e1f2a0
fix(velox-connector): Satisfy yamllint in deps.yaml.
20001020ycx Jun 29, 2026
98abcb2
build(deps): Bump com.fasterxml.jackson.core:jackson-databind from 2.…
dependabot[bot] Jun 30, 2026
c10aaf1
Merge branch 'main' into feat/2026-06-22-velox-connector-deps
jackluo923 Jun 30, 2026
47de9e3
Merge branch 'main' into feat/2026-06-22-velox-connector-deps
jackluo923 Jun 30, 2026
b4ac08c
refactor(velox-connector): Source Velox header include paths from all…
20001020ycx Jun 30, 2026
c2aa5c2
refactor(velox-connector): Single-source dependency roots and the Pre…
20001020ycx Jul 2, 2026
d178258
fix(presto-connector): Restore jackson version properties dropped dur…
20001020ycx Jul 2, 2026
f213ad2
Rename fast_float task to fast-float to follow convention and it does…
kirkrodrigues Jul 7, 2026
9b81b19
Replace repeated library names with global variables.
kirkrodrigues Jul 7, 2026
69798c6
Turn WITH_GTEST off to reduce unnecessary output.
kirkrodrigues Jul 7, 2026
42052bd
Style improvements.
kirkrodrigues Jul 7, 2026
474cf64
Update velox-connector/CMakeLists.txt
20001020ycx Jul 7, 2026
0a76ff4
Update velox-connector/CMakeLists.txt
20001020ycx Jul 7, 2026
1de951b
Update taskfiles/velox-connector/deps.yaml
20001020ycx Jul 7, 2026
f48d222
Update taskfiles/velox-connector/deps.yaml
20001020ycx Jul 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 185 additions & 1 deletion taskfiles/velox-connector/deps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,34 @@ includes:
vars:
G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings"

# The Presto commit that the Velox connector is built against.
#
# NOTE: This reference is a commit that hasn't been included in a release yet, but contains the
# functionality necessary to implement the Velox connector.
G_PRESTO_GIT_TAG: "6e1942b72a9f32191dcd0ba49812f2ac96a25615"

# Library names (must match CMake package names for settings files)
G_BOOST_LIB_NAME: "Boost"
G_DOUBLE_CONVERSION_LIB_NAME: "double-conversion"
G_FAST_FLOAT_LIB_NAME: "fast_float"
G_FMT_LIB_NAME: "fmt"
G_GFLAGS_LIB_NAME: "gflags"
G_GLOG_LIB_NAME: "glog"
G_GSL_LIB_NAME: "Microsoft.GSL"
G_YSTDLIB_LIB_NAME: "ystdlib"

# Velox header-dependency versions
#
# NOTE: These must be kept in sync with the version of Velox used by presto@<G_PRESTO_GIT_TAG>
G_DOUBLE_CONVERSION_VERSION: "v3.1.5"
G_FAST_FLOAT_VERSION: "v8.0.2"
G_FMT_VERSION: "11.2.0"
G_FOLLY_VERSION: "v2026.01.05.00"
G_GFLAGS_VERSION: "v2.2.2"
G_GLOG_VERSION: "v0.6.0"
G_RE2_VERSION: "2024-07-02"
G_XSIMD_VERSION: "10.0.0"

tasks:
install-all:
cmds:
Expand All @@ -29,13 +51,20 @@ tasks:
- "antlr-runtime"
- "boost"
- "date"
- "double-conversion"
- "fast-float"
- "fmt"
- "folly"
- "gflags"
- "glog"
- "log-surgeon"
- "microsoft-gsl"
- "msgpack-cxx"
- "nlohmann-json"
- "re2"
- "simdjson"
- "spdlog"
- "xsimd"
- "ystdlib"
- "zstd"

Expand Down Expand Up @@ -117,11 +146,13 @@ tasks:
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}"
FILE_SHA256: "d6c69e4459eb5d6ec208250291221e7ff4a2affde9af6e49c9303b89c687461f"
TARGETS:
- "context"
- "filesystem"
- "iostreams"
- "process"
- "program_options"
- "regex"
- "thread"
- "url"
URL: "https://github.com/boostorg/boost/releases/download/boost-{{.VERSION}}/\
boost-{{.VERSION}}-b2-nodocs.tar.gz"
Expand All @@ -145,10 +176,45 @@ tasks:
TAR_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

double-conversion:
internal: true
vars:
VERSION: "{{.G_DOUBLE_CONVERSION_VERSION}}"
run: "once"
cmds:
- task: "yscope-dev-utils:cmake:install-remote-tar"
vars:
CMAKE_GEN_ARGS:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
CMAKE_PACKAGE_NAME: "{{.G_DOUBLE_CONVERSION_LIB_NAME}}"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}"
TAR_SHA256: "a63ecb93182134ba4293fd5f22d6e08ca417caafa244afaa751cbfddf6415b13"
TAR_URL: >-
https://github.com/google/double-conversion/archive/refs/tags/{{.VERSION}}.tar.gz
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

fast-float:
internal: true
vars:
VERSION: "{{.G_FAST_FLOAT_VERSION}}"
run: "once"
cmds:
- task: "yscope-dev-utils:cmake:install-remote-tar"
vars:
CMAKE_GEN_ARGS:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
CMAKE_PACKAGE_NAME: "{{.G_FAST_FLOAT_LIB_NAME}}"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}"
TAR_SHA256: "e14a33089712b681d74d94e2a11362643bd7d769ae8f7e7caefe955f57f7eacd"
TAR_URL: "https://github.com/fastfloat/fast_float/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

fmt:
internal: true
vars:
VERSION: "11.2.0"
VERSION: "{{.G_FMT_VERSION}}"
run: "once"
cmds:
- task: "yscope-dev-utils:cmake:install-remote-tar"
Expand All @@ -165,6 +231,85 @@ tasks:
TAR_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

folly:
internal: true
vars:
VERSION: "{{.G_FOLLY_VERSION}}"
run: "once"
deps:
- "boost"
- "double-conversion"
- "fast-float"
- "fmt"
- "gflags"
- "glog"
cmds:
- task: "yscope-dev-utils:cmake:install-remote-tar"
vars:
CMAKE_GEN_ARGS:
# Build and install args
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
- "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW"

# Dependency args
- "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake"
- "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake"
- >-
-DDoubleConversion_ROOT={{.G_DEPS_CPP_DIR}}/{{.G_DOUBLE_CONVERSION_LIB_NAME}}-install
- "-DFastFloat_ROOT={{.G_DEPS_CPP_DIR}}/{{.G_FAST_FLOAT_LIB_NAME}}-install"
- "-DGflags_ROOT={{.G_DEPS_CPP_DIR}}/{{.G_GFLAGS_LIB_NAME}}-install"
- "-DGlog_ROOT={{.G_DEPS_CPP_DIR}}/{{.G_GLOG_LIB_NAME}}-install"
CMAKE_PACKAGE_NAME: "folly"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}"
TAR_SHA256: "31d05e867db6d4681989aca5f901079dbc33028e3139419fd5024b611689adea"
TAR_URL: "https://github.com/facebook/folly/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

gflags:
internal: true
vars:
VERSION: "{{.G_GFLAGS_VERSION}}"
run: "once"
cmds:
- task: "yscope-dev-utils:cmake:install-remote-tar"
vars:
CMAKE_GEN_ARGS:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
CMAKE_PACKAGE_NAME: "{{.G_GFLAGS_LIB_NAME}}"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}"
TAR_SHA256: "34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf"
TAR_URL: "https://github.com/gflags/gflags/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

glog:
internal: true
vars:
VERSION: "{{.G_GLOG_VERSION}}"
run: "once"
deps:
- "gflags"
cmds:
- task: "yscope-dev-utils:cmake:install-remote-tar"
vars:
CMAKE_GEN_ARGS:
# Build and install args
- "-DBUILD_SHARED_LIBS=OFF"
- "-DBUILD_TESTING=OFF"
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
- "-DWITH_GTEST=OFF"
- "-DWITH_UNWIND=OFF"

# Dependency args
- "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_GFLAGS_LIB_NAME}}.cmake"
CMAKE_PACKAGE_NAME: "{{.G_GLOG_LIB_NAME}}"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}"
TAR_SHA256: "8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6"
TAR_URL: "https://github.com/google/glog/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

log-surgeon:
internal: true
run: "once"
Expand Down Expand Up @@ -257,6 +402,25 @@ tasks:
TAR_URL: "https://github.com/nlohmann/json/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

re2:
internal: true
vars:
VERSION: "{{.G_RE2_VERSION}}"
run: "once"
cmds:
- task: "yscope-dev-utils:remote:download-and-extract-tar"
vars:
FILE_SHA256: "eb2df807c781601c14a260a507a5bb4509be1ee626024cb45acbd57cb9d4032b"
NUM_COMPONENTS_TO_STRIP: 1
OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/re2-source"
URL: "https://github.com/google/re2/archive/refs/tags/{{.VERSION}}.tar.gz"
- >-
echo "set(re2_ROOT
\"{{.G_DEPS_CPP_DIR}}/re2-source\"
CACHE PATH
\"Package root for re2.\"
)" > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/re2.cmake"

simdjson:
internal: true
vars:
Expand Down Expand Up @@ -300,6 +464,26 @@ tasks:
TAR_URL: "https://github.com/gabime/spdlog/archive/refs/tags/{{.VERSION}}.tar.gz"
WORK_DIR: "{{.G_DEPS_CPP_DIR}}"

xsimd:
internal: true
vars:
VERSION: "{{.G_XSIMD_VERSION}}"
run: "once"

cmds:
- task: "yscope-dev-utils:remote:download-and-extract-tar"
vars:
FILE_SHA256: "73f818368b3a4dad92fab1b2933d93694241bd2365a6181747b2df1768f6afdd"
NUM_COMPONENTS_TO_STRIP: 1
OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/xsimd-source"
URL: "https://github.com/xtensor-stack/xsimd/archive/refs/tags/{{.VERSION}}.tar.gz"
- >-
echo "set(xsimd_ROOT
\"{{.G_DEPS_CPP_DIR}}/xsimd-source\"
CACHE PATH
\"Package root for xsimd.\"
)" > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/xsimd.cmake"

ystdlib:
internal: true
run: "once"
Expand Down
1 change: 1 addition & 0 deletions taskfiles/velox-connector/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,5 @@ tasks:
EXTRA_ARGS:
- "-DLIBCLP_PLUGIN_VELOX_CONNECTOR_DEPS_CMAKE_SETTINGS=\
{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-deps.cmake"
- "-DPRESTO_GIT_TAG={{.G_PRESTO_GIT_TAG}}"
SOURCE_DIR: "{{.ROOT_DIR}}/velox-connector"
24 changes: 22 additions & 2 deletions velox-connector/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,20 @@ set(
"Path to the CMake settings file describing this library's dependencies."
)

include("${LIBCLP_PLUGIN_VELOX_CONNECTOR_DEPS_CMAKE_SETTINGS}" REQUIRED)
include("${LIBCLP_PLUGIN_VELOX_CONNECTOR_DEPS_CMAKE_SETTINGS}")

# ==============================================================================
# Presto/Velox framework headers
# ==============================================================================
include(FetchContent)

set(PRESTO_GIT_TAG "6e1942b72a9f32191dcd0ba49812f2ac96a25615")
set(PRESTO_GIT_TAG "" CACHE STRING "Presto commit that provides the Velox framework headers.")
if(PRESTO_GIT_TAG STREQUAL "")
message(FATAL_ERROR
"PRESTO_GIT_TAG is not set. Build via `task velox-connector:build`, or set"
" PRESTO_GIT_TAG when configuring CMake directly."
)
endif()

message(STATUS "Downloading presto for headers (commit: ${PRESTO_GIT_TAG})")
FetchContent_Declare(
Expand Down Expand Up @@ -85,6 +91,20 @@ FetchContent_MakeAvailable(clp)
# Plugin target
# ==============================================================================

# Compile-time include paths for the third-party headers transitively pulled in by the Velox
# headers. The libraries themselves are resolved at runtime by the Presto worker.
include_directories(
${absl_ROOT}/include
${Boost_ROOT}/include
${double-conversion_ROOT}/include
${fmt_ROOT}/include
${folly_ROOT}/include
${gflags_ROOT}/include
${glog_ROOT}/include
${re2_ROOT}
${xsimd_ROOT}/include
)

# Plugin source tree
add_subdirectory(src)

Expand Down
28 changes: 17 additions & 11 deletions velox-connector/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,24 @@

## Requirements

* An environment with Velox's [dependencies][velox-deps-setup] installed
* For example, Presto's dev container:
[prestodb/presto-native-dependency][presto-native-dependency]
* NOTE: Due a bug in GCC 12 that's used in the container, log-surgeon won't compile. Instead,
you'll need to explicitly set the following environment variables to point at GCC 11:

```shell
export CC="gcc"
export CXX="g++"
```

* [Task] >= 3.49.1
* One of the following build environments:
* A machine with:
* CMake >= 3.28.3 and < 4.0
* A C++20 compiler
* The following libraries:
* `libcurl4-openssl-dev`
* `libevent-dev`
* `libssl-dev`
* A container with Velox's [dependencies][velox-deps-setup] installed, such as Presto's dev
container ([prestodb/presto-native-dependency][presto-native-dependency]):
* NOTE: Due to a bug in the container's GCC 12, log-surgeon won't compile; Instead, set
`CC`/`CXX` to point at GCC 11 before building:

```shell
export CC="gcc"
export CXX="g++"
```

## Building

Expand Down