haohuaijin opened a new issue, #26181:
URL: https://github.com/apache/datafusion/issues/26181

   ### Describe the bug
   
   Running Clippy with all features enabled fails with three 
`clippy::mutable_key_type` errors.
   
   This was discovered during local checks for 
https://github.com/apache/datafusion/pull/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


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to