Skip to content

Commit 89307de

Browse files
authored
Merge branch 'main' into implement_additional_benchmarks_hashjoin
2 parents eff28d9 + e62f06c commit 89307de

136 files changed

Lines changed: 6732 additions & 1155 deletions

File tree

Some content is hidden

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

.asf.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,29 @@ github:
6060
- "Spell Check with Typos"
6161
- "Circular Dependency Check"
6262
- "Detect Unused Dependencies"
63+
- "linux build test"
64+
- "cargo check datafusion-common features"
65+
- "cargo check datafusion-substrait features"
66+
- "cargo check datafusion-proto features"
67+
- "cargo check datafusion features"
68+
- "cargo check datafusion-functions features"
69+
- "cargo test (amd64)"
70+
- "cargo test datafusion-cli (amd64)"
71+
- "cargo examples (amd64)"
72+
- "cargo test doc (amd64)"
73+
- "cargo doc"
74+
- "build and run with wasm-pack"
75+
- "verify benchmark results (amd64)"
76+
- "Run sqllogictest with Postgres runner"
77+
- "Run sqllogictest in Substrait round-trip mode"
78+
- "cargo test (macos-aarch64)"
79+
- "Verify Vendored Code"
80+
- "Check cargo fmt"
81+
- "clippy"
82+
- "check Cargo.toml formatting"
83+
- "check configs.md and ***_functions.md is up-to-date"
84+
- "check example README is up-to-date"
85+
- "Verify MSRV (Min Supported Rust Version)"
6386
# needs to be updated as part of the release process
6487
# .asf.yaml doesn't support wildcard branch protection rules, only exact branch names
6588
# https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#branch-protection

.github/workflows/audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
steps:
4646
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4747
- name: Install cargo-audit
48-
uses: taiki-e/install-action@481c34c1cf3a84c68b5e46f4eccfc82af798415a # v2.75.23
48+
uses: taiki-e/install-action@7ea35f098a7369cd23488403f58be9c491a6c55f # v2.77.0
4949
with:
5050
tool: cargo-audit
5151
- name: Run audit check

.github/workflows/breaking_changes_detector.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989
9090
- name: Install cargo-semver-checks
9191
if: steps.changed_crates.outputs.packages != ''
92-
uses: taiki-e/install-action@94cb46f8d6e437890146ffbd78a778b78e623fb2 # v2.74.0
92+
uses: taiki-e/install-action@7ea35f098a7369cd23488403f58be9c491a6c55f # v2.77.0
9393
with:
9494
tool: cargo-semver-checks
9595

.github/workflows/codeql.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ jobs:
4545
persist-credentials: false
4646

4747
- name: Initialize CodeQL
48-
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
48+
uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
4949
with:
5050
languages: actions
5151

5252
- name: Perform CodeQL Analysis
53-
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
53+
uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
5454
with:
5555
category: "/language:actions"

.github/workflows/dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
source ci/scripts/utils/tool_versions.sh
6565
echo "LYCHEE_VERSION=${LYCHEE_VERSION}" >> "$GITHUB_ENV"
6666
- name: Install lychee
67-
uses: taiki-e/install-action@481c34c1cf3a84c68b5e46f4eccfc82af798415a # v2.75.23
67+
uses: taiki-e/install-action@7ea35f098a7369cd23488403f58be9c491a6c55f # v2.77.0
6868
with:
6969
tool: lychee@${{ env.LYCHEE_VERSION }}
7070
- name: Run markdown link check

.github/workflows/extended.yml

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -57,38 +57,10 @@ permissions:
5757
checks: write
5858

