Skip to content

Adaptive filter pushdown for the parquet scan#22237

Draft
adriangb wants to merge 4 commits into
apache:mainfrom
adriangb:pr4-adaptive-parquet-scan
Draft

Adaptive filter pushdown for the parquet scan#22237
adriangb wants to merge 4 commits into
apache:mainfrom
adriangb:pr4-adaptive-parquet-scan

Conversation

@adriangb
Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

With the wrapper type (#22234), per-conjunct pruning stats (#22235), and the cost model (#22236) in place, this PR wires them into the parquet scan so filter placement adapts to measured selectivity and throughput instead of a fixed pushdown decision.

What changes are included in this PR?

  • ParquetMorselizer carries tagged predicate conjuncts and a shared SelectivityTracker; at file open the tracker partitions conjuncts into row-level vs post-scan buckets, seeded by the per-conjunct row-group / page-index pruning rates collected for free during pruning.
  • AdaptiveParquetStream drives the push decoder one row group at a time, re-partitioning at row-group boundaries and swapping the decoder strategy (row filter + projection mask) when placement changes.
  • Integrates with the fully-matched run splitting from Skip RowFilter and page pruning for fully matched row groups #21637: fully-matched runs get a no-filter decoder; needs-filter runs get the adaptive setup.
  • HashJoinExec wraps its pushed-down dynamic filter in OptionalFilterPhysicalExpr so the tracker may drop it when it is not cost-effective; join correctness is unaffected.
  • Adds config knobs: filter_pushdown_min_bytes_per_sec, filter_collecting_byte_ratio_threshold, filter_confidence_z.

Are these changes tested?

Yes — parquet filter-pushdown integration tests, physical-optimizer filter-pushdown tests, proto round-trip, and sqllogictest coverage.

Are there any user-facing changes?

New parquet read config knobs (documented in configs.md). Behavior change to the parquet scan's filter placement. Note: this PR pins a custom arrow-rs branch for the push-decoder StrategySwap APIs; landing upstream requires those APIs in a released arrow-rs first.


Stacked PR — diff is cumulative against main. Review the top commit "feat: adaptive filter pushdown for the parquet scan"; the commits below it are PRs #22234, #22235, #22236.

Stack (review/merge in order):

  1. Add OptionalFilterPhysicalExpr wrapper + proto support #22234 — OptionalFilterPhysicalExpr + proto
  2. Per-conjunct pruning statistics for PruningPredicate #22235 — Per-conjunct pruning statistics
  3. Add SelectivityTracker adaptive filter cost model #22236 — SelectivityTracker cost model
  4. this PR — Adaptive parquet scan integration

adriangb and others added 4 commits May 15, 2026 14:12
Introduce `OptionalFilterPhysicalExpr`, a transparent `PhysicalExpr`
wrapper that marks a filter as *optional* — droppable without affecting
query correctness. It delegates every `PhysicalExpr` method to the inner
expression, so it is behavior-neutral until a consumer explicitly checks
for the marker.

This is the foundation for adaptive filter scheduling: a scan can detect
the wrapper and drop a performance-hint filter (e.g. a hash-join dynamic
filter) when it is not cost-effective, knowing correctness is enforced
elsewhere.

Also adds proto serialization (`PhysicalOptionalFilterNode`) so physical
plans containing the wrapper round-trip faithfully.

No caller wraps anything yet — that arrives with the adaptive parquet
scan later in the stack.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add an opt-in way to learn, per individual conjunct, how effective each
predicate was during pruning — without running any extra pruning passes.

- `PruningPredicate::try_new_tagged_conjuncts` builds a predicate from
  AND-conjuncts, each carrying a caller-supplied tag.
- `PruningPredicate::prune_per_conjunct` returns the usual prune mask
  plus per-conjunct `PerConjunctPruneStats` (rows/containers seen vs.
  skipped) as a side effect of the pruning iteration that already runs.
- `RowGroupAccessPlanFilter::prune_by_statistics_with_per_conjunct_stats`
  and `PagePruningAccessPlanFilter::prune_plan_with_per_conjunct_stats`
  surface those stats for row-group and page-index pruning respectively.

The existing untagged `prune` / `prune_by_statistics` /
`prune_plan_with_page_index` paths are preserved and unchanged; the new
methods return empty stats on the untagged path. No in-tree caller uses
the tagged path yet — the adaptive parquet scan consumes it later in the
stack as a selectivity prior.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduce `SelectivityTracker`, the cross-file cost model behind adaptive
filter pushdown. It accumulates per-filter selectivity and throughput
statistics and, given a confidence interval, decides whether each filter
conjunct should be evaluated at row level, deferred to post-scan, or
dropped entirely (for optional filters).

This commit adds the module, its `total_compressed_bytes` helper in
`row_filter`, a criterion benchmark, and ~45 unit tests covering the
partitioning / promote / demote / drop logic. Nothing wires it into the
parquet scan yet — that integration is the final commit in this stack.

A couple of `pub(crate)` items (`count_skippable_bytes`, `skip_flag`,
`is_filter_skipped`) are only exercised by that integration and carry a
temporary `#[expect(dead_code)]` until then.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wire the SelectivityTracker into the parquet scan so filter placement
adapts to measured selectivity and throughput.

- `ParquetMorselizer` carries tagged predicate conjuncts and a shared
  `SelectivityTracker`; at file open the tracker partitions conjuncts
  into row-level vs post-scan buckets, seeded by the per-conjunct
  row-group / page-index pruning rates collected for free during pruning.
- `AdaptiveParquetStream` drives the push decoder one row group at a
  time, re-partitioning at row-group boundaries and swapping the decoder
  strategy (row filter + projection mask) when placement changes.
- Integrates with upstream's fully-matched run splitting: fully-matched
  runs get a no-filter decoder; needs-filter runs get the adaptive setup.
- `HashJoinExec` wraps its pushed-down dynamic filter in
  `OptionalFilterPhysicalExpr` so the tracker may drop it when it is not
  cost-effective; join correctness is unaffected.
- Adds the `filter_pushdown_min_bytes_per_sec`,
  `filter_collecting_byte_ratio_threshold` and `filter_confidence_z`
  config knobs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation physical-expr Changes to the physical-expr crates core Core DataFusion crate sqllogictest SQL Logic Tests (.slt) common Related to common crate proto Related to proto crate datasource Changes to the datasource crate physical-plan Changes to the physical-plan crate labels May 15, 2026
@github-actions
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 v53.1.0 (current)
error: running cargo-doc on crate 'datafusion' failed with output:
-----
   Compiling proc-macro2 v1.0.106
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.45
   Compiling libc v0.2.186
    Checking cfg-if v1.0.4
   Compiling shlex v1.3.0
   Compiling autocfg v1.5.0
   Compiling find-msvc-tools v0.1.9
   Compiling libm v0.2.16
   Compiling syn v2.0.117
   Compiling num-traits v0.2.19
    Checking memchr v2.8.0
   Compiling jobserver v0.1.34
   Compiling version_check v0.9.5
   Compiling cc v1.2.62
   Compiling zerocopy v0.8.48
    Checking bytes v1.11.1
   Compiling serde_core v1.0.228
    Checking itoa v1.0.18
   Compiling getrandom v0.3.4
    Checking once_cell v1.21.4
   Compiling zmij v1.0.21
    Checking num-integer v0.1.46
   Compiling serde v1.0.228
   Compiling serde_json v1.0.149
    Checking num-bigint v0.4.6
    Checking equivalent v1.0.2
    Checking siphasher v1.0.3
   Compiling pkg-config v0.3.33
    Checking allocator-api2 v0.2.21
    Checking foldhash v0.2.0
    Checking iana-time-zone v0.1.65
    Checking hashbrown v0.17.1
    Checking chrono v0.4.44
   Compiling synstructure v0.13.2
    Checking phf_shared v0.12.1
   Compiling ahash v0.8.12
    Checking stable_deref_trait v1.2.1
   Compiling chrono-tz v0.10.4
    Checking phf v0.12.1
    Checking num-complex v0.4.6
   Compiling zstd-sys v2.0.16+zstd.1.5.7
    Checking pin-project-lite v0.2.17
   Compiling zstd-safe v7.2.4
    Checking writeable v0.6.3
    Checking litemap v0.8.2
    Checking smallvec v1.15.1
   Compiling zerocopy-derive v0.8.48
   Compiling zerofrom-derive v0.1.7
   Compiling serde_derive v1.0.228
    Checking zerofrom v0.1.8
   Compiling yoke-derive v0.8.2
    Checking arrow-schema v58.3.0
    Checking half v2.7.1
    Checking yoke v0.8.2
   Compiling zerovec-derive v0.11.3
    Checking arrow-buffer v58.3.0
   Compiling displaydoc v0.2.5
   Compiling object v0.37.3
    Checking arrow-data v58.3.0
    Checking futures-sink v0.3.32
    Checking futures-core v0.3.32
    Checking lexical-util v1.0.7
    Checking zerovec v0.11.6
    Checking arrow-array v58.3.0
    Checking zerotrie v0.2.4
    Checking tinystr v0.8.3
    Checking icu_locale_core v2.2.0
    Checking potential_utf v0.1.5
   Compiling icu_properties_data v2.2.0
   Compiling icu_normalizer_data v2.2.0
    Checking utf8_iter v1.0.4
    Checking icu_collections v2.2.0
    Checking icu_provider v2.2.0
   Compiling tokio-macros v2.7.0
    Checking arrow-select v58.3.0
   Compiling semver v1.0.28
   Compiling crc32fast v1.5.0
   Compiling rustc_version v0.4.1
    Checking tokio v1.52.3
    Checking lexical-parse-integer v1.0.6
    Checking lexical-write-integer v1.0.6
    Checking futures-channel v0.3.32
   Compiling futures-macro v0.3.32
    Checking futures-task v0.3.32
   Compiling parking_lot_core v0.9.12
    Checking simd-adler32 v0.3.9
    Checking slab v0.4.12
    Checking bitflags v2.11.1
    Checking adler2 v2.0.1
    Checking futures-io v0.3.32
    Checking futures-util v0.3.32
   Compiling ar_archive_writer v0.5.1
    Checking miniz_oxide v0.8.9
    Checking lexical-write-float v1.0.6
    Checking lexical-parse-float v1.0.6
   Compiling psm v0.1.31
    Checking icu_normalizer v2.2.0
    Checking icu_properties v2.2.0
   Compiling flatbuffers v25.12.19
    Checking aho-corasick v1.1.4
    Checking zstd v0.13.3
    Checking unicode-width v0.2.2
   Compiling getrandom v0.4.2
    Checking regex-syntax v0.8.10
    Checking ryu v1.0.23
    Checking scopeguard v1.2.0
    Checking zlib-rs v0.6.3
    Checking base64 v0.22.1
    Checking unicode-segmentation v1.13.2
    Checking lock_api v0.4.14
    Checking idna_adapter v1.2.2
    Checking comfy-table v7.2.2
    Checking lexical-core v1.0.6
    Checking arrow-ord v58.3.0
    Checking indexmap v2.14.0
    Checking flate2 v1.1.9
   Compiling stacker v0.1.24
    Checking atoi v2.0.0
    Checking regex-automata v0.4.14
    Checking percent-encoding v2.3.2
    Checking twox-hash v2.1.2
   Compiling thiserror v2.0.18
    Checking alloc-no-stdlib v2.0.4
   Compiling snap v1.1.1
    Checking alloc-stdlib v0.2.2
    Checking lz4_flex v0.13.1
    Checking form_urlencoded v1.2.2
    Checking arrow-cast v58.3.0
    Checking idna v1.1.0
    Checking futures-executor v0.3.32
   Compiling tracing-attributes v0.1.31
   Compiling thiserror-impl v2.0.18
   Compiling ring v0.17.14
    Checking regex v1.12.3
    Checking tracing-core v0.1.36
    Checking csv-core v0.1.13
    Checking either v1.15.0
    Checking simdutf8 v0.1.5
   Compiling paste v1.0.15
    Checking same-file v1.0.6
    Checking tracing v0.1.44
    Checking itertools v0.14.0
    Checking walkdir v2.5.0
    Checking csv v1.4.0
    Checking futures v0.3.32
    Checking url v2.5.8
    Checking arrow-ipc v58.3.0
    Checking brotli-decompressor v5.0.0
    Checking parking_lot v0.12.5
   Compiling recursive-proc-macro-impl v0.1.1
   Compiling async-trait v0.1.89
    Checking http v1.4.0
    Checking ordered-float v2.10.1
    Checking getrandom v0.2.17
    Checking byteorder v1.5.0
    Checking humantime v2.3.0
    Checking untrusted v0.9.0
    Checking integer-encoding v3.0.4
    Checking log v0.4.29
    Checking thrift v0.17.0
    Checking brotli v8.0.2
    Checking object_store v0.13.2
    Checking recursive v0.1.1
    Checking arrow-csv v58.3.0
    Checking arrow-json v58.3.0
    Checking arrow-string v58.3.0
    Checking uuid v1.23.1
    Checking arrow-row v58.3.0
    Checking arrow-arith v58.3.0
   Compiling sqlparser_derive v0.5.0
   Compiling seq-macro v0.3.6
    Checking arrow v58.3.0
    Checking hex v0.4.3
    Checking typenum v1.20.0
    Checking sqlparser v0.62.0
   Compiling pin-project-internal v1.1.13
    Checking parquet v58.3.0
   Compiling generic-array v0.14.7
    Checking datafusion-doc v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking hybrid-array v0.4.12
    Checking pin-project v1.1.13
    Checking ppv-lite86 v0.2.21
    Checking rand_core v0.9.5
   Compiling rustix v1.1.4
    Checking foldhash v0.1.5
   Compiling crossbeam-utils v0.8.21
    Checking hashbrown v0.15.5
    Checking rand_chacha v0.9.0
    Checking linux-raw-sys v0.12.1
    Checking fixedbitset v0.5.7
    Checking petgraph v0.8.3
    Checking rand v0.9.4
    Checking block-buffer v0.12.0
    Checking crypto-common v0.2.1
    Checking hashbrown v0.14.5
    Checking fastrand v2.4.1
    Checking const-oid v0.10.2
    Checking digest v0.11.3
    Checking tempfile v3.27.0
    Checking dashmap v6.1.0
   Compiling datafusion-macros v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking block-buffer v0.10.4
    Checking crypto-common v0.1.7
   Compiling blake3 v1.8.5
    Checking cpufeatures v0.3.0
    Checking subtle v2.6.1
    Checking digest v0.10.7
    Checking arrayvec v0.7.6
    Checking constant_time_eq v0.4.2
    Checking arrayref v0.3.9
    Checking blake2 v0.10.6
    Checking sha2 v0.11.0
    Checking md-5 v0.11.0
   Compiling liblzma-sys v0.4.6
    Checking libbz2-rs-sys v0.2.4
    Checking datafusion-common-runtime v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking compression-core v0.4.32
    Checking bzip2 v0.6.1
    Checking tokio-util v0.7.18
    Checking glob v0.3.3
   Compiling bigdecimal v0.4.10
   Compiling heck v0.5.0
    Checking crc-catalog v2.5.0
    Checking crc v3.4.0
   Compiling strum_macros v0.28.0
    Checking tokio-stream v0.1.18
    Checking liblzma v0.4.6
    Checking compression-codecs v0.4.38
    Checking arrow-avro v58.3.0
    Checking async-compression v0.4.42
    Checking datafusion-common v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
error[E0599]: no method named `set_column_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:161:22
    |
160 |                   builder = builder
    |  ___________________________-
161 | |                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
    | |_____________________-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_column_bloom_filter_ndv` with a similar name
    |
161 -                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
161 +                     .set_column_bloom_filter_ndv(path.clone(), bloom_filter_ndv);
    |

error[E0599]: no method named `set_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:241:31
    |
241 |             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_bloom_filter_ndv` with a similar name
    |
241 -             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
241 +             builder = builder.set_bloom_filter_ndv(*bloom_filter_ndv);
    |

For more information about this error, try `rustc --explain E0599`.
error: could not compile `datafusion-common` (lib) due to 2 previous errors

-----

error: failed to build rustdoc for crate datafusion v53.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/core --features array_expressions,avro,backtrace,bzip2,compression,crypto_expressions,datafusion-datasource-avro,datafusion-datasource-parquet,datafusion-functions-nested,datafusion-sql,datetime_expressions,default,encoding_expressions,extended_tests,flate2,force_hash_collisions,liblzma,math_expressions,nested_expressions,parquet,parquet_encryption,recursive_protection,regex_expressions,serde,sql,sqlparser,string_expressions,unicode_expressions,zstd &&
          cargo check &&
          cargo doc

    Building datafusion-cli v53.1.0 (current)
error: running cargo-doc on crate 'datafusion-cli' failed with output:
-----
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling unicode-ident v1.0.24
    Checking cfg-if v1.0.4
   Compiling libc v0.2.186
   Compiling find-msvc-tools v0.1.9
   Compiling shlex v1.3.0
    Checking bytes v1.11.1
    Checking memchr v2.8.0
   Compiling syn v2.0.117
   Compiling jobserver v0.1.34
   Compiling autocfg v1.5.0
   Compiling cc v1.2.62
    Checking itoa v1.0.18
   Compiling libm v0.2.16
   Compiling num-traits v0.2.19
    Checking once_cell v1.21.4
    Checking smallvec v1.15.1
    Checking pin-project-lite v0.2.17
    Checking futures-core v0.3.32
   Compiling parking_lot_core v0.9.12
    Checking scopeguard v1.2.0
    Checking lock_api v0.4.14
    Checking errno v0.3.14
    Checking futures-sink v0.3.32
    Checking signal-hook-registry v1.4.8
    Checking parking_lot v0.12.5
    Checking socket2 v0.6.3
    Checking mio v1.2.0
    Checking num-integer v0.1.46
    Checking allocator-api2 v0.2.21
    Checking equivalent v1.0.2
    Checking foldhash v0.2.0
    Checking slab v0.4.12
   Compiling version_check v0.9.5
    Checking hashbrown v0.17.1
    Checking futures-channel v0.3.32
    Checking http v1.4.0
   Compiling serde_core v1.0.228
    Checking futures-io v0.3.32
    Checking futures-task v0.3.32
    Checking ryu v1.0.23
    Checking fnv v1.0.7
    Checking zeroize v1.8.2
   Compiling zerocopy v0.8.48
    Checking http-body v1.0.1
    Checking typenum v1.20.0
    Checking tracing-core v0.1.36
   Compiling synstructure v0.13.2
   Compiling serde v1.0.228
   Compiling cmake v0.1.58
   Compiling fs_extra v1.3.0
   Compiling dunce v1.0.5
    Checking either v1.15.0
   Compiling aws-lc-sys v0.41.0
    Checking http-body-util v0.1.3
   Compiling getrandom v0.3.4
   Compiling zmij v1.0.21
    Checking indexmap v2.14.0
    Checking stable_deref_trait v1.2.1
   Compiling serde_json v1.0.149
    Checking percent-encoding v2.3.2
   Compiling tokio-macros v2.7.0
   Compiling futures-macro v0.3.32
   Compiling zerocopy-derive v0.8.48
   Compiling tracing-attributes v0.1.31
    Checking tokio v1.52.3
    Checking futures-util v0.3.32
    Checking tracing v0.1.44
   Compiling serde_derive v1.0.228
   Compiling zerofrom-derive v0.1.7
    Checking zerofrom v0.1.8
   Compiling yoke-derive v0.8.2
    Checking yoke v0.8.2
   Compiling ring v0.17.14
    Checking subtle v2.6.1
   Compiling aws-lc-rs v1.17.0
   Compiling zerovec-derive v0.11.3
    Checking num-bigint v0.4.6
    Checking siphasher v1.0.3
    Checking base64 v0.22.1
   Compiling pkg-config v0.3.33
    Checking iana-time-zone v0.1.65
    Checking chrono v0.4.44
    Checking phf_shared v0.12.1
    Checking zerovec v0.11.6
    Checking half v2.7.1
    Checking tokio-util v0.7.18
   Compiling displaydoc v0.2.5
    Checking rustls-pki-types v1.14.1
   Compiling ahash v0.8.12
    Checking getrandom v0.2.17
    Checking untrusted v0.9.0
   Compiling semver v1.0.28
   Compiling chrono-tz v0.10.4
   Compiling httparse v1.10.1
   Compiling rustc_version v0.4.1
    Checking arrow-buffer v58.3.0
    Checking phf v0.12.1
    Checking arrow-schema v58.3.0
    Checking tower-service v0.3.3
    Checking try-lock v0.2.5
   Compiling rustls v0.23.40
    Checking atomic-waker v1.1.2
    Checking arrow-data v58.3.0
    Checking h2 v0.4.14
    Checking want v0.3.1
    Checking num-complex v0.4.6
    Checking rand_core v0.10.1
   Compiling getrandom v0.4.2
    Checking hyper v1.9.0
    Checking tinystr v0.8.3
    Checking form_urlencoded v1.2.2
    Checking sync_wrapper v1.0.2
    Checking ipnet v2.12.0
    Checking litemap v0.8.2
    Checking openssl-probe v0.2.1
    Checking writeable v0.6.3
    Checking tower-layer v0.3.3
    Checking cpufeatures v0.3.0
    Checking tower v0.5.3
    Checking hyper-util v0.1.20
    Checking icu_locale_core v2.2.0
    Checking rustls-native-certs v0.8.3
    Checking zerotrie v0.2.4
    Checking potential_utf v0.1.5
   Compiling zstd-sys v2.0.16+zstd.1.5.7
   Compiling generic-array v0.14.7
   Compiling icu_normalizer_data v2.2.0
    Checking bitflags v2.11.1
    Checking utf8_iter v1.0.4
   Compiling icu_properties_data v2.2.0
    Checking icu_collections v2.2.0
    Checking icu_provider v2.2.0
    Checking arrow-array v58.3.0
   Compiling zstd-safe v7.2.4
   Compiling object v0.37.3
    Checking lexical-util v1.0.7
    Checking icu_properties v2.2.0
    Checking arrow-select v58.3.0
    Checking icu_normalizer v2.2.0
    Checking log v0.4.29
    Checking idna_adapter v1.2.2
    Checking crypto-common v0.1.7
    Checking block-buffer v0.10.4
    Checking aho-corasick v1.1.4
    Checking regex-syntax v0.8.10
   Compiling crc32fast v1.5.0
    Checking regex-automata v0.4.14
   Compiling ar_archive_writer v0.5.1
    Checking digest v0.10.7
    Checking idna v1.1.0
    Checking lexical-write-integer v1.0.6
    Checking lexical-parse-integer v1.0.6
    Checking uuid v1.23.1
    Checking unicode-segmentation v1.13.2
    Checking hex v0.4.3
    Checking unicode-width v0.2.2
    Checking simd-adler32 v0.3.9
    Checking adler2 v2.0.1
    Checking lexical-parse-float v1.0.6
    Checking miniz_oxide v0.8.9
    Checking url v2.5.8
    Checking lexical-write-float v1.0.6
    Checking regex v1.12.3
   Compiling psm v0.1.31
   Compiling flatbuffers v25.12.19
    Checking zlib-rs v0.6.3
    Checking lexical-core v1.0.6
    Checking comfy-table v7.2.2
    Checking arrow-ord v58.3.0
    Checking atoi v2.0.0
   Compiling stacker v0.1.24
   Compiling thiserror v2.0.18
    Checking flate2 v1.1.9
   Compiling snap v1.1.1
    Checking twox-hash v2.1.2
    Checking alloc-no-stdlib v2.0.4
    Checking alloc-stdlib v0.2.2
    Checking lz4_flex v0.13.1
    Checking arrow-cast v58.3.0
    Checking tower-http v0.6.10
    Checking chacha20 v0.10.0
    Checking serde_urlencoded v0.7.1
    Checking futures-executor v0.3.32
   Compiling thiserror-impl v2.0.18
    Checking csv-core v0.1.13
    Checking same-file v1.0.6
   Compiling paste v1.0.15
    Checking simdutf8 v0.1.5
    Checking walkdir v2.5.0
    Checking csv v1.4.0
    Checking zstd v0.13.3
    Checking arrow-ipc v58.3.0
    Checking futures v0.3.32
    Checking rand v0.10.1
    Checking brotli-decompressor v5.0.0
    Checking md-5 v0.10.6
    Checking quick-xml v0.39.4
   Compiling recursive-proc-macro-impl v0.1.1
   Compiling async-trait v0.1.89
    Checking itertools v0.14.0
    Checking ordered-float v2.10.1
    Checking integer-encoding v3.0.4
    Checking byteorder v1.5.0
    Checking humantime v2.3.0
    Checking brotli v8.0.2
    Checking thrift v0.17.0
    Checking recursive v0.1.1
    Checking arrow-csv v58.3.0
    Checking arrow-json v58.3.0
    Checking arrow-string v58.3.0
    Checking arrow-row v58.3.0
    Checking arrow-arith v58.3.0
   Compiling sqlparser_derive v0.5.0
    Checking hybrid-array v0.4.12
   Compiling seq-macro v0.3.6
    Checking sqlparser v0.62.0
    Checking arrow v58.3.0
    Checking cmov v0.5.3
    Checking block-buffer v0.12.0
    Checking crypto-common v0.2.1
    Checking ctutils v0.4.2
   Compiling pin-project-internal v1.1.13
    Checking const-oid v0.10.2
    Checking digest v0.11.3
    Checking fastrand v2.4.1
    Checking sha2 v0.11.0
    Checking pin-project v1.1.13
    Checking datafusion-doc v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking rand_core v0.9.5
    Checking ppv-lite86 v0.2.21
   Compiling crossbeam-utils v0.8.21
   Compiling rustix v1.1.4
    Checking foldhash v0.1.5
    Checking hashbrown v0.15.5
    Checking rand_chacha v0.9.0
    Checking linux-raw-sys v0.12.1
    Checking fixedbitset v0.5.7
    Checking petgraph v0.8.3
    Checking rand v0.9.4
    Checking hashbrown v0.14.5
   Compiling datafusion-macros v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking tempfile v3.27.0
    Checking dashmap v6.1.0
   Compiling blake3 v1.8.5
    Checking arrayref v0.3.9
    Checking constant_time_eq v0.4.2
    Checking arrayvec v0.7.6
    Checking md-5 v0.11.0
    Checking blake2 v0.10.6
   Compiling liblzma-sys v0.4.6
    Checking powerfmt v0.2.0
    Checking deranged v0.5.8
    Checking http v0.2.12
    Checking outref v0.5.2
    Checking num-conv v0.2.1
    Checking vsimd v0.8.0
    Checking time-core v0.1.8
    Checking time v0.3.47
    Checking base64-simd v0.8.0
    Checking http-body v0.4.6
    Checking bytes-utils v0.1.4
    Checking pin-utils v0.1.0
    Checking libbz2-rs-sys v0.2.4
    Checking bzip2 v0.6.1
    Checking aws-smithy-types v1.4.7
    Checking datafusion-common-runtime v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking compression-core v0.4.32
    Checking aws-smithy-async v1.2.14
   Compiling aws-smithy-runtime-api-macros v1.0.0
    Checking aws-smithy-runtime-api v1.12.0
    Checking glob v0.3.3
    Checking aws-credential-types v1.2.14
    Checking aws-smithy-http v0.63.6
   Compiling aws-types v1.3.15
    Checking aws-smithy-observability v0.2.6
    Checking hmac v0.13.0
   Compiling heck v0.5.0
    Checking utf8parse v0.2.2
    Checking aws-sigv4 v1.4.3
    Checking anstyle-parse v1.0.0
    Checking aws-smithy-json v0.62.5
   Compiling bigdecimal v0.4.10
    Checking colorchoice v1.0.5
   Compiling cfg_aliases v0.2.1
    Checking regex-lite v0.1.9
    Checking anstyle v1.0.14
    Checking crc-catalog v2.5.0
    Checking anstyle-query v1.1.5
    Checking is_terminal_polyfill v1.70.2
    Checking anstream v1.0.0
    Checking crc v3.4.0
   Compiling nix v0.31.3
   Compiling strum_macros v0.28.0
   Compiling libmimalloc-sys v0.1.47
    Checking urlencoding v2.1.3
    Checking xmlparser v0.13.6
    Checking aws-smithy-xml v0.60.15
    Checking aws-smithy-query v0.60.15
    Checking tokio-stream v0.1.18
    Checking nibble_vec v0.1.0
    Checking strsim v0.11.1
    Checking endian-type v0.2.0
    Checking option-ext v0.2.0
    Checking cpufeatures v0.2.17
    Checking clap_lex v1.1.0
    Checking dirs-sys v0.5.0
    Checking liblzma v0.4.6
    Checking sha1 v0.10.6
    Checking clap_builder v4.6.0
    Checking radix_trie v0.3.0
    Checking compression-codecs v0.4.38
    Checking arrow-avro v58.3.0
    Checking async-compression v0.4.42
   Compiling clap_derive v4.6.1
    Checking env_filter v1.0.1
    Checking home v0.5.12
    Checking jiff v0.2.24
    Checking rustyline v18.0.0
    Checking clap v4.6.1
    Checking mimalloc v0.1.50
    Checking dirs v6.0.0
    Checking env_logger v0.11.10
    Checking rustls-webpki v0.103.13
    Checking tokio-rustls v0.26.4
    Checking hyper-rustls v0.27.9
    Checking reqwest v0.12.28
    Checking aws-smithy-http-client v1.1.12
    Checking aws-smithy-runtime v1.11.1
    Checking object_store v0.13.2
    Checking aws-runtime v1.7.3
    Checking aws-sdk-sso v1.98.0
    Checking aws-sdk-sts v1.103.0
    Checking aws-sdk-ssooidc v1.100.0
    Checking aws-config v1.8.16
    Checking parquet v58.3.0
    Checking datafusion-common v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
error[E0599]: no method named `set_column_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:161:22
    |
160 |                   builder = builder
    |  ___________________________-
161 | |                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
    | |_____________________-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_column_bloom_filter_ndv` with a similar name
    |
161 -                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
161 +                     .set_column_bloom_filter_ndv(path.clone(), bloom_filter_ndv);
    |

error[E0599]: no method named `set_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:241:31
    |
241 |             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_bloom_filter_ndv` with a similar name
    |
241 -             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
241 +             builder = builder.set_bloom_filter_ndv(*bloom_filter_ndv);
    |

For more information about this error, try `rustc --explain E0599`.
error: could not compile `datafusion-common` (lib) due to 2 previous errors

-----

error: failed to build rustdoc for crate datafusion-cli v53.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-cli --features backtrace,default &&
          cargo check &&
          cargo doc

    Building datafusion-common v53.1.0 (current)
       Built [  34.650s] (current)
     Parsing datafusion-common v53.1.0 (current)
      Parsed [   0.057s] (current)
    Building datafusion-common v53.1.0 (baseline)
       Built [  35.024s] (baseline)
     Parsing datafusion-common v53.1.0 (baseline)
      Parsed [   0.060s] (baseline)
    Checking datafusion-common v53.1.0 -> v53.1.0 (no change; assume patch)
     Checked [   0.646s] 222 checks: 221 pass, 1 fail, 0 warn, 30 skip

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ParquetOptions.filter_pushdown_min_bytes_per_sec in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:843
  field ParquetOptions.filter_collecting_byte_ratio_threshold in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:843
  field ParquetOptions.filter_confidence_z in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:843

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  71.958s] datafusion-common
    Building datafusion-datasource-parquet v53.1.0 (current)
error: running cargo-doc on crate 'datafusion-datasource-parquet' failed with output:
-----
   Compiling proc-macro2 v1.0.106
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.45
   Compiling libc v0.2.186
    Checking cfg-if v1.0.4
   Compiling libm v0.2.16
   Compiling autocfg v1.5.0
   Compiling num-traits v0.2.19
   Compiling syn v2.0.117
    Checking memchr v2.8.0
   Compiling zerocopy v0.8.48
    Checking bytes v1.11.1
    Checking once_cell v1.21.4
    Checking itoa v1.0.18
   Compiling serde_core v1.0.228
   Compiling getrandom v0.3.4
   Compiling zmij v1.0.21
   Compiling serde_json v1.0.149
    Checking num-integer v0.1.46
    Checking iana-time-zone v0.1.65
    Checking allocator-api2 v0.2.21
    Checking siphasher v1.0.3
    Checking foldhash v0.2.0
    Checking stable_deref_trait v1.2.1
   Compiling version_check v0.9.5
    Checking equivalent v1.0.2
    Checking hashbrown v0.17.1
   Compiling ahash v0.8.12
    Checking phf_shared v0.12.1
    Checking chrono v0.4.44
    Checking num-bigint v0.4.6
   Compiling chrono-tz v0.10.4
    Checking phf v0.12.1
   Compiling shlex v1.3.0
   Compiling find-msvc-tools v0.1.9
   Compiling synstructure v0.13.2
    Checking arrow-schema v58.3.0
   Compiling jobserver v0.1.34
   Compiling cc v1.2.62
    Checking num-complex v0.4.6
    Checking litemap v0.8.2
    Checking writeable v0.6.3
    Checking smallvec v1.15.1
   Compiling pkg-config v0.3.33
    Checking lexical-util v1.0.7
   Compiling zerocopy-derive v0.8.48
   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.2
   Compiling displaydoc v0.2.5
    Checking zerotrie v0.2.4
    Checking zerovec v0.11.6
   Compiling zstd-sys v2.0.16+zstd.1.5.7
    Checking utf8_iter v1.0.4
    Checking pin-project-lite v0.2.17
   Compiling icu_properties_data v2.2.0
    Checking tinystr v0.8.3
    Checking potential_utf v0.1.5
   Compiling icu_normalizer_data v2.2.0
    Checking icu_locale_core v2.2.0
    Checking icu_collections v2.2.0
    Checking icu_provider v2.2.0
    Checking futures-core v0.3.32
    Checking futures-sink v0.3.32
   Compiling semver v1.0.28
    Checking futures-channel v0.3.32
   Compiling rustc_version v0.4.1
    Checking lexical-parse-integer v1.0.6
    Checking lexical-write-integer v1.0.6
   Compiling futures-macro v0.3.32
   Compiling zstd-safe v7.2.4
    Checking bitflags v2.11.1
    Checking futures-task v0.3.32
   Compiling parking_lot_core v0.9.12
    Checking slab v0.4.12
    Checking futures-io v0.3.32
    Checking lexical-write-float v1.0.6
    Checking futures-util v0.3.32
    Checking lexical-parse-float v1.0.6
    Checking half v2.7.1
    Checking arrow-buffer v58.3.0
   Compiling flatbuffers v25.12.19
    Checking icu_normalizer v2.2.0
    Checking icu_properties v2.2.0
    Checking arrow-data v58.3.0
    Checking arrow-array v58.3.0
    Checking aho-corasick v1.1.4
    Checking unicode-width v0.2.2
    Checking regex-syntax v0.8.10
    Checking ryu v1.0.23
    Checking scopeguard v1.2.0
    Checking base64 v0.22.1
    Checking unicode-segmentation v1.13.2
    Checking arrow-select v58.3.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
   Compiling tokio-macros v2.7.0
    Checking arrow-ord v58.3.0
    Checking regex-automata v0.4.14
    Checking atoi v2.0.0
    Checking twox-hash v2.1.2
    Checking percent-encoding v2.3.2
    Checking alloc-no-stdlib v2.0.4
   Compiling thiserror v2.0.18
   Compiling getrandom v0.4.2
    Checking form_urlencoded v1.2.2
    Checking alloc-stdlib v0.2.2
    Checking arrow-cast v58.3.0
    Checking lz4_flex v0.13.1
    Checking tokio v1.52.3
    Checking regex v1.12.3
    Checking idna v1.1.0
    Checking futures-executor v0.3.32
   Compiling ring v0.17.14
   Compiling tracing-attributes v0.1.31
   Compiling thiserror-impl v2.0.18
    Checking indexmap v2.14.0
    Checking tracing-core v0.1.36
    Checking csv-core v0.1.13
    Checking same-file v1.0.6
   Compiling snap v1.1.1
    Checking either v1.15.0
   Compiling paste v1.0.15
    Checking simdutf8 v0.1.5
    Checking itertools v0.14.0
    Checking csv v1.4.0
    Checking walkdir v2.5.0
    Checking tracing v0.1.44
    Checking url v2.5.8
    Checking futures v0.3.32
    Checking brotli-decompressor v5.0.0
    Checking parking_lot v0.12.5
   Compiling async-trait v0.1.89
    Checking ordered-float v2.10.1
    Checking http v1.4.0
    Checking getrandom v0.2.17
    Checking humantime v2.3.0
    Checking byteorder v1.5.0
    Checking untrusted v0.9.0
    Checking integer-encoding v3.0.4
    Checking zlib-rs v0.6.3
    Checking thrift v0.17.0
    Checking object_store v0.13.2
    Checking zstd v0.13.3
    Checking arrow-ipc v58.3.0
    Checking flate2 v1.1.9
    Checking brotli v8.0.2
    Checking arrow-csv v58.3.0
    Checking arrow-json v58.3.0
    Checking arrow-string v58.3.0
    Checking arrow-arith v58.3.0
    Checking arrow-row v58.3.0
   Compiling seq-macro v0.3.6
    Checking log v0.4.29
    Checking arrow v58.3.0
    Checking uuid v1.23.1
    Checking hex v0.4.3
   Compiling pin-project-internal v1.1.13
   Compiling rustix v1.1.4
   Compiling crossbeam-utils v0.8.21
    Checking ppv-lite86 v0.2.21
    Checking rand_core v0.9.5
    Checking linux-raw-sys v0.12.1
    Checking parquet v58.3.0
    Checking datafusion-doc v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking rand_chacha v0.9.0
    Checking pin-project v1.1.13
    Checking fastrand v2.4.1
    Checking hashbrown v0.14.5
    Checking foldhash v0.1.5
    Checking hashbrown v0.15.5
    Checking dashmap v6.1.0
    Checking rand v0.9.4
    Checking fixedbitset v0.5.7
    Checking tempfile v3.27.0
    Checking petgraph v0.8.3
    Checking datafusion-common-runtime v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
   Compiling datafusion-macros v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking glob v0.3.3
    Checking datafusion-common v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
error[E0599]: no method named `set_column_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:161:22
    |
160 |                   builder = builder
    |  ___________________________-
161 | |                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
    | |_____________________-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_column_bloom_filter_ndv` with a similar name
    |
161 -                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
161 +                     .set_column_bloom_filter_ndv(path.clone(), bloom_filter_ndv);
    |

error[E0599]: no method named `set_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:241:31
    |
241 |             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_bloom_filter_ndv` with a similar name
    |
241 -             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
241 +             builder = builder.set_bloom_filter_ndv(*bloom_filter_ndv);
    |

For more information about this error, try `rustc --explain E0599`.
error: could not compile `datafusion-common` (lib) due to 2 previous errors

-----

error: failed to build rustdoc for crate datafusion-datasource-parquet v53.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/datasource-parquet --features parquet_encryption &&
          cargo check &&
          cargo doc

    Building datafusion-physical-expr-common v53.1.0 (current)
       Built [  19.803s] (current)
     Parsing datafusion-physical-expr-common v53.1.0 (current)
      Parsed [   0.020s] (current)
    Building datafusion-physical-expr-common v53.1.0 (baseline)
       Built [  20.173s] (baseline)
     Parsing datafusion-physical-expr-common v53.1.0 (baseline)
      Parsed [   0.020s] (baseline)
    Checking datafusion-physical-expr-common v53.1.0 -> v53.1.0 (no change; assume patch)
     Checked [   0.197s] 222 checks: 222 pass, 30 skip
     Summary no semver update required
    Finished [  41.048s] datafusion-physical-expr-common
    Building datafusion-physical-plan v53.1.0 (current)
       Built [  33.007s] (current)
     Parsing datafusion-physical-plan v53.1.0 (current)
      Parsed [   0.128s] (current)
    Building datafusion-physical-plan v53.1.0 (baseline)
       Built [  32.303s] (baseline)
     Parsing datafusion-physical-plan v53.1.0 (baseline)
      Parsed [   0.124s] (baseline)
    Checking datafusion-physical-plan v53.1.0 -> v53.1.0 (no change; assume patch)
     Checked [   0.556s] 222 checks: 222 pass, 30 skip
     Summary no semver update required
    Finished [  67.778s] datafusion-physical-plan
    Building datafusion-proto v53.1.0 (current)
