diff --git a/crates/polars-core/src/chunked_array/ops/zip.rs b/crates/polars-core/src/chunked_array/ops/zip.rs index 630cef7f4808..2e6ca0f7afb8 100644 --- a/crates/polars-core/src/chunked_array/ops/zip.rs +++ b/crates/polars-core/src/chunked_array/ops/zip.rs @@ -375,10 +375,10 @@ impl ChunkZip for StructChunked { .all(|(r, m)| r == m)); let combine = if l.null_count() == 0 { - |r: Option<&Bitmap>, m: &Bitmap| r.map(|r| arrow::bitmap::or_not(r, m)) + |r: Option<&Bitmap>, m: &Bitmap| r.map(|r| arrow::bitmap::or(r, m)) } else { |r: Option<&Bitmap>, m: &Bitmap| { - Some(r.map_or_else(|| m.clone(), |r| arrow::bitmap::and(r, m))) + Some(r.map_or_else(|| m.clone(), |r| arrow::bitmap::and_not(r, m))) } }; @@ -411,10 +411,10 @@ impl ChunkZip for StructChunked { .all(|(l, m)| l == m)); let combine = if r.null_count() == 0 { - |r: Option<&Bitmap>, m: &Bitmap| r.map(|r| arrow::bitmap::or(r, m)) + |l: Option<&Bitmap>, m: &Bitmap| l.map(|l| arrow::bitmap::or_not(l, m)) } else { - |r: Option<&Bitmap>, m: &Bitmap| { - Some(r.map_or_else(|| m.clone(), |r| arrow::bitmap::and_not(r, m))) + |l: Option<&Bitmap>, m: &Bitmap| { + Some(l.map_or_else(|| m.clone(), |l| arrow::bitmap::and(l, m))) } };