5959
jobs:
60-
61-
# Check crate compiles and base cargo check passes
62-
linux-build-lib:
63-
name: linux build test
64-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=8,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
65-
# note: do not use amd/rust container to preserve disk space
66-
steps:
67-
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
68-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
69-
with:
70-
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
71-
submodules: true
72-
fetch-depth: 1
73-
- name: Install Rust
74-
run: |
75-
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
76-
source $HOME/.cargo/env
77-
rustup toolchain install
78-
- name: Install Protobuf Compiler
79-
run: |
80-
sudo apt-get update
81-
sudo apt-get install -y protobuf-compiler
82-
- name: Prepare cargo build
83-
run: |
84-
cargo check --profile ci --all-targets
85-
cargo clean
86-
8760
# Run extended tests (with feature 'extended_tests')
8861
linux-test-extended:
8962
name: cargo test 'extended_tests' (amd64)
90-
needs: [linux-build-lib]
91-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=32,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
63+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=32,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
9264
# note: do not use amd/rust container to preserve disk space
9365
steps:
9466
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
@@ -134,7 +106,7 @@ jobs:
134106
# Check answers are correct when hash values collide
135107
hash-collisions:
136108
name: cargo test hash collisions (amd64)
137-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
109+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
138110
container:
139111
image: amd64/rust
140112
steps:
@@ -156,7 +128,7 @@ jobs:
156128
157129
sqllogictest-sqlite:
158130
name: "Run sqllogictests with the sqlite test suite"
159-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=32,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
131+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=32,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
160132
container:
161133
image: amd64/rust
162134
steps:

.github/workflows/rust.yml

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,11 @@ on:
3333
- ".github/ISSUE_TEMPLATE/**"
3434
- ".github/pull_request_template.md"
3535
pull_request:
36-
paths-ignore:
37-
- "docs/**"
38-
- "**.md"
39-
- ".github/ISSUE_TEMPLATE/**"
40-
- ".github/pull_request_template.md"
4136
# manual trigger
4237
# https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
4338
workflow_dispatch:
39+
merge_group:
40+
4441

4542
permissions:
4643
contents: read
@@ -49,7 +46,7 @@ jobs:
4946
# Check crate compiles and base cargo check passes
5047
linux-build-lib:
5148
name: linux build test
52-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=8,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
49+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=8,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
5350
container:
5451
image: amd64/rust
5552
steps:
@@ -103,7 +100,7 @@ jobs:
103100
linux-datafusion-substrait-features:
104101
name: cargo check datafusion-substrait features
105102
needs: linux-build-lib
106-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
103+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
107104
container:
108105
image: amd64/rust
109106
steps:
@@ -140,7 +137,7 @@ jobs:
140137
linux-datafusion-proto-features:
141138
name: cargo check datafusion-proto features
142139
needs: linux-build-lib
143-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
140+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
144141
container:
145142
image: amd64/rust
146143
steps:
@@ -172,7 +169,7 @@ jobs:
172169
linux-cargo-check-datafusion:
173170
name: cargo check datafusion features
174171
needs: linux-build-lib
175-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
172+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
176173
container:
177174
image: amd64/rust
178175
steps:
@@ -273,7 +270,7 @@ jobs:
273270
linux-test:
274271
name: cargo test (amd64)
275272
needs: linux-build-lib
276-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
273+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
277274
container:
278275
image: amd64/rust
279276
volumes:
@@ -301,7 +298,6 @@ jobs:
301298
--profile ci \
302299
--exclude datafusion-examples \
303300
--exclude ffi_example_table_provider \
304-
--exclude datafusion-benchmarks \
305301
--exclude datafusion-cli \
306302
--workspace \
307303
--lib \
@@ -324,7 +320,7 @@ jobs:
324320
linux-test-datafusion-cli:
325321
name: cargo test datafusion-cli (amd64)
326322
needs: linux-build-lib
327-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
323+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
328324
steps:
329325
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
330326
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -354,7 +350,7 @@ jobs:
354350
linux-test-example:
355351
name: cargo examples (amd64)
356352
needs: linux-build-lib
357-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
353+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
358354
container:
359355
image: amd64/rust
360356
steps:
@@ -385,7 +381,7 @@ jobs:
385381
linux-test-doc:
386382
name: cargo test doc (amd64)
387383
needs: linux-build-lib
388-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
384+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
389385
container:
390386
image: amd64/rust
391387
steps:
@@ -407,7 +403,7 @@ jobs:
407403
linux-rustdoc:
408404
name: cargo doc
409405
needs: linux-build-lib
410-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
406+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
411407
container:
412408
image: amd64/rust
413409
steps:
@@ -433,7 +429,7 @@ jobs:
433429
sudo apt-get update -qq
434430
sudo apt-get install -y -qq clang
435431
- name: Setup wasm-pack
436-
uses: taiki-e/install-action@481c34c1cf3a84c68b5e46f4eccfc82af798415a # v2.75.23
432+
uses: taiki-e/install-action@7ea35f098a7369cd23488403f58be9c491a6c55f # v2.77.0
437433
with:
438434
tool: wasm-pack
439435
- name: Run tests with headless mode
@@ -448,7 +444,7 @@ jobs:
448444
verify-benchmark-results:
449445
name: verify benchmark results (amd64)
450446
needs: linux-build-lib
451-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
447+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
452448
container:
453449
image: amd64/rust
454450
steps:
@@ -482,7 +478,7 @@ jobs:
482478
sqllogictest-postgres:
483479
name: "Run sqllogictest with Postgres runner"
484480
needs: linux-build-lib
485-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
481+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
486482
container:
487483
image: amd64/rust
488484
services:
@@ -521,7 +517,7 @@ jobs:
521517
sqllogictest-substrait:
522518
name: "Run sqllogictest in Substrait round-trip mode"
523519
needs: linux-build-lib
524-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
520+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
525521
container:
526522
image: amd64/rust
527523
steps:
@@ -560,6 +556,11 @@ jobs:
560556
# export PATH=$PATH:$HOME/d/protoc/bin
561557
# cargo test --lib --tests --bins --features avro,json,backtrace
562558