error: running cargo-doc on crate 'datafusion-proto' failed with output:
-----
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling unicode-ident v1.0.24
   Compiling libc v0.2.186
    Checking cfg-if v1.0.4
   Compiling libm v0.2.16
   Compiling autocfg v1.5.0
   Compiling num-traits v0.2.19
   Compiling syn v2.0.117
    Checking memchr v2.8.0
    Checking bytes v1.11.1
   Compiling zerocopy v0.8.48
   Compiling serde_core v1.0.228
   Compiling getrandom v0.3.4
    Checking itoa v1.0.18
    Checking once_cell v1.21.4
   Compiling zmij v1.0.21
   Compiling serde_json v1.0.149
    Checking num-integer v0.1.46
    Checking allocator-api2 v0.2.21
    Checking foldhash v0.2.0
    Checking iana-time-zone v0.1.65
   Compiling version_check v0.9.5
    Checking equivalent v1.0.2
    Checking siphasher v1.0.3
    Checking phf_shared v0.12.1
    Checking hashbrown v0.17.1
   Compiling jobserver v0.1.34
   Compiling ahash v0.8.12
    Checking chrono v0.4.44
    Checking num-bigint v0.4.6
   Compiling find-msvc-tools v0.1.9
    Checking stable_deref_trait v1.2.1
   Compiling shlex v1.3.0
   Compiling synstructure v0.13.2
   Compiling chrono-tz v0.10.4
   Compiling cc v1.2.62
    Checking arrow-schema v58.3.0
    Checking phf v0.12.1
   Compiling pkg-config v0.3.33
    Checking num-complex v0.4.6
    Checking pin-project-lite v0.2.17
    Checking lexical-util v1.0.7
   Compiling zstd-sys v2.0.16+zstd.1.5.7
   Compiling zerocopy-derive v0.8.48
   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.2
   Compiling displaydoc v0.2.5
    Checking futures-sink v0.3.32
    Checking litemap v0.8.2
    Checking zerovec v0.11.6
    Checking futures-core v0.3.32
    Checking smallvec v1.15.1
    Checking writeable v0.6.3
    Checking zerotrie v0.2.4
    Checking tinystr v0.8.3
    Checking potential_utf v0.1.5
    Checking icu_locale_core v2.2.0
    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
   Compiling zstd-safe v7.2.4
   Compiling rustc_version v0.4.1
    Checking futures-channel v0.3.32
    Checking lexical-parse-integer v1.0.6
    Checking lexical-write-integer v1.0.6
   Compiling futures-macro v0.3.32
   Compiling tokio-macros v2.7.0
    Checking base64 v0.22.1
    Checking half v2.7.1
    Checking futures-io v0.3.32
   Compiling parking_lot_core v0.9.12
    Checking slab v0.4.12
    Checking futures-task v0.3.32
    Checking bitflags v2.11.1
    Checking arrow-buffer v58.3.0
    Checking futures-util v0.3.32
    Checking tokio v1.52.3
    Checking arrow-data v58.3.0
    Checking arrow-array v58.3.0
    Checking arrow-select v58.3.0
    Checking lexical-write-float v1.0.6
    Checking lexical-parse-float v1.0.6
   Compiling flatbuffers v25.12.19
    Checking icu_properties v2.2.0
    Checking icu_normalizer v2.2.0
    Checking aho-corasick v1.1.4
    Checking unicode-segmentation v1.13.2
   Compiling getrandom v0.4.2
    Checking ryu v1.0.23
   Compiling crc32fast v1.5.0
    Checking scopeguard v1.2.0
    Checking regex-syntax v0.8.10
    Checking unicode-width v0.2.2
    Checking idna_adapter v1.2.2
    Checking lock_api v0.4.14
    Checking comfy-table v7.2.2
    Checking arrow-ord v58.3.0
    Checking lexical-core v1.0.6
    Checking indexmap v2.14.0
    Checking atoi v2.0.0
    Checking alloc-no-stdlib v2.0.4
    Checking percent-encoding v2.3.2
    Checking adler2 v2.0.1
   Compiling thiserror v2.0.18
    Checking twox-hash v2.1.2
    Checking simd-adler32 v0.3.9
   Compiling snap v1.1.1
    Checking miniz_oxide v0.8.9
    Checking lz4_flex v0.13.1
    Checking regex-automata v0.4.14
    Checking form_urlencoded v1.2.2
    Checking alloc-stdlib v0.2.2
    Checking arrow-cast v58.3.0
    Checking idna v1.1.0
    Checking futures-executor v0.3.32
   Compiling thiserror-impl v2.0.18
   Compiling tracing-attributes v0.1.31
    Checking regex v1.12.3
    Checking tracing-core v0.1.36
    Checking csv-core v0.1.13
    Checking either v1.15.0
    Checking simdutf8 v0.1.5
    Checking same-file v1.0.6
   Compiling paste v1.0.15
    Checking zlib-rs v0.6.3
    Checking walkdir v2.5.0
    Checking itertools v0.14.0
    Checking tracing v0.1.44
    Checking csv v1.4.0
    Checking futures v0.3.32
    Checking url v2.5.8
    Checking brotli-decompressor v5.0.0
    Checking flate2 v1.1.9
    Checking parking_lot v0.12.5
   Compiling async-trait v0.1.89
    Checking http v1.4.0
    Checking ordered-float v2.10.1
    Checking byteorder v1.5.0
    Checking integer-encoding v3.0.4
    Checking humantime v2.3.0
    Checking thrift v0.17.0
    Checking brotli v8.0.2
    Checking arrow-csv v58.3.0
    Checking object_store v0.13.2
    Checking zstd v0.13.3
    Checking arrow-ipc v58.3.0
    Checking arrow-json v58.3.0
    Checking arrow-string v58.3.0
    Checking uuid v1.23.1
    Checking arrow-arith v58.3.0
    Checking arrow-row v58.3.0
   Compiling seq-macro v0.3.6
    Checking log v0.4.29
   Compiling pin-project-internal v1.1.13
    Checking ppv-lite86 v0.2.21
    Checking arrow v58.3.0
    Checking rand_core v0.9.5
   Compiling crossbeam-utils v0.8.21
   Compiling rustix v1.1.4
    Checking parquet v58.3.0
    Checking rand_chacha v0.9.0
    Checking datafusion-doc v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking linux-raw-sys v0.12.1
    Checking rand v0.9.4
    Checking pin-project v1.1.13
    Checking foldhash v0.1.5
    Checking hashbrown v0.14.5
    Checking fastrand v2.4.1
    Checking hashbrown v0.15.5
    Checking dashmap v6.1.0
    Checking fixedbitset v0.5.7
    Checking petgraph v0.8.3
   Compiling datafusion-macros v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
    Checking tempfile v3.27.0
    Checking hex v0.4.3
    Checking datafusion-common-runtime v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking glob v0.3.3
   Compiling serde v1.0.228
   Compiling serde_derive v1.0.228
   Compiling liblzma-sys v0.4.6
   Compiling anyhow v1.0.102
    Checking crc-catalog v2.5.0
   Compiling heck v0.5.0
    Checking libbz2-rs-sys v0.2.4
   Compiling prost-derive v0.14.3
    Checking datafusion-common v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
    Checking bzip2 v0.6.1
   Compiling strum_macros v0.28.0
    Checking crc v3.4.0
    Checking tokio-util v0.7.18
    Checking tokio-stream v0.1.18
