Skip to content

Enable more clippy lints - #24848

Open
emilk wants to merge 8 commits into
apache:mainfrom
emilk:emilk/enable-more-clippy-lints-4
Open

Enable more clippy lints#24848
emilk wants to merge 8 commits into
apache:mainfrom
emilk:emilk/enable-more-clippy-lints-4

Conversation

@emilk

@emilk emilk commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

Continuing the work in:

Turn on more clippy::pedantic lints from the opt-out list in Cargo.toml.

What changes are included in this PR?

One commit per lint, each removing its "allow" line from Cargo.toml and
fixing every site. Review one commit at a time!

Let me know if you disagree with any and I'll revert it.

Lint Sites Fix
manual_string_new 84 String::new() instead of "".to_string() / "".to_owned() / "".into()
ignored_unit_patterns 52 Ok(()) instead of Ok(_), so the pattern stops matching if a payload is ever added
redundant_else 48 dropped else after a diverging branch
unnested_or_patterns 68 Time32(Microsecond | Nanosecond) instead of repeating the prefix
match_bool 46 if/else instead of match on a bool
missing_fields_in_debug 29 finish_non_exhaustive() on manual Debug impls that skip a field
if_not_else 141 positive condition first, so the reader does not have to negate mentally

What is the testing strategy for this PR?

Clippy is clean both with --all-features and with default features (the latter
is what caught the cfg-gated site). The extended suite passes: 69 test
binaries, 10999 tests. The changes are mechanical, so no new tests.

Are there any user-facing changes?

No

`String::new()` instead of `"".to_string()` / `"".to_owned()` / `"".into()`,
which skips the copy-from-empty-slice path. All sites fixed by
`cargo clippy --fix`.
@github-actions github-actions Bot added sql SQL Planner logical-expr Logical plan and expressions physical-expr Changes to the physical-expr crates optimizer Optimizer rules core Core DataFusion crate substrait Changes to the substrait crate catalog Related to the catalog crate common Related to common crate execution Related to the execution crate proto Related to proto crate functions Changes to functions implementation datasource Changes to the datasource crate ffi Changes to the ffi crate physical-plan Changes to the physical-plan crate spark labels Sep 1, 2026
@emilk
emilk force-pushed the emilk/enable-more-clippy-lints-4 branch from c24d083 to c866451 Compare September 1, 2026 12:46
`Ok(())` instead of `Ok(_)` where the payload is `()`, so the pattern stops
matching silently if the type ever gains a payload.
Dropped `else` blocks after a branch that already diverges, removing one
level of indentation at each site.
Nested the or-patterns, e.g.
`Time32(Microsecond) | Time32(Nanosecond)` -> `Time32(Microsecond | Nanosecond)`,
so the shared prefix is written once.
`if`/`else` instead of `match` on a bool. Two sites cascaded into
`redundant_else`, fixed in the same commit.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Thank you for opening this pull request!

Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).

Details
     Cloning apache/main
    Building datafusion v55.0.0 (current)
       Built [  56.416s] (current)
     Parsing datafusion v55.0.0 (current)
      Parsed [   0.032s] (current)
    Building datafusion v55.0.0 (baseline)
       Built [  56.404s] (baseline)
     Parsing datafusion v55.0.0 (baseline)
      Parsed [   0.033s] (baseline)
    Checking datafusion v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.818s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 116.234s] datafusion
    Building datafusion-catalog v55.0.0 (current)
       Built [  39.325s] (current)
     Parsing datafusion-catalog v55.0.0 (current)
      Parsed [   0.024s] (current)
    Building datafusion-catalog v55.0.0 (baseline)
       Built [  39.232s] (baseline)
     Parsing datafusion-catalog v55.0.0 (baseline)
      Parsed [   0.023s] (baseline)
    Checking datafusion-catalog v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.150s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  79.885s] datafusion-catalog
    Building datafusion-catalog-listing v55.0.0 (current)
       Built [  39.318s] (current)
     Parsing datafusion-catalog-listing v55.0.0 (current)
      Parsed [   0.011s] (current)
    Building datafusion-catalog-listing v55.0.0 (baseline)
       Built [  39.906s] (baseline)
     Parsing datafusion-catalog-listing v55.0.0 (baseline)
      Parsed [   0.012s] (baseline)
    Checking datafusion-catalog-listing v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.113s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  80.446s] datafusion-catalog-listing
    Building datafusion-cli v55.0.0 (current)
       Built [  90.133s] (current)
     Parsing datafusion-cli v55.0.0 (current)
      Parsed [   0.032s] (current)
    Building datafusion-cli v55.0.0 (baseline)
       Built [  91.265s] (baseline)
     Parsing datafusion-cli v55.0.0 (baseline)
      Parsed [   0.031s] (baseline)
    Checking datafusion-cli v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.157s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 184.656s] datafusion-cli
    Building datafusion-common v55.0.0 (current)
       Built [  31.923s] (current)
     Parsing datafusion-common v55.0.0 (current)
      Parsed [   0.061s] (current)
    Building datafusion-common v55.0.0 (baseline)
       Built [  32.178s] (baseline)
     Parsing datafusion-common v55.0.0 (baseline)
      Parsed [   0.061s] (baseline)
    Checking datafusion-common v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.927s] 223 checks: 222 pass, 1 fail, 0 warn, 31 skip

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/function_missing.ron

