Skip to content

Commit 9b0cdc1

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 2626534 + 1de84b6 commit 9b0cdc1

File tree

2,444 files changed

+97909
-43146
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,444 files changed

+97909
-43146
lines changed

.clang-tidy

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Checks: '-*,clang-diagnostic-*,bugprone-*,performance-*,google-explicit-constructor,google-build-using-namespace,google-runtime-int,misc-definitions-in-headers,modernize-use-nullptr,modernize-use-override,-bugprone-macro-parentheses,readability-braces-around-statements,-bugprone-branch-clone,readability-identifier-naming,hicpp-exception-baseclass,misc-throw-by-value-catch-by-reference,-bugprone-signed-char-misuse,-bugprone-misplaced-widening-cast,-bugprone-sizeof-expression,-bugprone-easily-swappable-parameters,google-global-names-in-headers,llvm-header-guard,misc-definitions-in-headers,modernize-use-emplace,modernize-use-bool-literals,-performance-inefficient-string-concatenation,-performance-no-int-to-ptr,readability-container-size-empty,cppcoreguidelines-pro-type-cstyle-cast,-llvm-header-guard,-performance-enum-size,cppcoreguidelines-pro-type-const-cast,cppcoreguidelines-avoid-non-const-global-variables,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-slicing,cppcoreguidelines-rvalue-reference-param-not-moved,cppcoreguidelines-virtual-class-destructor,-readability-identifier-naming,-bugprone-exception-escape,-bugprone-unused-local-non-trivial-variable,-bugprone-empty-catch'
1+
Checks: '-*,clang-diagnostic-*,bugprone-*,performance-*,google-explicit-constructor,google-build-using-namespace,google-runtime-int,misc-definitions-in-headers,modernize-use-nullptr,modernize-use-override,-bugprone-macro-parentheses,readability-braces-around-statements,-bugprone-branch-clone,readability-identifier-naming,hicpp-exception-baseclass,misc-throw-by-value-catch-by-reference,-bugprone-signed-char-misuse,-bugprone-misplaced-widening-cast,-bugprone-sizeof-expression,-bugprone-easily-swappable-parameters,google-global-names-in-headers,llvm-header-guard,misc-definitions-in-headers,modernize-use-emplace,modernize-use-bool-literals,-performance-inefficient-string-concatenation,-performance-no-int-to-ptr,readability-container-size-empty,cppcoreguidelines-pro-type-cstyle-cast,-llvm-header-guard,-performance-enum-size,cppcoreguidelines-pro-type-const-cast,cppcoreguidelines-avoid-non-const-global-variables,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-slicing,cppcoreguidelines-rvalue-reference-param-not-moved,cppcoreguidelines-virtual-class-destructor,-readability-identifier-naming,-bugprone-exception-escape,-bugprone-unused-local-non-trivial-variable,-bugprone-empty-catch,-misc-use-internal-linkage,-readability-static-definition-in-anonymous-namespace'
22
WarningsAsErrors: '*'
33
HeaderFilterRegex: 'src/include/duckdb/.*'
44
FormatStyle: none
@@ -49,4 +49,7 @@ CheckOptions:
4949
value: '::duckdb::shared_ptr;::duckdb::unique_ptr;::std::auto_ptr;::duckdb::weak_ptr'
5050
- key: cppcoreguidelines-rvalue-reference-param-not-moved.IgnoreUnnamedParams
5151
value: true
52-
52+
- key: misc-use-internal-linkage
53+
value: true
54+
- key: readability-static-definition-in-anonymous-namespace
55+
value: true

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ body:
2323
* [AWS extension](https://github.com/duckdb/duckdb-aws/issues/new)
2424
* [Azure extension](https://github.com/duckdb/duckdb-azure/issues/new)
2525
* [Delta extension](https://github.com/duckdb/duckdb-delta/issues/new)
26+
* [Encodings extension](https://github.com/duckdb/duckdb-encodings/issues/new)
2627
* [Excel extension](https://github.com/duckdb/duckdb-excel/issues/new)
2728
* [fts (full text search) extension](https://github.com/duckdb/duckdb-fts/issues/new)
2829
* [httpfs extension](https://github.com/duckdb/duckdb-httpfs/issues/new)

.github/actions/build_extensions/action.yml

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ inputs:
44
# Test config
55
run_tests:
66
description: 'Run extension tests after build'
7-
default: 1
7+
default: '1'
88
run_autoload_tests:
99
description: 'Runs the autoloading tests'
10-
default: 1
10+
default: '1'
1111

1212
# Deploy config
1313
deploy_as:
@@ -32,19 +32,19 @@ inputs:
3232
default: ''
3333
static_link_build:
3434
description: 'Links DuckDB statically to the loadable extensions'
35-
default: 1
35+
default: '1'
3636
no_static_linking:
3737
description: 'Disables linking extensions into DuckDB for testing'
38-
default: 0
38+
default: '0'
3939
vcpkg_build:
4040
description: 'Installs vcpkg and pass its toolchain to CMakes'
41-
default: 1
41+
default: '1'
4242
build_dir:
4343
description: 'DuckDB source directory to run the build in'
4444
default: '.'
4545
ninja:
4646
description: 'Use ninja for building'
47-
default: 0
47+
default: '0'
4848
openssl_path:
4949
description: 'Directory of OpenSSL installation'
5050
default: ''
@@ -53,25 +53,28 @@ inputs:
5353
default: ''
5454
treat_warn_as_error:
5555
description: 'Treat compilation warnings as errors'
56-
default: 1
56+
default: '1'
5757
build_in_tree_extensions:
5858
description: 'Build in-tree extensions'
59-
default: 1
59+
default: '1'
6060
build_out_of_tree_extensions:
6161
description: 'Build out-of-tree extensions'
62-
default: 1
62+
default: '1'
63+
build_complete_extensions_set:
64+
description: 'Whether all extensions needs to be built'
65+
default: '1'
6366
bundle_static_lib_mode:
6467
description: 'Build the default bundled extensions to publish the static libs'
65-
default: 0
68+
default: '0'
6669
osx_universal:
6770
description: 'Build Universal Binary for OSX'
68-
default: 0
71+
default: '0'
6972
osx_arch:
7073
description: 'Build specific architecture for OSX'
7174
default: ''
7275
aarch64_cross_compile:
7376
description: 'Enable Linux aarch64 cross-compiling'
74-
default: 0
77+
default: '0'
7578
vcpkg_target_triplet:
7679
description: 'Target triplet for installing vcpkg dependencies'
7780
default: ''
@@ -100,17 +103,18 @@ runs:
100103
echo "EXTENSION_CONFIGS=$EXTENSION_CONFIGS" >> $GITHUB_ENV
101104
102105
- name: Setup vcpkg
103-
if: inputs.vcpkg_build == 1
106+
if: ${{ inputs.vcpkg_build == 1 }}
104107
uses: lukka/[email protected]
105108
with:
106-
vcpkgGitCommitId: 5e5d0e1cd7785623065e77eff011afdeec1a3574
109+
vcpkgGitCommitId: ce613c41372b23b1f51333815feb3edd87ef8a8b
107110

108111
- name: Set vcpkg env variables
109-
if: inputs.vcpkg_build == 1
112+
if: ${{ inputs.vcpkg_build == 1 }}
110113
shell: bash
111114
run: |
112115
echo "VCPKG_TOOLCHAIN_PATH=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" >> $GITHUB_ENV
113116
echo "VCPKG_TARGET_TRIPLET=${{ inputs.vcpkg_target_triplet }}" >> $GITHUB_ENV
117+
echo "BUILD_COMPLETE_EXTENSION_SET=${{ inputs.build_complete_extensions_set }}" >> $GITHUB_ENV
114118
115119
- name: workaround for https://github.com/duckdb/duckdb/issues/8360
116120
if: inputs.vcpkg_target_triplet == 'x64-windows-static-md'
@@ -130,7 +134,7 @@ runs:
130134
echo "OPENSSL_ROOT_DIR=${{ inputs.openssl_path }}" >> $GITHUB_ENV
131135
132136
- name: Create combined vcpkg manifest
133-
if: inputs.vcpkg_build == 1 && inputs.build_out_of_tree_extensions == 1
137+
if: ${{ inputs.vcpkg_build == '1' && inputs.build_out_of_tree_extensions == '1' }}
134138
shell: bash
135139
run: |
136140
make extension_configuration
@@ -150,6 +154,7 @@ runs:
150154
LOCAL_EXTENSION_REPO: ${{ inputs.run_autoload_tests == 1 && github.workspace || ''}}
151155
GEN: ${{ inputs.ninja == 1 && 'ninja' || '' }}
152156
USE_MERGED_VCPKG_MANIFEST: 1
157+
# TODO we should no longer override this but we should probably check that it is what we expect
153158
DUCKDB_PLATFORM: ${{ inputs.duckdb_arch }}
154159
CMAKE_VARS_BUILD: ${{ inputs.cmake_flags }}
155160

@@ -169,7 +174,7 @@ runs:
169174
# - statically linked extensions are disable on startup but a sqlogictest require will call their load function
170175
# - loadable-only extensions have their loadable extension loaded with the LOAD statement on a sqlogictest require
171176
- name: Test statically linked extensions
172-
if: ${{ inputs.run_tests == 1 && inputs.no_static_linking == 0}}
177+
if: ${{ inputs.run_tests == '1' && inputs.no_static_linking == '0' }}
173178
shell: bash
174179
run: |
175180
${{ inputs.unittest_script }}
@@ -179,19 +184,19 @@ runs:
179184
shell: bash
180185
run: |
181186
ls
182-
cd ${{ inputs.build_dir}}
187+
cd ${{ inputs.build_dir }}
183188
${{ inputs.post_install }}
184189
185190
# The reason we need to rebuild is we need to test auto-loading extensions: this is only possible without the other
186191
# extensions linked
187192
- name: Rebuild DuckDB without any extensions, but with all extension tests
188-
if: ${{ inputs.run_autoload_tests == 1 }}
193+
if: ${{ inputs.run_autoload_tests == '1' }}
189194
shell: bash
190195
env:
191196
EXTENSION_TESTS_ONLY: 1
192197
ENABLE_EXTENSION_AUTOLOADING: 1
193198
ENABLE_EXTENSION_AUTOINSTALL: 1
194-
GEN: ${{ inputs.ninja == 1 && 'ninja' || '' }}
199+
GEN: ${{ inputs.ninja == '1' && 'ninja' || '' }}
195200
USE_MERGED_VCPKG_MANIFEST: 1
196201
run: |
197202
cd ${{ inputs.build_dir}}
@@ -202,10 +207,11 @@ runs:
202207
203208
# Run all unittests (including the out-of-tree tests) without any extensions linked, relying on the autoloader
204209
- name: Run tests with auto loading
205-
if: ${{ inputs.run_autoload_tests == 1 }}
210+
if: ${{ inputs.run_autoload_tests == '1' }}
206211
shell: bash
207212
env:
208-
LOCAL_EXTENSION_REPO: ${{ inputs.run_autoload_tests == 1 && github.workspace || ''}}
213+
LOCAL_EXTENSION_REPO: ${{ inputs.run_autoload_tests == '1' && github.workspace || ''}}
214+
DUCKDB_TEST_DESCRIPTION: 'Extension autoloading tests. All `require` calls are ignored and auto-loading is tested. Use require no_extension_autoloading in the test to skip tests.'
209215
run: |
210216
cd ${{ inputs.build_dir}}
211217
python3 scripts/get_test_list.py --file-contains 'require ' --list '"*.test"' > test.list

.github/actions/build_extensions_dockerized/action.yml

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ inputs:
44
# Build config
55
run_tests:
66
description: 'Run extension tests after build'
7-
default: 1
7+
default: 'true'
88
duckdb_arch:
99
description: 'Provide DUCKDB_PLATFORM to build system for cross compilation'
1010
default: ''
@@ -14,6 +14,12 @@ inputs:
1414
override_git_describe:
1515
description: 'Override git describe'
1616
default: ''
17+
build_complete_extensions_set:
18+
description: 'Whether all extensions needs to be built'
19+
default: '1'
20+
save_cache:
21+
description: 'Should cache be saved'
22+
default: '1'
1723

1824
runs:
1925
using: "composite"
@@ -44,7 +50,7 @@ runs:
4450
run: |
4551
docker build \
4652
--build-arg 'vcpkg_url=https://github.com/microsoft/vcpkg.git' \
47-
--build-arg 'vcpkg_commit=5e5d0e1cd7785623065e77eff011afdeec1a3574' \
53+
--build-arg 'vcpkg_commit=ce613c41372b23b1f51333815feb3edd87ef8a8b' \
4854
--build-arg 'extra_toolchains=;python3;' \
4955
-t duckdb/${{ inputs.duckdb_arch }} \
5056
./extension-ci-tools/docker/${{ inputs.duckdb_arch }}
@@ -58,27 +64,25 @@ runs:
5864
echo "OPENSSL_ROOT_DIR=/duckdb_build_dir/build/release/vcpkg_installed/${{ inputs.vcpkg_target_triplet }}" >> docker_env.txt
5965
echo "OPENSSL_DIR=/duckdb_build_dir/build/release/vcpkg_installed/${{ inputs.vcpkg_target_triplet }}" >> docker_env.txt
6066
echo "OPENSSL_USE_STATIC_LIBS=true" >> docker_env.txt
67+
# TODO this should also turn into a check
6168
echo "DUCKDB_PLATFORM=${{ inputs.duckdb_arch }}" >> docker_env.txt
6269
echo "OVERRIDE_GIT_DESCRIBE=${{ inputs.override_git_describe }}" >> docker_env.txt
6370
echo "LINUX_CI_IN_DOCKER=1" >> docker_env.txt
64-
echo "TOOLCHAIN_FLAGS=${{ inputs.duckdb_arch == 'linux_arm64' && '-DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_Fortran_COMPILER=aarch64-linux-gnu-gfortran' || '' }}" >> docker_env.txt
65-
echo "CC=${{ inputs.duckdb_arch == 'linux_arm64' && 'aarch64-linux-gnu-gcc' || '' }}" >> docker_env.txt
66-
echo "CXX=${{ inputs.duckdb_arch == 'linux_arm64' && 'aarch64-linux-gnu-g++' || '' }}" >> docker_env.txt
71+
echo "BUILD_COMPLETE_EXTENSION_SET=${{ inputs.build_complete_extensions_set }}" >> docker_env.txt
6772
6873
- name: Generate timestamp for Ccache entry
69-
shell: cmake -P {0}
74+
shell: bash
7075
id: ccache_timestamp
7176
run: |
72-
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
73-
message("::set-output name=timestamp::${current_date}")
77+
date --utc +'timestamp=%Y-%m-%d-%H;%M;%S' >> "$GITHUB_OUTPUT"
7478
7579
- name: Create Ccache directory
7680
shell: bash
7781
run: |
7882
mkdir ccache_dir
7983
8084
- name: Load Ccache
81-
uses: actions/cache@v4
85+
uses: actions/cache/restore@v4
8286
with:
8387
path: ./ccache_dir
8488
key: ccache-extension-distribution-${{ inputs.duckdb_arch }}-${{ steps.ccache_timestamp.outputs.timestamp }}
@@ -95,8 +99,15 @@ runs:
9599
run: |
96100
docker run --env-file=docker_env.txt -v `pwd`:/duckdb_build_dir -v `pwd`/ccache_dir:/ccache_dir duckdb/${{ inputs.duckdb_arch }} make release
97101
102+
- name: Save Ccache
103+
if: ${{ inputs.save_cache == '1' }}
104+
uses: actions/cache/save@v4
105+
with:
106+
path: ./ccache_dir
107+
key: ccache-extension-distribution-${{ inputs.duckdb_arch }}-${{ steps.ccache_timestamp.outputs.timestamp }}
108+
98109
- name: Test extension (inside docker)
99110
shell: bash
100-
if: ${{ inputs.run_tests == 1 && inputs.duckdb_arch != 'linux_arm64'}}
111+
if: ${{ inputs.run_tests == 'true' && inputs.duckdb_arch != 'linux_arm64'}}
101112
run: |
102113
docker run --env-file=docker_env.txt -v `pwd`:/duckdb_build_dir -v `pwd`/ccache_dir:/ccache_dir duckdb/${{ inputs.duckdb_arch }} make test_release

.github/actions/manylinux_2014_setup/action.yml

Lines changed: 0 additions & 111 deletions
This file was deleted.

.github/config/distribution_matrix.json

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,12 @@
33
"include": [
44
{
55
"duckdb_arch": "linux_amd64",
6-
"container": "ubuntu:18.04",
7-
"vcpkg_triplet": "x64-linux"
8-
},
9-
{
10-
"duckdb_arch": "linux_amd64_gcc4",
11-
"container": "quay.io/pypa/manylinux2014_x86_64",
6+
"container": "quay.io/pypa/manylinux_2_28_x86_64",
127
"vcpkg_triplet": "x64-linux"
138
},
149
{
1510
"duckdb_arch": "linux_arm64",
16-
"container": "ubuntu:18.04",
11+
"container": "quay.io/pypa/manylinux_2_28_aarch64",
1712
"vcpkg_triplet": "arm64-linux"
1813
},
1914
{

0 commit comments

Comments
 (0)