error[E0599]: no method named `set_column_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:161:22
    |
160 |                   builder = builder
    |  ___________________________-
161 | |                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
    | |_____________________-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_column_bloom_filter_ndv` with a similar name
    |
161 -                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
161 +                     .set_column_bloom_filter_ndv(path.clone(), bloom_filter_ndv);
    |

error[E0599]: no method named `set_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:241:31
    |
241 |             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_bloom_filter_ndv` with a similar name
    |
241 -             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
241 +             builder = builder.set_bloom_filter_ndv(*bloom_filter_ndv);
    |

    Checking prost v0.14.3
    Checking pbjson v0.9.0
For more information about this error, try `rustc --explain E0599`.
error: could not compile `datafusion-common` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

-----

error: failed to build rustdoc for crate datafusion-proto v53.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,pbjson,serde,serde_json &&
          cargo check &&
          cargo doc

    Building datafusion-proto-common v53.1.0 (current)
       Built [  22.115s] (current)
     Parsing datafusion-proto-common v53.1.0 (current)
      Parsed [   0.047s] (current)
    Building datafusion-proto-common v53.1.0 (baseline)
       Built [  21.505s] (baseline)
     Parsing datafusion-proto-common v53.1.0 (baseline)
      Parsed [   0.049s] (baseline)
    Checking datafusion-proto-common v53.1.0 -> v53.1.0 (no change; assume patch)
     Checked [   1.073s] 222 checks: 222 pass, 30 skip
     Summary no semver update required
    Finished [  45.906s] datafusion-proto-common
    Building datafusion-pruning v53.1.0 (current)
       Built [  37.104s] (current)
     Parsing datafusion-pruning v53.1.0 (current)
      Parsed [   0.013s] (current)
    Building datafusion-pruning v53.1.0 (baseline)
       Built [  38.160s] (baseline)
     Parsing datafusion-pruning v53.1.0 (baseline)
      Parsed [   0.013s] (baseline)
    Checking datafusion-pruning v53.1.0 -> v53.1.0 (no change; assume patch)
     Checked [   0.077s] 222 checks: 222 pass, 30 skip
     Summary no semver update required
    Finished [  76.563s] datafusion-pruning
    Building datafusion-sqllogictest v53.1.0 (current)
