Skip to content

refactor(physical-plan): Simplify ExecutionPlan API with replace_children - #23903

Draft
JSOD11 wants to merge 6 commits into
apache:mainfrom
JSOD11:jsod/replace-children-07-25-26
Draft

refactor(physical-plan): Simplify ExecutionPlan API with replace_children#23903
JSOD11 wants to merge 6 commits into
apache:mainfrom
JSOD11:jsod/replace-children-07-25-26

Conversation

@JSOD11

@JSOD11 JSOD11 commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

@github-actions github-actions Bot added the physical-plan Changes to the physical-plan crate label Jul 26, 2026
@codecov-commenter

codecov-commenter commented Jul 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 69.61806% with 175 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.65%. Comparing base (88365dd) to head (9b872ef).
⚠️ Report is 12 commits behind head on main.

Files with missing lines Patch % Lines
...ysical-plan/src/joins/piecewise_merge_join/exec.rs 34.78% 30 Missing ⚠️
datafusion/physical-plan/src/sorts/partial_sort.rs 0.00% 23 Missing ⚠️
datafusion/physical-plan/src/async_func.rs 0.00% 21 Missing ⚠️
datafusion/physical-plan/src/buffer.rs 0.00% 18 Missing ⚠️
...on/physical-plan/src/joins/sort_merge_join/exec.rs 56.66% 13 Missing ⚠️
...ion/physical-plan/src/joins/symmetric_hash_join.rs 60.00% 12 Missing ⚠️
...sion/physical-optimizer/src/hash_join_buffering.rs 41.66% 7 Missing ⚠️
datafusion/physical-plan/src/coalesce_batches.rs 66.66% 7 Missing ⚠️
datafusion/physical-plan/src/coop.rs 64.70% 6 Missing ⚠️
datafusion/physical-plan/src/limit.rs 90.24% 4 Missing ⚠️
... and 14 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #23903      +/-   ##
==========================================
- Coverage   80.65%   80.65%   -0.01%     
==========================================
  Files        1093     1095       +2     
  Lines      371619   372682    +1063     
  Branches   371619   372682    +1063     
==========================================
+ Hits       299730   300582     +852     
- Misses      53993    54180     +187     
- Partials    17896    17920      +24     

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

@github-actions github-actions Bot added the optimizer Optimizer rules label Jul 26, 2026
@JSOD11 JSOD11 changed the title feat: replace_children refactor(physical-plan): Simplify ExecutionPlan API with replace_children Jul 27, 2026
@github-actions github-actions Bot added core Core DataFusion crate catalog Related to the catalog crate proto Related to proto crate ffi Changes to the ffi crate labels Jul 28, 2026
@github-actions github-actions Bot added the datasource Changes to the datasource crate label Jul 28, 2026
@github-actions

