Repository navigation
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Running Clippy with all features enabled fails with three clippy::mutable_key_type errors.
This was discovered during local checks for #26180. The errors also occur on the main branch.
To Reproduce
run below command that describe in agent.md
cargo clippy --all-targets --all-features -- -D warnings
╰─$ cargo clippy --all-targets --all-features -- -D warnings
Checking datafusion-optimizer v55.1.0 (/Users/huaijinhao/gitrepo/apache/datafusion/datafusion/optimizer)
error: mutable key type
--> datafusion/optimizer/src/push_down_filter.rs:1138:69
|
1138 | fn extract_partition_keys(func: &WindowFunction) -> HashSet<&Expr> {
| ^^^^^^^^^^^^^^
|
= note: ... because it contains `&Expr`, which has interior mutability
= note: ... because it contains `Expr`, which has interior mutability
= note: ... because it contains `ScalarValue`, which has interior mutability
= note: ... because it contains `Arc<FixedSizeListArray>`, which has interior mutability
= note: ... because it contains `FixedSizeListArray`, which has interior mutability
= note: ... because it contains `Option<NullBuffer>`, which has interior mutability
= note: ... because it contains `NullBuffer`, which has interior mutability
= note: ... because it contains `BooleanBuffer`, which has interior mutability
= note: ... because it contains `Buffer`, which has interior mutability
= note: ... because it contains `Arc<Bytes>`, which has interior mutability
= note: ... because it contains `Bytes`, which has interior mutability
= note: ... because it contains `TrackedReservation`, which has interior mutability
= note: ... because it contains `Mutex<Option<Box<dyn MemoryReservation>>>`, which has interior mutability
= note: ... because it contains `Mutex`, which has interior mutability
= note: ... because it contains `OnceBox<Mutex>`, which has interior mutability
= note: ... because it contains `Atomic<*mut Mutex>`, which has interior mutability
= note: ... because it contains `UnsafeCell<<*mut Mutex as AtomicPrimitive>::Storage>`, which has interior mutability
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.99.0/index.html#mutable_key_type
= note: `-D clippy::mutable-key-type` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::mutable_key_type)]`
error: mutable key type
--> datafusion/optimizer/src/push_down_filter.rs:1142:17
|
1142 | / let potential_partition_keys = window
1143 | | .window_expr
1144 | | .iter()
1145 | | .map(|e| {
... |
1168 | | .reduce(|a, b| &a & &b)
1169 | | .unwrap_or_default();
| |_________________________________________^
|
= note: ... because it contains `&Expr`, which has interior mutability
= note: ... because it contains `Expr`, which has interior mutability
= note: ... because it contains `ScalarValue`, which has interior mutability
= note: ... because it contains `Arc<FixedSizeListArray>`, which has interior mutability
= note: ... because it contains `FixedSizeListArray`, which has interior mutability
= note: ... because it contains `Option<NullBuffer>`, which has interior mutability
= note: ... because it contains `NullBuffer`, which has interior mutability
= note: ... because it contains `BooleanBuffer`, which has interior mutability
= note: ... because it contains `Buffer`, which has interior mutability
= note: ... because it contains `Arc<Bytes>`, which has interior mutability
= note: ... because it contains `Bytes`, which has interior mutability
= note: ... because it contains `TrackedReservation`, which has interior mutability
= note: ... because it contains `Mutex<Option<Box<dyn MemoryReservation>>>`, which has interior mutability
= note: ... because it contains `Mutex`, which has interior mutability
= note: ... because it contains `OnceBox<Mutex>`, which has interior mutability
= note: ... because it contains `Atomic<*mut Mutex>`, which has interior mutability
= note: ... because it contains `UnsafeCell<<*mut Mutex as AtomicPrimitive>::Storage>`, which has interior mutability
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.99.0/index.html#mutable_key_type
error: mutable key type
--> datafusion/optimizer/src/push_down_filter.rs:1606:21
|
1606 | partition_keys: &HashSet<&Expr>,
| ^^^^^^^^^^^^^^^
|
= note: ... because it contains `&Expr`, which has interior mutability
= note: ... because it contains `Expr`, which has interior mutability
= note: ... because it contains `ScalarValue`, which has interior mutability
= note: ... because it contains `Arc<FixedSizeListArray>`, which has interior mutability
= note: ... because it contains `FixedSizeListArray`, which has interior mutability
= note: ... because it contains `Option<NullBuffer>`, which has interior mutability
= note: ... because it contains `NullBuffer`, which has interior mutability
= note: ... because it contains `BooleanBuffer`, which has interior mutability
= note: ... because it contains `Buffer`, which has interior mutability
= note: ... because it contains `Arc<Bytes>`, which has interior mutability
= note: ... because it contains `Bytes`, which has interior mutability
= note: ... because it contains `TrackedReservation`, which has interior mutability
= note: ... because it contains `Mutex<Option<Box<dyn MemoryReservation>>>`, which has interior mutability
= note: ... because it contains `Mutex`, which has interior mutability
= note: ... because it contains `OnceBox<Mutex>`, which has interior mutability
= note: ... because it contains `Atomic<*mut Mutex>`, which has interior mutability
= note: ... because it contains `UnsafeCell<<*mut Mutex as AtomicPrimitive>::Storage>`, which has interior mutability
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.99.0/index.html#mutable_key_type
error: could not compile `datafusion-optimizer` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: could not compile `datafusion-optimizer` (lib test) due to 3 previous errors
Expected behavior
No response
Additional context
No response
Willingness to contribute
None
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
fix: restore floating-point rounding mode after panic (apache#26412)
fix: UNNEST now preserves item fields in expression inference and log…
fix: restore all-features Clippy for DataFrame aggregate rewrites (ap…
ci: check all features with Clippy (apache#26591)