error: running cargo-doc on crate 'datafusion-sqllogictest' failed with output:
-----
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling unicode-ident v1.0.24
   Compiling libc v0.2.186
    Checking cfg-if v1.0.4
    Checking bytes v1.11.1
    Checking memchr v2.8.0
   Compiling serde_core v1.0.228
   Compiling syn v2.0.117
   Compiling autocfg v1.5.0
   Compiling shlex v1.3.0
   Compiling jobserver v0.1.34
    Checking itoa v1.0.18
   Compiling find-msvc-tools v0.1.9
   Compiling cc v1.2.62
   Compiling libm v0.2.16
   Compiling num-traits v0.2.19
    Checking foldhash v0.2.0
    Checking equivalent v1.0.2
    Checking allocator-api2 v0.2.21
    Checking once_cell v1.21.4
    Checking hashbrown v0.17.1
    Checking pin-project-lite v0.2.17
   Compiling zmij v1.0.21
    Checking indexmap v2.14.0
    Checking futures-core v0.3.32
   Compiling zerocopy v0.8.48
    Checking futures-sink v0.3.32
    Checking errno v0.3.14
    Checking socket2 v0.6.3
    Checking signal-hook-registry v1.4.8
    Checking mio v1.2.0
   Compiling version_check v0.9.5
   Compiling serde v1.0.228
    Checking num-integer v0.1.46
   Compiling serde_json v1.0.149
    Checking slab v0.4.12
    Checking futures-channel v0.3.32
    Checking smallvec v1.15.1
   Compiling getrandom v0.3.4
    Checking num-bigint v0.4.6
   Compiling synstructure v0.13.2
    Checking http v1.4.0
    Checking base64 v0.22.1
    Checking futures-task v0.3.32
    Checking futures-io v0.3.32
    Checking iana-time-zone v0.1.65
    Checking chrono v0.4.44
    Checking tracing-core v0.1.36
   Compiling zerocopy-derive v0.8.48
   Compiling tokio-macros v2.7.0
   Compiling serde_derive v1.0.228
    Checking tokio v1.52.3
   Compiling futures-macro v0.3.32
    Checking futures-util v0.3.32
   Compiling zerofrom-derive v0.1.7
   Compiling tracing-attributes v0.1.31
    Checking siphasher v1.0.3
    Checking zerofrom v0.1.8
   Compiling yoke-derive v0.8.2
    Checking stable_deref_trait v1.2.1
    Checking num-complex v0.4.6
   Compiling zerovec-derive v0.11.3
    Checking tracing v0.1.44
    Checking getrandom v0.2.17
   Compiling pkg-config v0.3.33
    Checking phf_shared v0.12.1
    Checking half v2.7.1
   Compiling displaydoc v0.2.5
   Compiling ahash v0.8.12
   Compiling chrono-tz v0.10.4
    Checking yoke v0.8.2
    Checking percent-encoding v2.3.2
   Compiling thiserror v2.0.18
    Checking zerovec v0.11.6
    Checking arrow-buffer v58.3.0
    Checking phf v0.12.1
   Compiling thiserror-impl v2.0.18
    Checking arrow-schema v58.3.0
   Compiling ring v0.17.14
    Checking arrow-data v58.3.0
   Compiling semver v1.0.28
    Checking log v0.4.29
   Compiling getrandom v0.4.2
    Checking rand_core v0.10.1
    Checking tinystr v0.8.3
    Checking writeable v0.6.3
    Checking untrusted v0.9.0
    Checking litemap v0.8.2
    Checking bitflags v2.11.1
    Checking icu_locale_core v2.2.0
    Checking potential_utf v0.1.5
    Checking zerotrie v0.2.4
   Compiling zstd-sys v2.0.16+zstd.1.5.7
   Compiling async-trait v0.1.89
   Compiling icu_normalizer_data v2.2.0
   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 aho-corasick v1.1.4
    Checking lexical-util v1.0.7
    Checking ryu v1.0.23
   Compiling object v0.37.3
    Checking regex-syntax v0.8.10
    Checking arrow-array v58.3.0
   Compiling zstd-safe v7.2.4
    Checking regex-automata v0.4.14
    Checking icu_properties v2.2.0
    Checking arrow-select v58.3.0
    Checking icu_normalizer v2.2.0
   Compiling rustix v1.1.4
    Checking idna_adapter v1.2.2
    Checking regex v1.12.3
    Checking form_urlencoded v1.2.2
   Compiling parking_lot_core v0.9.12
    Checking typenum v1.20.0
    Checking unicode-width v0.2.2
    Checking either v1.15.0
   Compiling crc32fast v1.5.0
    Checking idna v1.1.0
    Checking lexical-parse-integer v1.0.6
    Checking lexical-write-integer v1.0.6
   Compiling rustc_version v0.4.1
    Checking futures-executor v0.3.32
   Compiling pin-project-internal v1.1.13
    Checking scopeguard v1.2.0
    Checking adler2 v2.0.1
    Checking simd-adler32 v0.3.9
    Checking miniz_oxide v0.8.9
    Checking lock_api v0.4.14
    Checking futures v0.3.32
   Compiling flatbuffers v25.12.19
    Checking lexical-write-float v1.0.6
    Checking pin-project v1.1.13
    Checking lexical-parse-float v1.0.6
    Checking url v2.5.8
    Checking zlib-rs v0.6.3
    Checking byteorder v1.5.0
    Checking unicode-segmentation v1.13.2
    Checking comfy-table v7.2.2
   Compiling ar_archive_writer v0.5.1
    Checking lexical-core v1.0.6
    Checking itertools v0.14.0
    Checking flate2 v1.1.9
    Checking arrow-ord v58.3.0
   Compiling psm v0.1.31
    Checking atoi v2.0.0
   Compiling stacker v0.1.24
   Compiling snap v1.1.1
    Checking twox-hash v2.1.2
    Checking alloc-no-stdlib v2.0.4
    Checking hex v0.4.3
    Checking lz4_flex v0.13.1
    Checking alloc-stdlib v0.2.2
    Checking arrow-cast v58.3.0
    Checking parking_lot v0.12.5
    Checking csv-core v0.1.13
    Checking simdutf8 v0.1.5
   Compiling paste v1.0.15
    Checking same-file v1.0.6
    Checking humantime v2.3.0
    Checking walkdir v2.5.0
    Checking csv v1.4.0
    Checking brotli-decompressor v5.0.0
   Compiling recursive-proc-macro-impl v0.1.1
    Checking ordered-float v2.10.1
    Checking subtle v2.6.1
    Checking integer-encoding v3.0.4
    Checking recursive v0.1.1
    Checking brotli v8.0.2
    Checking arrow-json v58.3.0
    Checking thrift v0.17.0
    Checking arrow-csv v58.3.0
    Checking object_store v0.13.2
    Checking arrow-string v58.3.0
    Checking arrow-row v58.3.0
    Checking arrow-arith v58.3.0
    Checking uuid v1.23.1
    Checking tokio-util v0.7.18
   Compiling sqlparser_derive v0.5.0
   Compiling seq-macro v0.3.6
    Checking zstd v0.13.3
    Checking arrow-ipc v58.3.0
    Checking ppv-lite86 v0.2.21
    Checking cpufeatures v0.3.0
    Checking hybrid-array v0.4.12
    Checking sqlparser v0.62.0
    Checking cmov v0.5.3
    Checking linux-raw-sys v0.12.1
    Checking crypto-common v0.2.1
    Checking arrow v58.3.0
    Checking parquet v58.3.0
    Checking block-buffer v0.12.0
    Checking ctutils v0.4.2
    Checking rand_core v0.9.5
   Compiling generic-array v0.14.7
    Checking const-oid v0.10.2
    Checking digest v0.11.3
    Checking rand_chacha v0.9.0
    Checking rand v0.9.4
    Checking datafusion-doc v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/doc)
    Checking foldhash v0.1.5
   Compiling crossbeam-utils v0.8.21
    Checking hashbrown v0.15.5
    Checking crypto-common v0.1.7
    Checking block-buffer v0.10.4
    Checking fastrand v2.4.1
    Checking fixedbitset v0.5.7
   Compiling heck v0.5.0
    Checking petgraph v0.8.3
    Checking tempfile v3.27.0
    Checking digest v0.10.7
    Checking md-5 v0.11.0
    Checking sha2 v0.11.0
    Checking hashbrown v0.14.5
   Compiling datafusion-macros v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/macros)
   Compiling blake3 v1.8.5
    Checking dashmap v6.1.0
   Compiling anyhow v1.0.102
    Checking arrayvec v0.7.6
    Checking arrayref v0.3.9
    Checking constant_time_eq v0.4.2
    Checking blake2 v0.10.6
   Compiling liblzma-sys v0.4.6
    Checking libbz2-rs-sys v0.2.4
    Checking bzip2 v0.6.1
   Compiling prost-derive v0.14.3
    Checking datafusion-common-runtime v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common-runtime)
    Checking compression-core v0.4.32
   Compiling httparse v1.10.1
    Checking http-body v1.0.1
    Checking glob v0.3.3
    Checking tower-service v0.3.3
    Checking try-lock v0.2.5
    Checking atomic-waker v1.1.2
    Checking fnv v1.0.7
    Checking h2 v0.4.14
    Checking want v0.3.1
    Checking tokio-stream v0.1.18
    Checking zeroize v1.8.2
    Checking httpdate v1.0.3
    Checking hyper v1.9.0
    Checking rustls-pki-types v1.14.1
    Checking datafusion-common v53.1.0 (/home/runner/work/datafusion/datafusion/datafusion/common)
   Compiling prost v0.14.3
    Checking hyper-util v0.1.20
    Checking http-body-util v0.1.3