github-actions Bot commented Jul 28, 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 v54.1.0 (current)
       Built [ 122.188s] (current)
     Parsing datafusion v54.1.0 (current)
      Parsed [   0.039s] (current)
    Building datafusion v54.1.0 (baseline)
       Built [ 119.263s] (baseline)
     Parsing datafusion v54.1.0 (baseline)
      Parsed [   0.039s] (baseline)
    Checking datafusion v54.1.0 -> v54.1.0 (no change; assume patch)
     Checked [   0.886s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [ 244.542s] datafusion
    Building datafusion-catalog v54.1.0 (current)
       Built [  44.115s] (current)
     Parsing datafusion-catalog v54.1.0 (current)
      Parsed [   0.027s] (current)
    Building datafusion-catalog v54.1.0 (baseline)
       Built [  43.706s] (baseline)
     Parsing datafusion-catalog v54.1.0 (baseline)
      Parsed [   0.027s] (baseline)
    Checking datafusion-catalog v54.1.0 -> v54.1.0 (no change; assume patch)
     Checked [   0.147s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [  89.372s] datafusion-catalog
    Building datafusion-datasource v54.1.0 (current)
       Built [  42.662s] (current)
     Parsing datafusion-datasource v54.1.0 (current)
      Parsed [   0.036s] (current)
    Building datafusion-datasource v54.1.0 (baseline)
       Built [  42.208s] (baseline)
     Parsing datafusion-datasource v54.1.0 (baseline)
      Parsed [   0.037s] (baseline)
    Checking datafusion-datasource v54.1.0 -> v54.1.0 (no change; assume patch)
     Checked [   0.363s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [  86.891s] datafusion-datasource
    Building datafusion-ffi v54.1.0 (current)
error: running cargo-doc on crate 'datafusion-ffi' failed with output:
-----
   Compiling proc-macro2 v1.0.107
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.47
   Compiling libc v0.2.189
    Checking cfg-if v1.0.4
    Checking memchr v2.8.3
   Compiling autocfg v1.5.1
   Compiling libm v0.2.16
   Compiling num-traits v0.2.19
   Compiling syn v2.0.119
    Checking bytes v1.12.1
   Compiling zerocopy v0.8.55
    Checking allocator-api2 v0.2.21
    Checking foldhash v0.2.0
   Compiling serde_core v1.0.229
    Checking once_cell v1.21.4
    Checking itoa v1.0.18
    Checking equivalent v1.0.2
   Compiling getrandom v0.3.4
    Checking hashbrown v0.17.1
    Checking bitflags v2.13.1
   Compiling zmij v1.0.23
   Compiling syn v3.0.3
    Checking indexmap v2.14.0
   Compiling serde_json v1.0.151
    Checking num-integer v0.1.46
    Checking siphasher v1.0.3
   Compiling version_check v0.9.5
    Checking iana-time-zone v0.1.65
    Checking stable_deref_trait v1.2.1
    Checking chrono v0.4.45
   Compiling synstructure v0.13.2
   Compiling ahash v0.8.12
    Checking phf_shared v0.12.1
    Checking num-bigint v0.4.8
   Compiling chrono-tz v0.10.4
    Checking phf v0.12.1
    Checking arrow-schema v59.1.0
   Compiling zerocopy-derive v0.8.55
   Compiling zerofrom-derive v0.1.7
   Compiling yoke-derive v0.8.2
   Compiling zerovec-derive v0.11.3
    Checking zerofrom v0.1.8
    Checking yoke v0.8.3
   Compiling displaydoc v0.2.7
    Checking num-complex v0.4.6
    Checking zerovec v0.11.6
   Compiling semver v1.0.28
   Compiling rustc_version v0.4.1
   Compiling shlex v2.0.1
    Checking pin-project-lite v0.2.17
   Compiling find-msvc-tools v0.1.9
   Compiling jobserver v0.1.35
    Checking tinystr v0.8.3
   Compiling cc v1.4.0
    Checking futures-core v0.3.33
    Checking litemap v0.8.2
    Checking writeable v0.6.3
   Compiling pkg-config v0.3.33
    Checking lexical-util v1.0.7
    Checking futures-sink v0.3.33
    Checking smallvec v1.15.2
    Checking icu_locale_core v2.2.0
   Compiling zstd-sys v2.0.16+zstd.1.5.7
    Checking half v2.7.1
    Checking potential_utf v0.1.5
    Checking zerotrie v0.2.4
   Compiling icu_normalizer_data v2.2.0
   Compiling icu_properties_data v2.2.0
    Checking utf8_iter v1.0.4
    Checking arrow-buffer v59.1.0
    Checking icu_provider v2.2.0
    Checking icu_collections v2.2.0
    Checking futures-channel v0.3.33
    Checking lexical-write-integer v1.0.6
    Checking lexical-parse-integer v1.0.6
   Compiling tokio-macros v2.7.1
   Compiling futures-macro v0.3.33
    Checking arrow-data v59.1.0
    Checking slab v0.4.12
    Checking arrow-array v59.1.0
   Compiling zstd-safe v7.2.4
   Compiling parking_lot_core v0.9.12
    Checking futures-task v0.3.33
    Checking futures-io v0.3.33
    Checking tokio v1.53.1
    Checking futures-util v0.3.33
    Checking arrow-select v59.1.0
    Checking lexical-parse-float v1.0.6
    Checking lexical-write-float v1.0.6
    Checking icu_properties v2.2.0
    Checking icu_normalizer v2.2.0
   Compiling flatbuffers v25.12.19
    Checking aho-corasick v1.1.4
    Checking scopeguard v1.2.0
    Checking regex-syntax v0.8.11
    Checking ryu v1.0.23
    Checking unicode-width v0.2.2
    Checking unicode-segmentation v1.13.3
    Checking base64 v0.22.1
    Checking comfy-table v7.2.2
    Checking idna_adapter v1.2.2
    Checking lock_api v0.4.14
    Checking arrow-ord v59.1.0
    Checking lexical-core v1.0.6
    Checking atoi v2.0.0
    Checking alloc-no-stdlib v2.0.4
   Compiling getrandom v0.4.3
    Checking regex-automata v0.4.16
    Checking twox-hash v2.1.3
    Checking percent-encoding v2.3.2
    Checking either v1.17.0
   Compiling thiserror v2.0.19
    Checking form_urlencoded v1.2.2
    Checking lz4_flex v0.13.1
    Checking arrow-cast v59.1.0
    Checking alloc-stdlib v0.2.4
    Checking idna v1.1.0
    Checking futures-executor v0.3.33
   Compiling thiserror-impl v2.0.19
   Compiling tracing-attributes v0.1.31
    Checking regex v1.13.1
    Checking tracing-core v0.1.36
    Checking csv-core v0.1.13
   Compiling paste v1.0.15
    Checking same-file v1.0.6
   Compiling snap v1.1.2
    Checking simdutf8 v0.1.5
    Checking walkdir v2.5.0
    Checking csv v1.4.0
    Checking futures v0.3.33
    Checking tracing v0.1.44
    Checking url v2.5.8
    Checking brotli-decompressor v5.0.3
    Checking itertools v0.14.0
    Checking parking_lot v0.12.5
   Compiling async-trait v0.1.91
    Checking http v1.4.2
   Compiling anyhow v1.0.104
    Checking humantime v2.4.0
    Checking zlib-rs v0.6.6
    Checking brotli v8.0.4
    Checking object_store v0.13.2
    Checking flate2 v1.1.9
    Checking arrow-csv v59.1.0
    Checking arrow-json v59.1.0
    Checking arrow-string v59.1.0
    Checking zstd v0.13.3
    Checking arrow-row v59.1.0
    Checking arrow-arith v59.1.0
    Checking arrow-ipc v59.1.0
    Checking log v0.4.33
   Compiling seq-macro v0.3.6
    Checking uuid v1.24.0
    Checking itertools v0.15.0
   Compiling pin-project-internal v1.1.13
    Checking arrow v59.1.0
    Checking parquet v59.1.0
    Checking pin-project v1.1.13
   Compiling crossbeam-utils v0.8.22
    Checking datafusion-doc v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
   Compiling prost-derive v0.14.4
   Compiling rustix v1.1.4
    Checking ppv-lite86 v0.2.21
    Checking rand_core v0.9.5
    Checking foldhash v0.1.5
    Checking linux-raw-sys v0.12.1
    Checking rand_chacha v0.9.0
    Checking hashbrown v0.15.5
    Checking tokio-util v0.7.19
    Checking prost v0.14.4
    Checking hashbrown v0.14.5
    Checking fixedbitset v0.5.7
    Checking fastrand v2.5.0
    Checking dashmap v6.2.1
   Compiling datafusion-macros v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking tempfile v3.27.0
    Checking petgraph v0.8.3
    Checking rand v0.9.5
    Checking base64 v0.23.0
    Checking hex v0.4.3
    Checking datafusion-common-runtime v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking glob v0.3.4
   Compiling winnow v1.0.4
    Checking datafusion-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
   Compiling toml_datetime v1.1.1+spec-1.1.0
   Compiling toml_parser v1.1.3+spec-1.1.0
   Compiling stabby-macros v72.1.16
   Compiling rustversion v1.0.23
   Compiling stabby-abi v72.1.16
   Compiling toml_edit v0.25.13+spec-1.1.0
    Checking tokio-stream v0.1.19
   Compiling stabby v72.1.16
    Checking sha2-const-stable v0.1.0
    Checking libloading v0.9.0
    Checking async-ffi v0.5.1
   Compiling proc-macro-crate v3.5.0
    Checking datafusion-proto-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/proto-common)
    Checking datafusion-expr-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/expr-common)
    Checking datafusion-proto-models v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/proto-models)
    Checking datafusion-physical-expr-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr-common)
    Checking datafusion-functions-aggregate-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-aggregate-common)
    Checking datafusion-functions-window-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-window-common)
    Checking datafusion-expr v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/expr)
    Checking datafusion-execution v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/execution)
    Checking datafusion-physical-expr v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr)
    Checking datafusion-functions v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions)
    Checking datafusion-functions-window v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-window)
    Checking datafusion-functions-aggregate v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-aggregate)
    Checking datafusion-physical-plan v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-plan)
    Checking datafusion-physical-expr-adapter v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr-adapter)
error: cannot find macro `assert_eq_or_internal_err` in this scope
   --> /home/runner/work/datafusion/datafusion/datafusion/physical-plan/src/async_func.rs:312:9
    |
312 |         assert_eq_or_internal_err!(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: consider importing this macro
    |
 18 + use datafusion_common::assert_eq_or_internal_err;
    |

error: could not compile `datafusion-physical-plan` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

-----

error: failed to build rustdoc for crate datafusion-ffi v54.1.0
note: this is usually due to a compilation error in the crate,
      and is unlikely to be a bug in cargo-semver-checks
note: the following command can be used to reproduce the error:
      cargo new --lib example &&
          cd example &&
          echo '[workspace]' >> Cargo.toml &&
          cargo add --path /home/runner/work/datafusion/datafusion/datafusion/ffi --features datafusion-functions,datafusion-functions-aggregate,datafusion-functions-table,datafusion-functions-window,default,integration-tests,parquet &&
          cargo check &&
          cargo doc

    Building datafusion-physical-optimizer v54.1.0 (current)
       Built [  40.483s] (current)
     Parsing datafusion-physical-optimizer v54.1.0 (current)
      Parsed [   0.024s] (current)
    Building datafusion-physical-optimizer v54.1.0 (baseline)
       Built [  40.720s] (baseline)
     Parsing datafusion-physical-optimizer v54.1.0 (baseline)
      Parsed [   0.025s] (baseline)
    Checking datafusion-physical-optimizer v54.1.0 -> v54.1.0 (no change; assume patch)
     Checked [   0.156s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [  82.757s] datafusion-physical-optimizer
    Building datafusion-physical-plan v54.1.0 (current)
error: running cargo-doc on crate 'datafusion-physical-plan' failed with output:
-----
   Compiling proc-macro2 v1.0.107
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.47
   Compiling libc v0.2.189
    Checking cfg-if v1.0.4
   Compiling autocfg v1.5.1
   Compiling libm v0.2.16
    Checking memchr v2.8.3
   Compiling num-traits v0.2.19
   Compiling zerocopy v0.8.55
   Compiling syn v2.0.119
   Compiling getrandom v0.3.4
    Checking bytes v1.12.1
    Checking rand_core v0.9.5
    Checking foldhash v0.2.0
    Checking allocator-api2 v0.2.21
    Checking once_cell v1.21.4
   Compiling serde_core v1.0.229
    Checking itoa v1.0.18
    Checking equivalent v1.0.2
    Checking hashbrown v0.17.1
   Compiling zmij v1.0.23
   Compiling serde_json v1.0.151
    Checking indexmap v2.14.0
    Checking num-integer v0.1.46
    Checking iana-time-zone v0.1.65
    Checking siphasher v1.0.3
   Compiling version_check v0.9.5
    Checking phf_shared v0.12.1
   Compiling ahash v0.8.12
    Checking chrono v0.4.45
    Checking num-bigint v0.4.8
   Compiling chrono-tz v0.10.4
    Checking phf v0.12.1
    Checking num-complex v0.4.6
    Checking arrow-schema v59.1.0
   Compiling find-msvc-tools v0.1.9
    Checking lexical-util v1.0.7
   Compiling jobserver v0.1.35
   Compiling shlex v2.0.1
   Compiling cc v1.4.0
   Compiling synstructure v0.13.2
   Compiling syn v3.0.3
   Compiling zerocopy-derive v0.8.55
   Compiling pkg-config v0.3.33
    Checking pin-project-lite v0.2.17
   Compiling zstd-sys v2.0.16+zstd.1.5.7
   Compiling zerofrom-derive v0.1.7
    Checking lexical-write-integer v1.0.6
    Checking lexical-parse-integer v1.0.6
   Compiling semver v1.0.28
    Checking lexical-write-float v1.0.6
   Compiling rustc_version v0.4.1
    Checking lexical-parse-float v1.0.6
    Checking zerofrom v0.1.8
   Compiling yoke-derive v0.8.2
    Checking aho-corasick v1.1.4
    Checking ppv-lite86 v0.2.21
    Checking rand_chacha v0.9.0
    Checking rand v0.9.5
    Checking bitflags v2.13.1
    Checking unicode-segmentation v1.13.3
    Checking regex-syntax v0.8.11
    Checking stable_deref_trait v1.2.1
    Checking ryu v1.0.23
    Checking rand_distr v0.5.1
   Compiling zstd-safe v7.2.4
    Checking unicode-width v0.2.2
    Checking comfy-table v7.2.2
    Checking half v2.7.1
    Checking yoke v0.8.3
    Checking lexical-core v1.0.6
    Checking arrow-buffer v59.1.0
   Compiling flatbuffers v25.12.19
   Compiling tokio-macros v2.7.1
    Checking arrow-data v59.1.0
    Checking regex-automata v0.4.16
    Checking atoi v2.0.0
   Compiling getrandom v0.4.3
    Checking smallvec v1.15.2
    Checking base64 v0.22.1
    Checking arrow-array v59.1.0
    Checking tokio v1.53.1
    Checking regex v1.13.1
   Compiling zerovec-derive v0.11.3
    Checking arrow-select v59.1.0
    Checking csv-core v0.1.13
    Checking either v1.17.0
    Checking twox-hash v2.1.3
    Checking arrow-ord v59.1.0
    Checking lz4_flex v0.13.1
    Checking csv v1.4.0
    Checking zerovec v0.11.6
    Checking arrow-cast v59.1.0
   Compiling displaydoc v0.2.7
    Checking simdutf8 v0.1.5
   Compiling anyhow v1.0.104
    Checking arrow-string v59.1.0
    Checking arrow-row v59.1.0
    Checking arrow-arith v59.1.0
    Checking arrow-csv v59.1.0
    Checking arrow-json v59.1.0
   Compiling parking_lot_core v0.9.12
    Checking log v0.4.33
   Compiling itertools v0.14.0
    Checking uuid v1.24.0
    Checking itertools v0.15.0
    Checking scopeguard v1.2.0
    Checking lock_api v0.4.14
    Checking tinystr v0.8.3
    Checking writeable v0.6.3
    Checking litemap v0.8.2
    Checking icu_locale_core v2.2.0
   Compiling prost-derive v0.14.4
    Checking zerotrie v0.2.4
    Checking potential_utf v0.1.5
    Checking futures-core v0.3.33
   Compiling icu_normalizer_data v2.2.0
    Checking futures-sink v0.3.33
   Compiling icu_properties_data v2.2.0
    Checking utf8_iter v1.0.4
    Checking icu_collections v2.2.0
    Checking icu_provider v2.2.0
    Checking zstd v0.13.3
    Checking arrow-ipc v59.1.0
    Checking parking_lot v0.12.5
   Compiling pin-project-internal v1.1.13
    Checking futures-channel v0.3.33
   Compiling futures-macro v0.3.33
    Checking prost v0.14.4
    Checking pin-project v1.1.13
    Checking futures-io v0.3.33
    Checking futures-task v0.3.33
    Checking slab v0.4.12
    Checking arrow v59.1.0
    Checking icu_properties v2.2.0
    Checking icu_normalizer v2.2.0
    Checking futures-util v0.3.33
    Checking datafusion-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
   Compiling async-trait v0.1.91
    Checking idna_adapter v1.2.2
   Compiling rustix v1.1.4
   Compiling thiserror v2.0.19
   Compiling crossbeam-utils v0.8.22
    Checking percent-encoding v2.3.2
    Checking form_urlencoded v1.2.2
    Checking idna v1.1.0
   Compiling thiserror-impl v2.0.19
   Compiling tracing-attributes v0.1.31
    Checking futures-executor v0.3.33
    Checking tracing-core v0.1.36
    Checking same-file v1.0.6
    Checking datafusion-doc v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking linux-raw-sys v0.12.1
    Checking walkdir v2.5.0
    Checking tracing v0.1.44
    Checking futures v0.3.33
    Checking url v2.5.8
    Checking http v1.4.2
    Checking fastrand v2.5.0
    Checking hashbrown v0.14.5
    Checking datafusion-proto-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/proto-common)
    Checking datafusion-expr-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/expr-common)
    Checking humantime v2.4.0
    Checking foldhash v0.1.5
    Checking hashbrown v0.15.5
    Checking object_store v0.13.2
    Checking tempfile v3.27.0
    Checking dashmap v6.2.1
    Checking tokio-util v0.7.19
    Checking datafusion-proto-models v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/proto-models)
    Checking fixedbitset v0.5.7
   Compiling datafusion-macros v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking petgraph v0.8.3
    Checking base64 v0.23.0
    Checking hex v0.4.3
    Checking datafusion-common-runtime v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking datafusion-physical-expr-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr-common)
    Checking datafusion-functions-window-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-window-common)
    Checking datafusion-functions-aggregate-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-aggregate-common)
    Checking datafusion-expr v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/expr)
    Checking datafusion-execution v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/execution)
    Checking datafusion-physical-expr v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr)
    Checking datafusion-functions v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions)
 Documenting datafusion-physical-plan v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-plan)
error: cannot find macro `assert_eq_or_internal_err` in this scope
   --> /home/runner/work/datafusion/datafusion/datafusion/physical-plan/src/async_func.rs:312:9
    |
312 |         assert_eq_or_internal_err!(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: consider importing this macro
    |
 18 + use datafusion_common::assert_eq_or_internal_err;
    |

error: could not document `datafusion-physical-plan`

-----

error: failed to build rustdoc for crate datafusion-physical-plan v54.1.0
note: this is usually due to a compilation error in the crate,
      and is unlikely to be a bug in cargo-semver-checks
note: the following command can be used to reproduce the error:
      cargo new --lib example &&
          cd example &&
          echo '[workspace]' >> Cargo.toml &&
          cargo add --path /home/runner/work/datafusion/datafusion/datafusion/physical-plan --features force_hash_collisions,proto,test_utils,tokio_coop,tokio_coop_fallback &&
          cargo check &&
          cargo doc

    Building datafusion-proto v54.1.0 (current)
error: running cargo-doc on crate 'datafusion-proto' failed with output:
-----
   Compiling proc-macro2 v1.0.107
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.47
   Compiling libc v0.2.189
    Checking cfg-if v1.0.4
   Compiling autocfg v1.5.1
   Compiling libm v0.2.16
    Checking memchr v2.8.3
   Compiling num-traits v0.2.19
   Compiling syn v2.0.119
   Compiling zerocopy v0.8.55
    Checking bytes v1.12.1
   Compiling serde_core v1.0.229
   Compiling syn v3.0.3
    Checking itoa v1.0.18
    Checking once_cell v1.21.4
    Checking foldhash v0.2.0
    Checking equivalent v1.0.2
    Checking allocator-api2 v0.2.21
   Compiling getrandom v0.3.4
    Checking hashbrown v0.17.1
   Compiling zmij v1.0.23
    Checking indexmap v2.14.0
   Compiling serde_json v1.0.151
    Checking num-integer v0.1.46
    Checking siphasher v1.0.3
   Compiling version_check v0.9.5
    Checking iana-time-zone v0.1.65
    Checking chrono v0.4.45
   Compiling synstructure v0.13.2
   Compiling jobserver v0.1.35
   Compiling ahash v0.8.12
    Checking phf_shared v0.12.1
    Checking num-bigint v0.4.8
    Checking stable_deref_trait v1.2.1
   Compiling chrono-tz v0.10.4
   Compiling find-msvc-tools v0.1.9
   Compiling shlex v2.0.1
   Compiling cc v1.4.0
   Compiling zerocopy-derive v0.8.55
   Compiling zerofrom-derive v0.1.7
   Compiling yoke-derive v0.8.2
    Checking zerofrom v0.1.8
    Checking arrow-schema v59.1.0
    Checking yoke v0.8.3
    Checking phf v0.12.1
   Compiling pkg-config v0.3.33
   Compiling zerovec-derive v0.11.3
    Checking num-complex v0.4.6
   Compiling displaydoc v0.2.7
    Checking zerovec v0.11.6
    Checking pin-project-lite v0.2.17
   Compiling zstd-sys v2.0.16+zstd.1.5.7
    Checking futures-core v0.3.33
    Checking smallvec v1.15.2
    Checking writeable v0.6.3
    Checking tinystr v0.8.3
    Checking futures-sink v0.3.33
    Checking litemap v0.8.2
    Checking lexical-util v1.0.7
    Checking icu_locale_core v2.2.0
    Checking potential_utf v0.1.5
    Checking zerotrie v0.2.4
    Checking utf8_iter v1.0.4
   Compiling icu_normalizer_data v2.2.0
   Compiling icu_properties_data v2.2.0
    Checking icu_collections v2.2.0
    Checking icu_provider v2.2.0
   Compiling semver v1.0.28
    Checking half v2.7.1
   Compiling zstd-safe v7.2.4
    Checking arrow-buffer v59.1.0
   Compiling rustc_version v0.4.1
    Checking lexical-parse-integer v1.0.6
    Checking lexical-write-integer v1.0.6
    Checking arrow-data v59.1.0
    Checking futures-channel v0.3.33
   Compiling futures-macro v0.3.33
   Compiling tokio-macros v2.7.1
    Checking arrow-array v59.1.0
    Checking slab v0.4.12
    Checking futures-task v0.3.33
    Checking futures-io v0.3.33
    Checking bitflags v2.13.1
   Compiling parking_lot_core v0.9.12
    Checking base64 v0.22.1
    Checking futures-util v0.3.33
    Checking tokio v1.53.1
    Checking arrow-select v59.1.0
    Checking lexical-write-float v1.0.6
    Checking lexical-parse-float v1.0.6
    Checking icu_properties v2.2.0
    Checking icu_normalizer v2.2.0
   Compiling flatbuffers v25.12.19
    Checking aho-corasick v1.1.4
   Compiling crc32fast v1.5.0
    Checking regex-syntax v0.8.11
   Compiling getrandom v0.4.3
    Checking unicode-segmentation v1.13.3
    Checking unicode-width v0.2.2
    Checking ryu v1.0.23
    Checking scopeguard v1.2.0
    Checking comfy-table v7.2.2
    Checking lock_api v0.4.14
    Checking idna_adapter v1.2.2
    Checking lexical-core v1.0.6
    Checking arrow-ord v59.1.0
    Checking atoi v2.0.0
    Checking simd-adler32 v0.3.10
    Checking twox-hash v2.1.3
    Checking regex-automata v0.4.16
   Compiling thiserror v2.0.19
    Checking percent-encoding v2.3.2
    Checking adler2 v2.0.1
    Checking alloc-no-stdlib v2.0.4
   Compiling snap v1.1.2
    Checking either v1.17.0
    Checking alloc-stdlib v0.2.4
    Checking miniz_oxide v0.8.9
    Checking form_urlencoded v1.2.2
    Checking arrow-cast v59.1.0
    Checking lz4_flex v0.13.1
    Checking idna v1.1.0
    Checking futures-executor v0.3.33
   Compiling tracing-attributes v0.1.31
    Checking regex v1.13.1
   Compiling thiserror-impl v2.0.19
    Checking tracing-core v0.1.36
    Checking csv-core v0.1.13
    Checking zlib-rs v0.6.6
   Compiling paste v1.0.15
    Checking simdutf8 v0.1.5
    Checking same-file v1.0.6
    Checking walkdir v2.5.0
    Checking tracing v0.1.44
    Checking csv v1.4.0
    Checking futures v0.3.33
    Checking url v2.5.8
    Checking brotli-decompressor v5.0.3
    Checking flate2 v1.1.9
    Checking itertools v0.14.0
    Checking parking_lot v0.12.5
   Compiling async-trait v0.1.91
    Checking http v1.4.2
   Compiling serde v1.0.229
    Checking humantime v2.4.0
   Compiling anyhow v1.0.104
    Checking brotli v8.0.4
    Checking object_store v0.13.2
    Checking arrow-csv v59.1.0
    Checking zstd v0.13.3
    Checking arrow-ipc v59.1.0
    Checking arrow-json v59.1.0
    Checking arrow-string v59.1.0
    Checking uuid v1.24.0
    Checking arrow-arith v59.1.0
    Checking arrow-row v59.1.0
   Compiling serde_derive v1.0.229
   Compiling seq-macro v0.3.6
    Checking log v0.4.33
    Checking arrow v59.1.0
    Checking parquet v59.1.0
    Checking itertools v0.15.0
   Compiling prost-derive v0.14.4
   Compiling pin-project-internal v1.1.13
    Checking pin-project v1.1.13
    Checking ppv-lite86 v0.2.21
    Checking pbjson v0.9.0
    Checking rand_core v0.9.5
    Checking prost v0.14.4
   Compiling rustix v1.1.4
   Compiling crossbeam-utils v0.8.22
    Checking rand_chacha v0.9.0
    Checking datafusion-doc v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking linux-raw-sys v0.12.1
    Checking rand v0.9.5
    Checking tokio-util v0.7.19
    Checking hashbrown v0.14.5
    Checking fastrand v2.5.0
    Checking foldhash v0.1.5
    Checking hashbrown v0.15.5
    Checking dashmap v6.2.1
    Checking fixedbitset v0.5.7
    Checking petgraph v0.8.3
   Compiling datafusion-macros v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking tempfile v3.27.0
    Checking hex v0.4.3
    Checking base64 v0.23.0
    Checking datafusion-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
    Checking datafusion-common-runtime v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking glob v0.3.4
   Compiling liblzma-sys v0.4.7
    Checking libbz2-rs-sys v0.2.5
   Compiling heck v0.5.0
    Checking crc-catalog v2.5.0
    Checking crc v3.4.0
   Compiling strum_macros v0.28.0
    Checking bzip2 v0.6.1
    Checking tokio-stream v0.1.19
    Checking datafusion-proto-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/proto-common)
    Checking datafusion-expr-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/expr-common)
    Checking datafusion-proto-models v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/proto-models)
    Checking liblzma v0.4.7
    Checking arrow-avro v59.1.0
    Checking datafusion-physical-expr-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr-common)
    Checking datafusion-functions-window-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-window-common)
    Checking datafusion-functions-aggregate-common v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions-aggregate-common)
    Checking datafusion-expr v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/expr)
    Checking datafusion-execution v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/execution)
    Checking datafusion-physical-expr v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr)
    Checking datafusion-functions v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/functions)
    Checking datafusion-physical-plan v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-plan)
    Checking datafusion-physical-expr-adapter v54.1.0 (/home/runner/work/datafusion/datafusion/datafusion/physical-expr-adapter)
error: cannot find macro `assert_eq_or_internal_err` in this scope
   --> /home/runner/work/datafusion/datafusion/datafusion/physical-plan/src/async_func.rs:312:9
    |
312 |         assert_eq_or_internal_err!(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: consider importing this macro
    |
 18 + use datafusion_common::assert_eq_or_internal_err;
    |

error: could not compile `datafusion-physical-plan` (lib) due to 1 previous error

-----

error: failed to build rustdoc for crate datafusion-proto v54.1.0
note: this is usually due to a compilation error in the crate,
      and is unlikely to be a bug in cargo-semver-checks
note: the following command can be used to reproduce the error:
      cargo new --lib example &&
          cd example &&
          echo '[workspace]' >> Cargo.toml &&
          cargo add --path /home/runner/work/datafusion/datafusion/datafusion/proto --features avro,datafusion-datasource-avro,datafusion-datasource-parquet,default,json,parquet,serde_json &&
          cargo check &&
          cargo doc

error: aborting due to failure to build rustdoc for crate datafusion-ffi v54.1.0

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Jul 28, 2026
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 core Core DataFusion crate datasource Changes to the datasource crate ffi Changes to the ffi crate optimizer Optimizer rules physical-plan Changes to the physical-plan crate proto Related to proto crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor(physical-plan): simplify ExecutionPlan children-replacement API

2 participants