Failed in:
  function datafusion_common::stats::is_known_empty, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-apache_main/052e0d70a4b0f17d1691589fd83ae7e407d0b99e/datafusion/common/src/stats.rs:388

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  66.599s] datafusion-common
    Building datafusion-datasource v55.0.0 (current)
       Built [  42.249s] (current)
     Parsing datafusion-datasource v55.0.0 (current)
      Parsed [   0.029s] (current)
    Building datafusion-datasource v55.0.0 (baseline)
       Built [  41.830s] (baseline)
     Parsing datafusion-datasource v55.0.0 (baseline)
      Parsed [   0.032s] (baseline)
    Checking datafusion-datasource v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.380s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  85.758s] datafusion-datasource
    Building datafusion-datasource-csv v55.0.0 (current)
       Built [  42.484s] (current)
     Parsing datafusion-datasource-csv v55.0.0 (current)
      Parsed [   0.146s] (current)
    Building datafusion-datasource-csv v55.0.0 (baseline)
       Built [  42.610s] (baseline)
     Parsing datafusion-datasource-csv v55.0.0 (baseline)
      Parsed [   0.012s] (baseline)
    Checking datafusion-datasource-csv v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.142s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  86.495s] datafusion-datasource-csv
    Building datafusion-datasource-parquet v55.0.0 (current)
       Built [  47.925s] (current)
     Parsing datafusion-datasource-parquet v55.0.0 (current)
      Parsed [   0.032s] (current)
    Building datafusion-datasource-parquet v55.0.0 (baseline)
       Built [  48.276s] (baseline)
     Parsing datafusion-datasource-parquet v55.0.0 (baseline)
      Parsed [   0.032s] (baseline)
    Checking datafusion-datasource-parquet v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.210s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  97.641s] datafusion-datasource-parquet
    Building datafusion-doc v55.0.0 (current)
       Built [   0.316s] (current)
     Parsing datafusion-doc v55.0.0 (current)
      Parsed [   0.003s] (current)
    Building datafusion-doc v55.0.0 (baseline)
       Built [   0.318s] (baseline)
     Parsing datafusion-doc v55.0.0 (baseline)
      Parsed [   0.003s] (baseline)
    Checking datafusion-doc v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.101s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [   0.924s] datafusion-doc
    Building datafusion-execution v55.0.0 (current)
       Built [  28.881s] (current)
     Parsing datafusion-execution v55.0.0 (current)
      Parsed [   0.026s] (current)
    Building datafusion-execution v55.0.0 (baseline)
       Built [  29.043s] (baseline)
     Parsing datafusion-execution v55.0.0 (baseline)
      Parsed [   0.025s] (baseline)
    Checking datafusion-execution v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.343s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  59.480s] datafusion-execution
    Building datafusion-expr v55.0.0 (current)
       Built [  27.132s] (current)
     Parsing datafusion-expr v55.0.0 (current)
      Parsed [   0.073s] (current)
    Building datafusion-expr v55.0.0 (baseline)
       Built [  27.108s] (baseline)
     Parsing datafusion-expr v55.0.0 (baseline)
      Parsed [   0.076s] (baseline)
    Checking datafusion-expr v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   1.757s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  57.333s] datafusion-expr
    Building datafusion-expr-common v55.0.0 (current)
       Built [  18.930s] (current)
     Parsing datafusion-expr-common v55.0.0 (current)
      Parsed [   0.017s] (current)
    Building datafusion-expr-common v55.0.0 (baseline)
       Built [  18.974s] (baseline)
     Parsing datafusion-expr-common v55.0.0 (baseline)
      Parsed [   0.017s] (baseline)
    Checking datafusion-expr-common v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.294s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  39.015s] datafusion-expr-common
    Building datafusion-ffi v55.0.0 (current)
       Built [  54.812s] (current)
     Parsing datafusion-ffi v55.0.0 (current)
      Parsed [   0.061s] (current)
    Building datafusion-ffi v55.0.0 (baseline)
       Built [  54.463s] (baseline)
     Parsing datafusion-ffi v55.0.0 (baseline)
      Parsed [   0.061s] (baseline)
    Checking datafusion-ffi v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.345s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 111.474s] datafusion-ffi
    Building datafusion-functions v55.0.0 (current)
       Built [  30.451s] (current)
     Parsing datafusion-functions v55.0.0 (current)
      Parsed [   0.081s] (current)
    Building datafusion-functions v55.0.0 (baseline)
       Built [  30.229s] (baseline)
     Parsing datafusion-functions v55.0.0 (baseline)
      Parsed [   0.087s] (baseline)
    Checking datafusion-functions v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.573s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  62.886s] datafusion-functions
    Building datafusion-functions-aggregate v55.0.0 (current)
       Built [  30.422s] (current)
     Parsing datafusion-functions-aggregate v55.0.0 (current)
      Parsed [   0.044s] (current)
    Building datafusion-functions-aggregate v55.0.0 (baseline)
       Built [  30.690s] (baseline)
     Parsing datafusion-functions-aggregate v55.0.0 (baseline)
      Parsed [   0.044s] (baseline)
    Checking datafusion-functions-aggregate v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.244s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  62.581s] datafusion-functions-aggregate
    Building datafusion-functions-aggregate-common v55.0.0 (current)
       Built [  20.469s] (current)
     Parsing datafusion-functions-aggregate-common v55.0.0 (current)
      Parsed [   0.019s] (current)
    Building datafusion-functions-aggregate-common v55.0.0 (baseline)
       Built [  20.453s] (baseline)
     Parsing datafusion-functions-aggregate-common v55.0.0 (baseline)
      Parsed [   0.017s] (baseline)
    Checking datafusion-functions-aggregate-common v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.182s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  41.944s] datafusion-functions-aggregate-common
    Building datafusion-functions-nested v55.0.0 (current)
       Built [  34.231s] (current)
     Parsing datafusion-functions-nested v55.0.0 (current)
      Parsed [   0.037s] (current)
    Building datafusion-functions-nested v55.0.0 (baseline)
       Built [  34.566s] (baseline)
     Parsing datafusion-functions-nested v55.0.0 (baseline)
      Parsed [   0.038s] (baseline)
    Checking datafusion-functions-nested v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.293s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  70.671s] datafusion-functions-nested
    Building datafusion-functions-table v55.0.0 (current)
       Built [  39.364s] (current)
     Parsing datafusion-functions-table v55.0.0 (current)
      Parsed [   0.011s] (current)
    Building datafusion-functions-table v55.0.0 (baseline)
       Built [  39.749s] (baseline)
     Parsing datafusion-functions-table v55.0.0 (baseline)
      Parsed [   0.011s] (baseline)
    Checking datafusion-functions-table v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.114s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  80.650s] datafusion-functions-table
    Building datafusion-functions-window v55.0.0 (current)
       Built [  25.588s] (current)
     Parsing datafusion-functions-window v55.0.0 (current)
      Parsed [   0.013s] (current)
    Building datafusion-functions-window v55.0.0 (baseline)
       Built [  24.467s] (baseline)
     Parsing datafusion-functions-window v55.0.0 (baseline)
      Parsed [   0.013s] (baseline)
    Checking datafusion-functions-window v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.124s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  51.113s] datafusion-functions-window
    Building datafusion-optimizer v55.0.0 (current)
       Built [  26.486s] (current)
     Parsing datafusion-optimizer v55.0.0 (current)
      Parsed [   0.029s] (current)
    Building datafusion-optimizer v55.0.0 (baseline)
       Built [  26.381s] (baseline)
     Parsing datafusion-optimizer v55.0.0 (baseline)
      Parsed [   0.029s] (baseline)
    Checking datafusion-optimizer v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.223s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  54.190s] datafusion-optimizer
    Building datafusion-physical-expr v55.0.0 (current)
       Built [  27.889s] (current)
     Parsing datafusion-physical-expr v55.0.0 (current)
      Parsed [   0.045s] (current)
    Building datafusion-physical-expr v55.0.0 (baseline)
       Built [  28.581s] (baseline)
     Parsing datafusion-physical-expr v55.0.0 (baseline)
      Parsed [   0.051s] (baseline)
    Checking datafusion-physical-expr v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.487s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  58.090s] datafusion-physical-expr
    Building datafusion-physical-expr-common v55.0.0 (current)
       Built [  24.229s] (current)
     Parsing datafusion-physical-expr-common v55.0.0 (current)
      Parsed [   0.021s] (current)
    Building datafusion-physical-expr-common v55.0.0 (baseline)
       Built [  24.262s] (baseline)
     Parsing datafusion-physical-expr-common v55.0.0 (baseline)
      Parsed [   0.021s] (baseline)
    Checking datafusion-physical-expr-common v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.313s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  49.765s] datafusion-physical-expr-common
    Building datafusion-physical-optimizer v55.0.0 (current)
       Built [  41.201s] (current)
     Parsing datafusion-physical-optimizer v55.0.0 (current)
      Parsed [   0.021s] (current)
    Building datafusion-physical-optimizer v55.0.0 (baseline)
       Built [  40.031s] (baseline)
     Parsing datafusion-physical-optimizer v55.0.0 (baseline)
      Parsed [   0.022s] (baseline)
    Checking datafusion-physical-optimizer v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.152s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  82.634s] datafusion-physical-optimizer
    Building datafusion-physical-plan v55.0.0 (current)
       Built [  37.016s] (current)
     Parsing datafusion-physical-plan v55.0.0 (current)
      Parsed [   0.139s] (current)
    Building datafusion-physical-plan v55.0.0 (baseline)
       Built [  36.808s] (baseline)
     Parsing datafusion-physical-plan v55.0.0 (baseline)
      Parsed [   0.144s] (baseline)
    Checking datafusion-physical-plan v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.887s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  76.579s] datafusion-physical-plan
    Building datafusion-proto v55.0.0 (current)
       Built [  51.423s] (current)
     Parsing datafusion-proto v55.0.0 (current)
      Parsed [   0.018s] (current)
    Building datafusion-proto v55.0.0 (baseline)
       Built [  52.552s] (baseline)
     Parsing datafusion-proto v55.0.0 (baseline)
      Parsed [   0.019s] (baseline)
    Checking datafusion-proto v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.167s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 106.108s] datafusion-proto
    Building datafusion-proto-models v55.0.0 (current)
       Built [  24.391s] (current)
     Parsing datafusion-proto-models v55.0.0 (current)
      Parsed [   0.128s] (current)
    Building datafusion-proto-models v55.0.0 (baseline)
       Built [  24.091s] (baseline)
     Parsing datafusion-proto-models v55.0.0 (baseline)
      Parsed [   0.123s] (baseline)
    Checking datafusion-proto-models v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   2.542s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  52.590s] datafusion-proto-models
    Building datafusion-pruning v55.0.0 (current)
       Built [  39.007s] (current)
     Parsing datafusion-pruning v55.0.0 (current)
      Parsed [   0.013s] (current)
    Building datafusion-pruning v55.0.0 (baseline)
       Built [  39.684s] (baseline)
     Parsing datafusion-pruning v55.0.0 (baseline)
      Parsed [   0.012s] (baseline)
    Checking datafusion-pruning v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.106s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  79.840s] datafusion-pruning
    Building datafusion-spark v55.0.0 (current)
       Built [  43.817s] (current)
     Parsing datafusion-spark v55.0.0 (current)
      Parsed [   0.058s] (current)
    Building datafusion-spark v55.0.0 (baseline)
       Built [  43.744s] (baseline)
     Parsing datafusion-spark v55.0.0 (baseline)
      Parsed [   0.059s] (baseline)
    Checking datafusion-spark v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.491s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  89.628s] datafusion-spark
    Building datafusion-sql v55.0.0 (current)
       Built [  40.706s] (current)
     Parsing datafusion-sql v55.0.0 (current)
      Parsed [   0.029s] (current)
    Building datafusion-sql v55.0.0 (baseline)
       Built [  41.396s] (baseline)
     Parsing datafusion-sql v55.0.0 (baseline)
      Parsed [   0.030s] (baseline)
    Checking datafusion-sql v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.301s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  83.695s] datafusion-sql
    Building datafusion-sqllogictest v55.0.0 (current)
       Built [  94.424s] (current)
     Parsing datafusion-sqllogictest v55.0.0 (current)
      Parsed [   0.022s] (current)
    Building datafusion-sqllogictest v55.0.0 (baseline)
       Built [  94.155s] (baseline)
     Parsing datafusion-sqllogictest v55.0.0 (baseline)
      Parsed [   0.022s] (baseline)
    Checking datafusion-sqllogictest v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.122s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 192.487s] datafusion-sqllogictest
    Building datafusion-substrait v55.0.0 (current)
       Built [ 304.152s] (current)
     Parsing datafusion-substrait v55.0.0 (current)
      Parsed [   0.017s] (current)
    Building datafusion-substrait v55.0.0 (baseline)
       Built [ 302.408s] (baseline)
     Parsing datafusion-substrait v55.0.0 (baseline)
      Parsed [   0.017s] (baseline)
    Checking datafusion-substrait v55.0.0 -> v55.0.0 (no change; assume patch)
     Checked [   0.289s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 608.896s] datafusion-substrait

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Sep 1, 2026
@emilk
emilk force-pushed the emilk/enable-more-clippy-lints-4 branch from c866451 to f32b894 Compare September 1, 2026 14:03
Manual `Debug` impls that skip a field now end in `finish_non_exhaustive()`,
so the output says a field was omitted instead of implying the struct only
has the ones listed. `Column` keeps `finish()` under an `#[expect]`: its
`Debug` output appears verbatim in user-facing error messages.
`cargo clippy --all-features` never compiles this branch, so the
manual_string_new pass missed it and the lint fired for anyone building
datafusion-common without the `backtrace` feature.
Prefer the positive condition first: `if x { .. } else { .. }` rather than
`if !x { .. } else { .. }`, so the reader does not have to negate mentally
to follow which branch runs.