error[E0599]: no method named `set_column_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:161:22
    |
160 |                   builder = builder
    |  ___________________________-
161 | |                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
    | |_____________________-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_column_bloom_filter_ndv` with a similar name
    |
161 -                     .set_column_bloom_filter_max_ndv(path.clone(), bloom_filter_ndv);
161 +                     .set_column_bloom_filter_ndv(path.clone(), bloom_filter_ndv);
    |

error[E0599]: no method named `set_bloom_filter_max_ndv` found for struct `WriterPropertiesBuilder` in the current scope
   --> /home/runner/work/datafusion/datafusion/datafusion/common/src/file_options/parquet_writer.rs:241:31
    |
241 |             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^
    |
help: there is a method `set_bloom_filter_ndv` with a similar name
    |
241 -             builder = builder.set_bloom_filter_max_ndv(*bloom_filter_ndv);
241 +             builder = builder.set_bloom_filter_ndv(*bloom_filter_ndv);
    |

   Compiling prettyplease v0.2.37
    Checking tower-layer v0.3.3
    Checking sync_wrapper v1.0.2
   Compiling rustls v0.23.40
   Compiling prost-types v0.14.3
    Checking liblzma v0.4.6
    Checking compression-codecs v0.4.38
    Checking async-compression v0.4.42
For more information about this error, try `rustc --explain E0599`.
error: could not compile `datafusion-common` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

-----

error: failed to build rustdoc for crate datafusion-sqllogictest v53.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/sqllogictest --features avro,backtrace,bytes,chrono,datafusion-substrait,parquet_encryption,postgres,postgres-types,substrait,testcontainers-modules,tokio-postgres &&
          cargo check &&
          cargo doc

error: aborting due to failure to build rustdoc for crate datafusion v53.1.0

@github-actions github-actions Bot added the auto detected api change Auto detected API change label May 15, 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 common Related to common crate core Core DataFusion crate datasource Changes to the datasource crate documentation Improvements or additions to documentation physical-expr Changes to the physical-expr crates physical-plan Changes to the physical-plan crate proto Related to proto crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant