Skip to content

Commit aa5aca2

Browse files
authored
Merge branch 'main' into lia/add-expressions-function-physical-plan
2 parents fc488b2 + e80694e commit aa5aca2

File tree

193 files changed

+11619
-2221
lines changed

Some content is hidden

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

193 files changed

+11619
-2221
lines changed

.github/dependabot.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,23 @@ updates:
4545
patterns:
4646
- "prost*"
4747
- "pbjson*"
48+
49+
# Catch-all: group only minor/patch into a single PR,
50+
# excluding deps we want always separate (and excluding arrow/parquet which have their own group)
51+
all-other-cargo-deps:
52+
applies-to: version-updates
53+
patterns:
54+
- "*"
55+
exclude-patterns:
56+
- "arrow*"
57+
- "parquet"
58+
- "object_store"
59+
- "sqlparser"
60+
- "prost*"
61+
- "pbjson*"
62+
update-types:
63+
- "minor"
64+
- "patch"
4865
- package-ecosystem: "github-actions"
4966
directory: "/"
5067
schedule:

.github/workflows/audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
steps:
4343
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4444
- name: Install cargo-audit
45-
uses: taiki-e/install-action@1e67dedb5e3c590e1c9d9272ace46ef689da250d # v2.67.27
45+
uses: taiki-e/install-action@cfdb446e391c69574ebc316dfb7d7849ec12b940 # v2.68.8
4646
with:
4747
tool: cargo-audit
4848
- name: Run audit check

.github/workflows/docs.yaml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,11 @@ jobs:
4040
ref: asf-site
4141
path: asf-site
4242

43-
- name: Setup Python
44-
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
45-
with:
46-
python-version: "3.12"
43+
- name: Setup uv
44+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
4745

4846
- name: Install dependencies
49-
run: |
50-
set -x
51-
python3 -m venv venv
52-
source venv/bin/activate
53-
pip install -r docs/requirements.txt
47+
run: uv sync --package datafusion-docs
5448
- name: Install dependency graph tooling
5549
run: |
5650
set -x
@@ -61,9 +55,8 @@ jobs:
6155
- name: Build docs
6256
run: |
6357
set -x
64-
source venv/bin/activate
6558
cd docs
66-
./build.sh
59+
uv run --package datafusion-docs ./build.sh
6760
6861
- name: Copy & push the generated HTML
6962
run: |

.github/workflows/docs_pr.yaml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,10 @@ jobs:
4444
with:
4545
submodules: true
4646
fetch-depth: 1
47-
- name: Setup Python
48-
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
49-
with:
50-
python-version: "3.12"
47+
- name: Setup uv
48+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
5149
- name: Install doc dependencies
52-
run: |
53-
set -x
54-
python3 -m venv venv
55-
source venv/bin/activate
56-
pip install -r docs/requirements.txt
50+
run: uv sync --package datafusion-docs
5751
- name: Install dependency graph tooling
5852
run: |
5953
set -x
@@ -63,6 +57,5 @@ jobs:
6357
- name: Build docs html and check for warnings
6458
run: |
6559
set -x
66-
source venv/bin/activate
6760
cd docs
68-
./build.sh # fails on errors
61+
uv run --package datafusion-docs ./build.sh # fails on errors

.github/workflows/extended.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,10 @@ jobs:
6666
# Check crate compiles and base cargo check passes
6767
linux-build-lib:
6868
name: linux build test
69-
runs-on: ubuntu-latest
69+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=8,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
7070
# note: do not use amd/rust container to preserve disk space
7171
steps:
72+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
7273
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7374
with:
7475
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -80,7 +81,9 @@ jobs:
8081
source $HOME/.cargo/env
8182
rustup toolchain install
8283
- name: Install Protobuf Compiler
83-
run: sudo apt-get install -y protobuf-compiler
84+
run: |
85+
sudo apt-get update
86+
sudo apt-get install -y protobuf-compiler
8487
- name: Prepare cargo build
8588
run: |
8689
cargo check --profile ci --all-targets
@@ -90,9 +93,11 @@ jobs:
9093
linux-test-extended:
9194
name: cargo test 'extended_tests' (amd64)
9295
needs: [linux-build-lib]
93-
runs-on: ubuntu-latest
96+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=32,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion,spot=false', github.run_id) || 'ubuntu-latest' }}
97+
# spot=false because the tests are long, https://runs-on.com/configuration/spot-instances/#disable-spot-pricing
9498
# note: do not use amd/rust container to preserve disk space
9599
steps:
100+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
96101
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
97102
with:
98103
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -106,7 +111,9 @@ jobs:
106111
source $HOME/.cargo/env
107112
rustup toolchain install
108113
- name: Install Protobuf Compiler
109-
run: sudo apt-get install -y protobuf-compiler
114+
run: |
115+
sudo apt-get update
116+
sudo apt-get install -y protobuf-compiler
110117
# For debugging, test binaries can be large.
111118
- name: Show available disk space
112119
run: |
@@ -133,10 +140,11 @@ jobs:
133140
# Check answers are correct when hash values collide
134141
hash-collisions:
135142
name: cargo test hash collisions (amd64)
136-
runs-on: ubuntu-latest
143+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
137144
container:
138145
image: amd64/rust
139146
steps:
147+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
140148
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
141149
with:
142150
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -154,10 +162,12 @@ jobs:
154162
155163
sqllogictest-sqlite:
156164
name: "Run sqllogictests with the sqlite test suite"
157-
runs-on: ubuntu-latest
165+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=48,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion,spot=false', github.run_id) || 'ubuntu-latest' }}
166+
# spot=false because the tests are long, https://runs-on.com/configuration/spot-instances/#disable-spot-pricing
158167
container:
159168
image: amd64/rust
160169
steps:
170+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
161171
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
162172
with:
163173
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push

.github/workflows/labeler/labeler-config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ datasource:
6262

6363
functions:
6464
- changed-files:
65-
- any-glob-to-any-file: ['datafusion/functions/**/*', 'datafusion/functions-aggregate/**/*', 'datafusion/functions-aggregate-common', 'datafusion/functions-nested', 'datafusion/functions-table/**/*', 'datafusion/functions-window/**/*', 'datafusion/functions-window-common/**/*']
65+
- any-glob-to-any-file: ['datafusion/functions/**/*', 'datafusion/functions-aggregate/**/*', 'datafusion/functions-aggregate-common/**/*', 'datafusion/functions-nested/**/*', 'datafusion/functions-table/**/*', 'datafusion/functions-window/**/*', 'datafusion/functions-window-common/**/*']
6666

6767

6868
optimizer:

.github/workflows/rust.yml

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18+
# For some actions, we use Runs-On to run them on ASF infrastructure: https://datafusion.apache.org/contributor-guide/#ci-runners
19+
1820
name: Rust
1921

2022
concurrency:
@@ -45,7 +47,7 @@ jobs:
4547
# Check crate compiles and base cargo check passes
4648
linux-build-lib:
4749
name: linux build test
48-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m7a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
50+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=8,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
4951
container:
5052
image: amd64/rust
5153
steps:
@@ -99,7 +101,7 @@ jobs:
99101
linux-datafusion-substrait-features:
100102
name: cargo check datafusion-substrait features
101103
needs: linux-build-lib
102-
runs-on: ubuntu-latest
104+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
103105
container:
104106
image: amd64/rust
105107
steps:
@@ -136,10 +138,11 @@ jobs:
136138
linux-datafusion-proto-features:
137139
name: cargo check datafusion-proto features
138140
needs: linux-build-lib
139-
runs-on: ubuntu-latest
141+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
140142
container:
141143
image: amd64/rust
142144
steps:
145+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
143146
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
144147
- name: Setup Rust toolchain
145148
uses: ./.github/actions/setup-builder
@@ -167,10 +170,11 @@ jobs:
167170
linux-cargo-check-datafusion:
168171
name: cargo check datafusion features
169172
needs: linux-build-lib
170-
runs-on: ubuntu-latest
173+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
171174
container:
172175
image: amd64/rust
173176
steps:
177+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
174178
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
175179
- name: Setup Rust toolchain
176180
uses: ./.github/actions/setup-builder
@@ -267,7 +271,7 @@ jobs:
267271
linux-test:
268272
name: cargo test (amd64)
269273
needs: linux-build-lib
270-
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m7a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
274+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
271275
container:
272276
image: amd64/rust
273277
volumes:
@@ -318,8 +322,9 @@ jobs:
318322
linux-test-datafusion-cli:
319323
name: cargo test datafusion-cli (amd64)
320324
needs: linux-build-lib
321-
runs-on: ubuntu-latest
325+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
322326
steps:
327+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
323328
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
324329
with:
325330
submodules: true
@@ -347,10 +352,11 @@ jobs:
347352
linux-test-example:
348353
name: cargo examples (amd64)
349354
needs: linux-build-lib
350-
runs-on: ubuntu-latest
355+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
351356
container:
352357
image: amd64/rust
353358
steps:
359+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
354360
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
355361
with:
356362
submodules: true
@@ -377,10 +383,11 @@ jobs:
377383
linux-test-doc:
378384
name: cargo test doc (amd64)
379385
needs: linux-build-lib
380-
runs-on: ubuntu-latest
386+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
381387
container:
382388
image: amd64/rust
383389
steps:
390+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
384391
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
385392
with:
386393
submodules: true
@@ -398,10 +405,11 @@ jobs:
398405
linux-rustdoc:
399406
name: cargo doc
400407
needs: linux-build-lib
401-
runs-on: ubuntu-latest
408+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
402409
container:
403410
image: amd64/rust
404411
steps:
412+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
405413
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
406414
- name: Setup Rust toolchain
407415
uses: ./.github/actions/setup-builder
@@ -423,7 +431,7 @@ jobs:
423431
sudo apt-get update -qq
424432
sudo apt-get install -y -qq clang
425433
- name: Setup wasm-pack
426-
uses: taiki-e/install-action@1e67dedb5e3c590e1c9d9272ace46ef689da250d # v2.67.27
434+
uses: taiki-e/install-action@cfdb446e391c69574ebc316dfb7d7849ec12b940 # v2.68.8
427435
with:
428436
tool: wasm-pack
429437
- name: Run tests with headless mode
@@ -438,10 +446,11 @@ jobs:
438446
verify-benchmark-results:
439447
name: verify benchmark results (amd64)
440448
needs: linux-build-lib
441-
runs-on: ubuntu-latest
449+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
442450
container:
443451
image: amd64/rust
444452
steps:
453+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
445454
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
446455
with:
447456
submodules: true
@@ -471,7 +480,7 @@ jobs:
471480
sqllogictest-postgres:
472481
name: "Run sqllogictest with Postgres runner"
473482
needs: linux-build-lib
474-
runs-on: ubuntu-latest
483+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
475484
container:
476485
image: amd64/rust
477486
services:
@@ -489,6 +498,7 @@ jobs:
489498
--health-timeout 5s
490499
--health-retries 5
491500
steps:
501+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
492502
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
493503
with:
494504
submodules: true
@@ -509,10 +519,11 @@ jobs:
509519
sqllogictest-substrait:
510520
name: "Run sqllogictest in Substrait round-trip mode"
511521
needs: linux-build-lib
512-
runs-on: ubuntu-latest
522+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
513523
container:
514524
image: amd64/rust
515525
steps:
526+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
516527
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
517528
with:
518529
submodules: true
@@ -549,7 +560,7 @@ jobs:
549560

550561
macos-aarch64:
551562
name: cargo test (macos-aarch64)
552-
runs-on: macos-14
563+
runs-on: macos-15
553564
steps:
554565
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
555566
with:
@@ -639,10 +650,11 @@ jobs:
639650
clippy:
640651
name: clippy
641652
needs: linux-build-lib
642-
runs-on: ubuntu-latest
653+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
643654
container:
644655
image: amd64/rust
645656
steps:
657+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
646658
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
647659
with:
648660
submodules: true
@@ -685,10 +697,11 @@ jobs:
685697
config-docs-check:
686698
name: check configs.md and ***_functions.md is up-to-date
687699
needs: linux-build-lib
688-
runs-on: ubuntu-latest
700+
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
689701
container:
690702
image: amd64/rust
691703
steps:
704+
- uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
692705
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
693706
with:
694707
submodules: true
@@ -758,7 +771,7 @@ jobs:
758771
- name: Setup Rust toolchain
759772
uses: ./.github/actions/setup-builder
760773
- name: Install cargo-msrv
761-
uses: taiki-e/install-action@1e67dedb5e3c590e1c9d9272ace46ef689da250d # v2.67.27
774+
uses: taiki-e/install-action@cfdb446e391c69574ebc316dfb7d7849ec12b940 # v2.68.8
762775
with:
763776
tool: cargo-msrv
764777

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
issues: write
2828
pull-requests: write
2929
steps:
30-
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
30+
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
3131
with:
3232
stale-pr-message: "Thank you for your contribution. Unfortunately, this pull request is stale because it has been open 60 days with no activity. Please remove the stale label or comment or this will be closed in 7 days."
3333
days-before-pr-stale: 60

0 commit comments

Comments
 (0)