559+
# macOS scope is narrowed to `datafusion-ffi`: the only bug class amd64
560+
# cannot reproduce is FFI cdylib loading (`.dylib` vs `.so` resolution in
561+
# datafusion/ffi/src/tests/utils.rs). All other macos-only failures
562+
# historically came from datafusion-benchmarks (now covered on amd64) or
563+
# flaky sqllogictest metrics.
563564
macos-aarch64:
564565
name: cargo test (macos-aarch64)
565566
runs-on: macos-15
@@ -570,9 +571,9 @@ jobs:
570571
fetch-depth: 1
571572
- name: Setup Rust toolchain
572573
uses: ./.github/actions/setup-macos-aarch64-builder
573-
- name: Run tests (excluding doctests)
574+
- name: Run datafusion-ffi tests
574575
shell: bash
575-
run: cargo test --profile ci --exclude datafusion-cli --workspace --lib --tests --bins --features avro,json,backtrace,integration-tests,substrait
576+
run: cargo test --profile ci -p datafusion-ffi --lib --tests --features integration-tests
576577

577578
vendor:
578579
name: Verify Vendored Code
@@ -652,7 +653,7 @@ jobs:
652653
clippy:
653654
name: clippy
654655
needs: linux-build-lib
655-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
656+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
656657
container:
657658
image: amd64/rust
658659
steps:
@@ -699,7 +700,7 @@ jobs:
699700
config-docs-check:
700701
name: check configs.md and ***_functions.md is up-to-date
701702
needs: linux-build-lib
702-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
703+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
703704
container:
704705
image: amd64/rust
705706
steps:
@@ -773,7 +774,7 @@ jobs:
773774
- name: Setup Rust toolchain
774775
uses: ./.github/actions/setup-builder
775776
- name: Install cargo-msrv
776-
uses: taiki-e/install-action@481c34c1cf3a84c68b5e46f4eccfc82af798415a # v2.75.23
777+
uses: taiki-e/install-action@7ea35f098a7369cd23488403f58be9c491a6c55f # v2.77.0
777778
with:
778779
tool: cargo-msrv
779780

0 commit comments

Comments
 (0)