Mostly `cargo clippy --fix`. Comments that described the negated branch were
moved to the branch they actually describe, and thirteen sites in
datafusion-sql were done by hand because one suggestion in that crate did not
type-check, which made rustfix roll back the whole crate.
@emilk
emilk force-pushed the emilk/enable-more-clippy-lints-4 branch from f32b894 to e448a28 Compare September 1, 2026 14:18
@emilk
emilk marked this pull request as ready for review September 1, 2026 14:19
@github-actions github-actions Bot added the sqllogictest SQL Logic Tests (.slt) label Sep 1, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.87462% with 168 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.58%. Comparing base (739974b) to head (e448a28).
⚠️ Report is 6 commits behind head on main.

Files with missing lines Patch % Lines
datafusion/physical-expr/src/expressions/binary.rs 46.15% 7 Missing ⚠️
datafusion/datasource/src/write/orchestration.rs 28.57% 5 Missing ⚠️
datafusion/expr/src/type_coercion/functions.rs 54.54% 5 Missing ⚠️
.../src/joins/sort_merge_join/materializing_stream.rs 90.19% 0 Missing and 5 partials ⚠️
datafusion/sql/src/select.rs 86.48% 2 Missing and 3 partials ⚠️
benchmarks/src/sql_benchmark.rs 84.61% 1 Missing and 3 partials ⚠️
datafusion/common/src/datatype.rs 0.00% 4 Missing ⚠️
datafusion/common/src/scalar/mod.rs 63.63% 4 Missing ⚠️
datafusion/datasource-parquet/src/sink.rs 86.66% 2 Missing and 2 partials ⚠️
datafusion/datasource/src/memory.rs 0.00% 3 Missing and 1 partial ⚠️
... and 73 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24848      +/-   ##
==========================================
- Coverage   81.59%   81.58%   -0.01%     
==========================================
  Files        1123     1123              
  Lines      406811   408199    +1388     
  Branches   406811   408199    +1388     
==========================================
+ Hits       331923   333019    +1096     
- Misses      55451    55618     +167     
- Partials    19437    19562     +125     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@emilk

emilk commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

…this might be a bit big 😬 let me know if I should break it up.

(each commit in itself is pretty reviewable though)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api change Auto detected API change catalog Related to the catalog crate common Related to common crate core Core DataFusion crate datasource Changes to the datasource crate execution Related to the execution crate ffi Changes to the ffi crate functions Changes to functions implementation logical-expr Logical plan and expressions optimizer Optimizer rules physical-expr Changes to the physical-expr crates physical-plan Changes to the physical-plan crate proto Related to proto crate spark sql SQL Planner sqllogictest SQL Logic Tests (.slt) substrait Changes to the substrait crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants