Skip to content

Commit 22718b8

Browse files
authored
Merge branch 'main' into approx-percentile-fixes
2 parents 277ef8b + c17c87c commit 22718b8

1,248 files changed

Lines changed: 106433 additions & 29142 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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ github:
5151
main:
5252
required_pull_request_reviews:
5353
required_approving_review_count: 1
54+
required_status_checks:
55+
contexts:
56+
- "Check License Header"
57+
- "Use prettier to check formatting of documents"
58+
- "Validate required_status_checks in .asf.yaml"
59+
- "Spell Check with Typos"
5460
# needs to be updated as part of the release process
5561
# .asf.yaml doesn't support wildcard branch protection rules, only exact branch names
5662
# https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#branch-protection
@@ -69,6 +75,8 @@ github:
6975
# enable updating head branches of pull requests
7076
allow_update_branch: true
7177
allow_auto_merge: true
78+
# auto-delete head branches after being merged
79+
del_branch_on_merge: true
7280

7381
# publishes the content of the `asf-site` branch to
7482
# https://datafusion.apache.org/

.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: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ jobs:
4242
steps:
4343
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4444
- name: Install cargo-audit
45-
uses: taiki-e/install-action@542cebaaed782771e619bd5609d97659d109c492 # v2.66.7
45+
uses: taiki-e/install-action@6ef672efc2b5aabc787a9e94baf4989aa02a97df # v2.70.3
4646
with:
4747
tool: cargo-audit
4848
- name: Run audit check
4949
# Note: you can ignore specific RUSTSEC issues using the `--ignore` flag ,for example:
5050
# run: cargo audit --ignore RUSTSEC-2026-0001
51-
run: cargo audit
51+
run: cargo audit --ignore RUSTSEC-2024-0014

.github/workflows/codeql.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
#
18+
19+
name: "CodeQL"
20+
21+
on:
22+
push:
23+
branches: [ "main" ]
24+
pull_request:
25+
branches: [ "main" ]
26+
schedule:
27+
- cron: '16 4 * * 1'
28+
29+
permissions:
30+
contents: read
31+
32+
jobs:
33+
analyze:
34+
name: Analyze Actions
35+
runs-on: ubuntu-slim
36+
permissions:
37+
contents: read
38+
security-events: write
39+
packages: read
40+
41+
steps:
42+
- name: Checkout repository
43+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
44+
with:
45+
persist-credentials: false
46+
47+
- name: Initialize CodeQL
48+
uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4
49+
with:
50+
languages: actions
51+
52+
- name: Perform CodeQL Analysis
53+
uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4
54+
with:
55+
category: "/language:actions"

.github/workflows/dev.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141

4242
prettier:
4343
name: Use prettier to check formatting of documents
44-
runs-on: ubuntu-latest
44+
runs-on: ubuntu-slim
4545
steps:
4646
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4747
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
@@ -51,6 +51,14 @@ jobs:
5151
# if you encounter error, see instructions inside the script
5252
run: ci/scripts/doc_prettier_check.sh
5353

54+
asf-yaml-check:
55+
name: Validate required_status_checks in .asf.yaml
56+
runs-on: ubuntu-latest
57+
steps:
58+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
59+
- run: pip install pyyaml
60+
- run: python3 ci/scripts/check_asf_yaml_status_checks.py
61+
5462
typos:
5563
name: Spell Check with Typos
5664
runs-on: ubuntu-latest

.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@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.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@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.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: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,10 @@ on:
4444
- 'datafusion/physical*/**/*.rs'
4545
- 'datafusion/expr*/**/*.rs'
4646
- 'datafusion/optimizer/**/*.rs'
47+
- 'datafusion/sql/**/*.rs'
4748
- 'datafusion-testing'
4849
workflow_dispatch:
4950
inputs:
50-
pr_number:
51-
description: 'Pull request number'
52-
type: string
53-
check_run_id:
54-
description: 'Check run ID for status updates'
55-
type: string
5651
pr_head_sha:
5752
description: 'PR head SHA'
5853
type: string
@@ -66,9 +61,10 @@ jobs:
6661
# Check crate compiles and base cargo check passes
6762
linux-build-lib:
6863
name: linux build test
69-
runs-on: ubuntu-latest
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' }}
7065
# note: do not use amd/rust container to preserve disk space
7166
steps:
67+
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
7268
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7369
with:
7470
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -80,7 +76,9 @@ jobs:
8076
source $HOME/.cargo/env
8177
rustup toolchain install
8278
- name: Install Protobuf Compiler
83-
run: sudo apt-get install -y protobuf-compiler
79+
run: |
80+
sudo apt-get update
81+
sudo apt-get install -y protobuf-compiler
8482
- name: Prepare cargo build
8583
run: |
8684
cargo check --profile ci --all-targets
@@ -90,9 +88,10 @@ jobs:
9088
linux-test-extended:
9189
name: cargo test 'extended_tests' (amd64)
9290
needs: [linux-build-lib]
93-
runs-on: ubuntu-latest
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' }}
9492
# note: do not use amd/rust container to preserve disk space
9593
steps:
94+
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
9695
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
9796
with:
9897
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -106,7 +105,9 @@ jobs:
106105
source $HOME/.cargo/env
107106
rustup toolchain install
108107
- name: Install Protobuf Compiler
109-
run: sudo apt-get install -y protobuf-compiler
108+
run: |
109+
sudo apt-get update
110+
sudo apt-get install -y protobuf-compiler
110111
# For debugging, test binaries can be large.
111112
- name: Show available disk space
112113
run: |
@@ -133,10 +134,11 @@ jobs:
133134
# Check answers are correct when hash values collide
134135
hash-collisions:
135136
name: cargo test hash collisions (amd64)
136-
runs-on: ubuntu-latest
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' }}
137138
container:
138139
image: amd64/rust
139140
steps:
141+
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
140142
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
141143
with:
142144
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -154,24 +156,20 @@ jobs:
154156
155157
sqllogictest-sqlite:
156158
name: "Run sqllogictests with the sqlite test suite"
157-
runs-on: ubuntu-latest
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' }}
158160
container:
159161
image: amd64/rust
160162
steps:
163+
- uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
161164
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
162165
with:
163166
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
164167
submodules: true
165168
fetch-depth: 1
166-
- name: Setup Rust toolchain
167-
uses: ./.github/actions/setup-builder
168-
with:
169-
rust-version: stable
169+
# Don't use setup-builder to avoid configuring RUST_BACKTRACE which is expensive
170+
- name: Install protobuf compiler
171+
run: |
172+
apt-get update && apt-get install -y protobuf-compiler
170173
- name: Run sqllogictest
171174
run: |
172-
cargo test --features backtrace,parquet_encryption --profile release-nonlto --test sqllogictests -- --include-sqlite
173-
cargo clean
174-
175-
176-
177-
175+
cargo test --features backtrace,parquet_encryption --profile ci-optimized --test sqllogictests -- --include-sqlite

.github/workflows/labeler.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,14 @@ on:
3131
jobs:
3232
process:
3333
name: Process
34-
runs-on: ubuntu-latest
34+
runs-on: ubuntu-slim
3535
# only run for users whose permissions allow them to update PRs
3636
# otherwise labeler is failing:
3737
# https://github.com/apache/datafusion/issues/3743
3838
permissions:
3939
contents: read
4040
pull-requests: write
4141
steps:
42-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
43-
4442
- name: Assign GitHub labels
4543
if: |
4644
github.event_name == 'pull_request_target' &&

.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:

0 commit comments

Comments
 (0)