Skip to content

Commit 05f0aca

Browse files
authored
Merge branch 'main' into test/integration-rest
2 parents ea52405 + dbcbdf2 commit 05f0aca

27 files changed

+1073
-61
lines changed

.devcontainer/Dockerfile.template

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ RUN apt update && \
2626
bash-completion \
2727
build-essential \
2828
ccache \
29+
clangd \
2930
cmake \
3031
curl \
31-
gcc \
32-
g++ \
32+
gcc-14 \
33+
g++-14 \
3334
git \
3435
htop \
3536
libboost-all-dev \

.github/workflows/cpp-linter.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ jobs:
3636
shell: bash
3737
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
3838
- name: Run build
39+
env:
40+
CC: gcc-14
41+
CXX: g++-14
3942
run: |
4043
mkdir build && cd build
4144
cmake .. -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
@@ -54,7 +57,8 @@ jobs:
5457
thread-comments: true
5558
ignore: 'build|cmake_modules|ci'
5659
database: build
57-
extra-args: '-I$PWD/src -I$PWD/build/src'
60+
# need '-fno-builtin-std-forward_like', see https://github.com/llvm/llvm-project/issues/101614
61+
extra-args: '-I$PWD/src -I$PWD/build/src -fno-builtin-std-forward_like'
5862
- name: Fail fast?!
5963
if: steps.linter.outputs.checks-failed != 0
6064
run: |

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ permissions:
1717

1818
jobs:
1919
docs:
20-
runs-on: ubuntu-latest
20+
runs-on: ubuntu-24.04
2121

2222
steps:
2323
- uses: actions/checkout@v6.0.0

.github/workflows/license_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on: pull_request
2222
jobs:
2323
license-check:
2424
name: "License Check"
25-
runs-on: ubuntu-latest
25+
runs-on: ubuntu-24.04
2626
steps:
2727
- name: Checkout repository
2828
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0

.github/workflows/rc.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ permissions:
3030
jobs:
3131
archive:
3232
name: Archive
33-
runs-on: ubuntu-latest
33+
runs-on: ubuntu-24.04
3434
timeout-minutes: 5
3535
steps:
3636
- name: Checkout
@@ -77,6 +77,10 @@ jobs:
7777
- macos-26
7878
- ubuntu-24.04
7979
# - windows-latest
80+
include:
81+
- os: ubuntu-24.04
82+
CC: gcc-14
83+
CXX: g++-14
8084
steps:
8185
- name: Checkout
8286
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
@@ -85,6 +89,12 @@ jobs:
8589
with:
8690
name: archive
8791

92+
- name: Set Ubuntu Compilers
93+
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
94+
run: |
95+
echo "CC=${{ matrix.CC }}" >> $GITHUB_ENV
96+
echo "CXX=${{ matrix.CXX }}" >> $GITHUB_ENV
97+
8898
- name: Verify
8999
run: |
90100
tar_gz=$(echo apache-iceberg-cpp-*.tar.gz)
@@ -109,7 +119,7 @@ jobs:
109119
if: github.ref_type == 'tag'
110120
needs:
111121
- verify
112-
runs-on: ubuntu-latest
122+
runs-on: ubuntu-24.04
113123
permissions:
114124
contents: write
115125
steps:

.github/workflows/sanitizer_test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ jobs:
4646
shell: bash
4747
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
4848
- name: Configure and Build with ASAN & UBSAN
49+
env:
50+
CC: gcc-14
51+
CXX: g++-14
4952
run: |
5053
mkdir build && cd build
5154
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug -DICEBERG_ENABLE_ASAN=ON -DICEBERG_ENABLE_UBSAN=ON

.github/workflows/test.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ jobs:
5454
run: ci/scripts/build_iceberg.sh $(pwd) ON
5555
- name: Build Example
5656
shell: bash
57+
env:
58+
CC: gcc-14
59+
CXX: g++-14
5760
run: ci/scripts/build_example.sh $(pwd)/example
5861
macos:
5962
name: AArch64 macOS 26
@@ -102,6 +105,8 @@ jobs:
102105
include:
103106
- title: AMD64 Ubuntu 24.04
104107
runs-on: ubuntu-24.04
108+
CC: gcc-14
109+
CXX: g++-14
105110
- title: AMD64 Windows 2025
106111
runs-on: windows-2025
107112
meson-setup-args: --vsenv
@@ -117,6 +122,11 @@ jobs:
117122
run: |
118123
python3 -m pip install --upgrade pip
119124
python3 -m pip install -r requirements.txt
125+
- name: Set Ubuntu Compilers
126+
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
127+
run: |
128+
echo "CC=${{ matrix.CC }}" >> $GITHUB_ENV
129+
echo "CXX=${{ matrix.CXX }}" >> $GITHUB_ENV
120130
- name: Build Iceberg
121131
run: |
122132
meson setup builddir ${{ matrix.meson-setup-args || '' }}

cmake_modules/IcebergThirdpartyToolchain.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ function(resolve_arrow_dependency)
9797
set(ARROW_WITH_ZLIB ON)
9898
set(ZLIB_SOURCE "SYSTEM")
9999
set(ARROW_VERBOSE_THIRDPARTY_BUILD OFF)
100+
set(CMAKE_CXX_STANDARD 17)
100101

101102
fetchcontent_declare(VendoredArrow
102103
${FC_DECLARE_COMMON_OPTIONS}
@@ -323,7 +324,7 @@ function(resolve_croaring_dependency)
323324
set(CROARING_URL "$ENV{ICEBERG_CROARING_URL}")
324325
else()
325326
set(CROARING_URL
326-
"https://github.com/RoaringBitmap/CRoaring/archive/refs/tags/v4.3.11.tar.gz")
327+
"https://github.com/RoaringBitmap/CRoaring/archive/refs/tags/v4.4.3.tar.gz")
327328
endif()
328329

329330
fetchcontent_declare(croaring
@@ -542,7 +543,7 @@ function(resolve_cpr_dependency)
542543
RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR}"
543544
ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR}"
544545
LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR}")
545-
list(APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL)
546+
list(APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL CURL)
546547
else()
547548
set(CPR_VENDORED FALSE)
548549
list(APPEND ICEBERG_SYSTEM_DEPENDENCIES cpr)

src/iceberg/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ set(ICEBERG_INCLUDES "$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/src>"
2020
set(ICEBERG_SOURCES
2121
arrow_c_data_guard_internal.cc
2222
catalog/memory/in_memory_catalog.cc
23+
expression/aggregate.cc
2324
expression/binder.cc
2425
expression/evaluator.cc
2526
expression/expression.cc

src/iceberg/catalog/rest/error_handlers.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class ICEBERG_REST_EXPORT NamespaceErrorHandler : public DefaultErrorHandler {
7171
};
7272

7373
/// \brief Error handler for drop namespace operations.
74-
class ICEBERG_REST_EXPORT DropNamespaceErrorHandler : public NamespaceErrorHandler {
74+
class ICEBERG_REST_EXPORT DropNamespaceErrorHandler final : public NamespaceErrorHandler {
7575
public:
7676
/// \brief Returns the singleton instance
7777
static const std::shared_ptr<DropNamespaceErrorHandler>& Instance();
@@ -83,7 +83,7 @@ class ICEBERG_REST_EXPORT DropNamespaceErrorHandler : public NamespaceErrorHandl
8383
};
8484

8585
/// \brief Table-level error handler.
86-
class ICEBERG_REST_EXPORT TableErrorHandler : public DefaultErrorHandler {
86+
class ICEBERG_REST_EXPORT TableErrorHandler final : public DefaultErrorHandler {
8787
public:
8888
/// \brief Returns the singleton instance
8989
static const std::shared_ptr<TableErrorHandler>& Instance();
@@ -95,7 +95,7 @@ class ICEBERG_REST_EXPORT TableErrorHandler : public DefaultErrorHandler {
9595
};
9696

9797
/// \brief View-level error handler.
98-
class ICEBERG_REST_EXPORT ViewErrorHandler : public DefaultErrorHandler {
98+
class ICEBERG_REST_EXPORT ViewErrorHandler final : public DefaultErrorHandler {
9999
public:
100100
/// \brief Returns the singleton instance
101101
static const std::shared_ptr<ViewErrorHandler>& Instance();
@@ -107,7 +107,7 @@ class ICEBERG_REST_EXPORT ViewErrorHandler : public DefaultErrorHandler {
107107
};
108108

109109
/// \brief Table commit operation error handler.
110-
class ICEBERG_REST_EXPORT TableCommitErrorHandler : public DefaultErrorHandler {
110+
class ICEBERG_REST_EXPORT TableCommitErrorHandler final : public DefaultErrorHandler {
111111
public:
112112
/// \brief Returns the singleton instance
113113
static const std::shared_ptr<TableCommitErrorHandler>& Instance();
@@ -119,7 +119,7 @@ class ICEBERG_REST_EXPORT TableCommitErrorHandler : public DefaultErrorHandler {
119119
};
120120

121121
/// \brief View commit operation error handler.
122-
class ICEBERG_REST_EXPORT ViewCommitErrorHandler : public DefaultErrorHandler {
122+
class ICEBERG_REST_EXPORT ViewCommitErrorHandler final : public DefaultErrorHandler {
123123
public:
124124
/// \brief Returns the singleton instance
125125
static const std::shared_ptr<ViewCommitErrorHandler>& Instance();

0 commit comments

Comments
 (0)