Skip to content

Conversation

@rluvaton
Copy link
Member

@rluvaton rluvaton commented Oct 26, 2025

Which issue does this PR close?

Rationale for this change

mask nulls should be treated as false (even if the underlying values are not 0) as described in the docs for zip

What changes are included in this PR?

used prep_null_mask_filter before iterating over the mask,
added tests for both scalar and non scalar (to prepare for #8653)

Are these changes tested?

Yes

Are there any user-facing changes?

Kinda

@github-actions github-actions bot added the arrow Changes to the arrow crate label Oct 26, 2025
Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @rluvaton -- I verified that the newly added tests fail without the code modifications.

I also went through the code and tests carefully and it makes sense to me 👍

Comment on lines 328 to 329
let scalar_truthy = Int32Array::from_iter_values(vec![1, 2, 3, 4, 5, 6]);
let scalar_falsy = Int32Array::from_iter_values(vec![7, 8, 9, 10, 11, 12]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit is that these are not scalars (they are arrays)

Suggested change
let scalar_truthy = Int32Array::from_iter_values(vec![1, 2, 3, 4, 5, 6]);
let scalar_falsy = Int32Array::from_iter_values(vec![7, 8, 9, 10, 11, 12]);
let truthy = Int32Array::from_iter_values(vec![1, 2, 3, 4, 5, 6]);
let falsy = Int32Array::from_iter_values(vec![7, 8, 9, 10, 11, 12]);

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will fix now, thanks


#[test]
fn test_zip_string_array_with_nulls_is_mask_should_be_treated_as_false() {
let scalar_truthy = StringArray::from_iter_values(vec!["1", "2", "3", "4", "5", "6"]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto here, these are not scalar

}

fn maybe_prep_null_mask_filter(predicate: &BooleanArray) -> BooleanBuffer {
// Nulls are treated as false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as a follow on PR this would be a nice improvement to make to prep_null_mask_filter itself -- handling arrays without nulls

@rluvaton
Copy link
Member Author

updated

@alamb
Copy link
Contributor

alamb commented Oct 27, 2025

🤖 ./gh_compare_arrow.sh Benchmark Script Running
Linux aal-dev 6.14.0-1017-gcp #18~24.04.1-Ubuntu SMP Tue Sep 23 17:51:44 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing fix-nulls-not-treated-as-false-in-zip (b82c262) to a7572eb diff
BENCH_NAME=zip_kernels
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental --bench zip_kernels
BENCH_FILTER=
BENCH_BRANCH_NAME=fix-nulls-not-treated-as-false-in-zip
Results will be posted here when complete

@alamb alamb merged commit 6c3e588 into apache:main Oct 27, 2025
26 checks passed
@alamb
Copy link
Contributor

alamb commented Oct 27, 2025

Thank you @rluvaton

@alamb
Copy link
Contributor

alamb commented Oct 27, 2025

🤖: Benchmark completed

Details

group                                                                               fix-nulls-not-treated-as-false-in-zip    main
-----                                                                               -------------------------------------    ----
zip_8192_from_i32/array_vs_array/10pct_true                                         1.02     35.5±0.10µs        ? ?/sec      1.00     34.9±0.11µs        ? ?/sec
zip_8192_from_i32/array_vs_array/1pct_true                                          1.03      5.2±0.02µs        ? ?/sec      1.00      5.1±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_array/50pct_nulls                                        1.03     76.0±0.11µs        ? ?/sec      1.00     74.0±0.39µs        ? ?/sec
zip_8192_from_i32/array_vs_array/50pct_true                                         1.02    103.7±0.36µs        ? ?/sec      1.00    101.6±0.62µs        ? ?/sec
zip_8192_from_i32/array_vs_array/90pct_true                                         1.02     36.9±0.21µs        ? ?/sec      1.00     36.2±0.21µs        ? ?/sec
zip_8192_from_i32/array_vs_array/99pct_true                                         1.00      5.9±0.03µs        ? ?/sec      1.02      6.0±0.04µs        ? ?/sec
zip_8192_from_i32/array_vs_array/all_false                                          1.04      2.5±0.10µs        ? ?/sec      1.00      2.4±0.03µs        ? ?/sec
zip_8192_from_i32/array_vs_array/all_true                                           1.00      2.4±0.05µs        ? ?/sec      1.01      2.4±0.08µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/10pct_true                               1.11     35.8±0.06ns        ? ?/sec      1.00     32.3±0.07ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/1pct_true                                1.02     33.0±0.10ns        ? ?/sec      1.00     32.3±0.07ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/50pct_nulls                              1.02     33.0±0.07ns        ? ?/sec      1.00     32.3±0.08ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/50pct_true                               1.02     33.0±0.08ns        ? ?/sec      1.00     32.3±0.06ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/90pct_true                               1.02     33.0±0.10ns        ? ?/sec      1.00     32.3±0.07ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/99pct_true                               1.02     33.0±0.06ns        ? ?/sec      1.00     32.3±0.09ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/all_false                                1.02     33.0±0.06ns        ? ?/sec      1.00     32.3±0.08ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/all_true                                 1.02     33.0±0.12ns        ? ?/sec      1.00     32.3±0.06ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/10pct_true                               1.02     33.1±0.38ns        ? ?/sec      1.00     32.3±0.07ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/1pct_true                                1.02     33.0±0.26ns        ? ?/sec      1.00     32.3±0.08ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/50pct_nulls                              1.11     35.8±0.23ns        ? ?/sec      1.00     32.3±0.05ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/50pct_true                               1.02     33.0±0.24ns        ? ?/sec      1.00     32.3±0.07ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/90pct_true                               1.11     35.8±0.06ns        ? ?/sec      1.00     32.3±0.07ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/99pct_true                               1.02     33.0±0.06ns        ? ?/sec      1.00     32.3±0.06ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/all_false                                1.02     33.0±0.29ns        ? ?/sec      1.00     32.3±0.08ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/all_true                                 1.02     33.0±0.07ns        ? ?/sec      1.00     32.3±0.08ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/10pct_true                         1.02    140.9±0.31µs        ? ?/sec      1.00    138.4±0.21µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/1pct_true                          1.00    133.0±0.34µs        ? ?/sec      1.01    134.0±1.08µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/50pct_nulls                        1.05    152.1±0.63µs        ? ?/sec      1.00    145.4±0.20µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/50pct_true                         1.05    159.4±8.40µs        ? ?/sec      1.00    152.5±0.74µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/90pct_true                         1.09    112.2±0.24µs        ? ?/sec      1.00    102.7±0.19µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/99pct_true                         1.12     99.1±0.20µs        ? ?/sec      1.00     88.2±0.27µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/all_false                          1.00    132.5±0.38µs        ? ?/sec      1.01    133.4±0.24µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/all_true                           1.14     97.7±0.23µs        ? ?/sec      1.00     86.1±0.22µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/10pct_true                                      1.09     74.4±0.18µs        ? ?/sec      1.00     68.0±0.60µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/1pct_true                                       1.10     65.4±0.14µs        ? ?/sec      1.00     59.3±0.56µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/50pct_nulls                                     1.09     88.2±0.26µs        ? ?/sec      1.00     80.8±0.12µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/50pct_true                                      1.06    103.2±0.23µs        ? ?/sec      1.00     97.1±1.01µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/90pct_true                                      1.07     74.5±0.73µs        ? ?/sec      1.00     69.5±0.31µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/99pct_true                                      1.11     66.5±0.13µs        ? ?/sec      1.00     60.1±0.11µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/all_false                                       1.05     62.9±0.16µs        ? ?/sec      1.00     59.8±0.09µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/all_true                                        1.11     65.0±0.15µs        ? ?/sec      1.00     58.3±0.13µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/10pct_true                                1.11    113.2±0.45µs        ? ?/sec      1.00    102.3±0.19µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/1pct_true                                 1.13     99.3±0.30µs        ? ?/sec      1.00     88.1±0.16µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/50pct_nulls                               1.07    134.0±0.36µs        ? ?/sec      1.00    125.1±0.38µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/50pct_true                                1.04    158.6±0.56µs        ? ?/sec      1.00    153.1±1.88µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/90pct_true                                1.00    139.9±0.28µs        ? ?/sec      1.00    140.4±1.38µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/99pct_true                                1.00    133.0±0.37µs        ? ?/sec      1.01    134.6±0.26µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/all_false                                 1.09     94.5±0.25µs        ? ?/sec      1.00     86.9±0.86µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/all_true                                  1.00    132.7±0.51µs        ? ?/sec      1.01    133.6±1.26µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/10pct_true                       1.01    349.0±6.37µs        ? ?/sec      1.00    344.2±6.28µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/1pct_true                        1.03    300.9±2.86µs        ? ?/sec      1.00    291.3±1.69µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/50pct_nulls                      1.00    384.4±8.59µs        ? ?/sec      1.03   396.2±11.41µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/50pct_true                       1.00    422.1±6.93µs        ? ?/sec      1.05   441.4±13.51µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/90pct_true                       1.00    341.1±4.68µs        ? ?/sec      1.01    345.6±5.08µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/99pct_true                       1.01    292.2±8.08µs        ? ?/sec      1.00    288.4±5.88µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/all_false                        1.09    119.0±1.19µs        ? ?/sec      1.00    109.5±2.45µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/all_true                         1.01    124.8±2.21µs        ? ?/sec      1.00    123.8±3.16µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/10pct_true             1.06     34.6±0.06ns        ? ?/sec      1.00     32.5±0.11ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/1pct_true              1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/50pct_nulls            1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.06ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/50pct_true             1.01     32.8±0.17ns        ? ?/sec      1.00     32.6±0.16ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/90pct_true             1.06     34.6±0.05ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/99pct_true             1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.08ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/all_false              1.06     34.6±0.07ns        ? ?/sec      1.00     32.5±0.08ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/all_true               1.07     34.7±0.39ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/10pct_true             1.07     34.6±0.07ns        ? ?/sec      1.00     32.5±0.08ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/1pct_true              1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.12ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/50pct_nulls            1.01     32.8±0.07ns        ? ?/sec      1.00     32.5±0.05ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/50pct_true             1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.06ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/90pct_true             1.06     34.6±0.06ns        ? ?/sec      1.00     32.5±0.09ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/99pct_true             1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/all_false              1.07     34.6±0.08ns        ? ?/sec      1.00     32.5±0.05ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/all_true               1.07     34.6±0.06ns        ? ?/sec      1.00     32.5±0.11ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/10pct_true       1.06    219.6±0.48µs        ? ?/sec      1.00    206.5±0.77µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/1pct_true        1.07    202.8±0.44µs        ? ?/sec      1.00    189.1±0.33µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/50pct_nulls      1.07    248.2±1.09µs        ? ?/sec      1.00    232.1±0.42µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/50pct_true       1.04    315.3±1.20µs        ? ?/sec      1.00    302.2±1.81µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/90pct_true       1.02    387.8±2.67µs        ? ?/sec      1.00    380.6±2.76µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/99pct_true       1.02    381.0±3.65µs        ? ?/sec      1.00    372.7±3.74µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/all_false        1.06    200.1±0.40µs        ? ?/sec      1.00    188.2±0.41µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/all_true         1.02    379.3±3.24µs        ? ?/sec      1.00    371.5±2.64µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/10pct_true                    1.01    257.3±0.62µs        ? ?/sec      1.00    253.5±1.49µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/1pct_true                     1.00    249.1±1.66µs        ? ?/sec      1.00    248.8±1.67µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/50pct_nulls                   1.02    288.1±0.95µs        ? ?/sec      1.00    282.2±1.24µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/50pct_true                    1.01    406.5±1.73µs        ? ?/sec      1.00    401.7±2.54µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/90pct_true                    1.01    346.8±2.14µs        ? ?/sec      1.00    344.2±2.63µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/99pct_true                    1.01    340.5±1.95µs        ? ?/sec      1.00    338.2±2.51µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/all_false                     1.01    249.1±0.87µs        ? ?/sec      1.00    247.5±2.85µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/all_true                      1.01    338.7±1.56µs        ? ?/sec      1.00    334.8±1.50µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/10pct_true              1.02    386.7±2.96µs        ? ?/sec      1.00    379.6±3.45µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/1pct_true               1.02    378.0±2.93µs        ? ?/sec      1.00    372.2±3.85µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/50pct_nulls             1.03    397.8±1.68µs        ? ?/sec      1.00    385.9±2.08µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/50pct_true              1.04    313.7±1.06µs        ? ?/sec      1.00    301.2±2.24µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/90pct_true              1.05    218.5±1.04µs        ? ?/sec      1.00    207.6±0.72µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/99pct_true              1.06    201.1±1.41µs        ? ?/sec      1.00    190.3±0.37µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/all_false               1.01    373.2±1.48µs        ? ?/sec      1.00    370.1±3.18µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/all_true                1.06    198.6±3.86µs        ? ?/sec      1.00    186.6±0.43µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/10pct_true                     1.08    345.7±9.57µs        ? ?/sec      1.00   319.3±12.74µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/1pct_true                      1.04    295.1±1.19µs        ? ?/sec      1.00    283.6±3.84µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/50pct_nulls                    1.03   399.0±13.61µs        ? ?/sec      1.00   385.9±11.53µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/50pct_true                     1.03    437.5±4.80µs        ? ?/sec      1.00    422.9±5.46µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/90pct_true                     1.07    354.1±7.75µs        ? ?/sec      1.00   330.9±11.42µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/99pct_true                     1.03    267.8±4.76µs        ? ?/sec      1.00    260.1±7.00µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/all_false                      1.06    116.2±2.12µs        ? ?/sec      1.00    109.3±1.94µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/all_true                       1.01    118.5±3.68µs        ? ?/sec      1.00    117.3±3.77µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/10pct_true           1.01     32.8±0.07ns        ? ?/sec      1.00     32.5±0.34ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/1pct_true            1.01     32.8±0.22ns        ? ?/sec      1.00     32.5±0.10ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/50pct_nulls          1.01     32.8±0.04ns        ? ?/sec      1.00     32.6±0.16ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/50pct_true           1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.31ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/90pct_true           1.01     32.8±0.06ns        ? ?/sec      1.00     32.5±0.40ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/99pct_true           1.01     32.8±0.10ns        ? ?/sec      1.00     32.5±0.33ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/all_false            1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.13ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/all_true             1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.32ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/10pct_true           1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.36ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/1pct_true            1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.30ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/50pct_nulls          1.01     32.9±0.06ns        ? ?/sec      1.00     32.5±0.08ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/50pct_true           1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.32ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/90pct_true           1.01     32.9±0.14ns        ? ?/sec      1.00     32.5±0.37ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/99pct_true           1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/all_false            1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.32ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/all_true             1.01     32.8±0.05ns        ? ?/sec      1.00     32.6±0.36ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/10pct_true     1.07    219.6±1.25µs        ? ?/sec      1.00    205.8±0.54µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/1pct_true      1.08    203.3±0.44µs        ? ?/sec      1.00    188.9±0.33µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/50pct_nulls    1.06    247.1±1.05µs        ? ?/sec      1.00    232.4±4.61µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/50pct_true     1.05    316.0±2.36µs        ? ?/sec      1.00    300.9±0.67µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/90pct_true     1.04    390.1±2.15µs        ? ?/sec      1.00    375.2±1.57µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/99pct_true     1.04    383.9±3.00µs        ? ?/sec      1.00    369.9±2.84µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/all_false      1.07    200.2±0.96µs        ? ?/sec      1.00    188.0±0.81µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/all_true       1.00    382.8±3.67µs        ? ?/sec      1.01   387.2±39.05µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/10pct_true                  1.01    416.1±2.56µs        ? ?/sec      1.00    410.5±1.89µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/1pct_true                   1.00    411.1±3.83µs        ? ?/sec      1.00    409.4±1.09µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/50pct_nulls                 1.02    423.2±2.05µs        ? ?/sec      1.00    416.8±3.25µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/50pct_true                  1.03    432.1±2.73µs        ? ?/sec      1.00    421.4±1.46µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/90pct_true                  1.03    361.4±2.57µs        ? ?/sec      1.00    351.5±2.72µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/99pct_true                  1.06    356.8±4.98µs        ? ?/sec      1.00    338.0±1.60µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/all_false                   1.00    407.0±3.62µs        ? ?/sec      1.01    409.1±3.37µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/all_true                    1.06    357.0±5.23µs        ? ?/sec      1.00    335.9±1.47µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/10pct_true            1.00    389.2±2.26µs        ? ?/sec      1.01   393.1±30.34µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/1pct_true             1.00    381.9±2.74µs        ? ?/sec      1.03   392.5±36.11µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/50pct_nulls           1.00    400.8±2.64µs        ? ?/sec      1.02   410.2±29.40µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/50pct_true            1.02    313.2±1.24µs        ? ?/sec      1.00    307.8±7.46µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/90pct_true            1.05    217.6±0.82µs        ? ?/sec      1.00    207.0±0.86µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/99pct_true            1.06    201.8±1.56µs        ? ?/sec      1.00    189.8±0.34µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/all_false             1.00    381.7±3.44µs        ? ?/sec      1.06   405.2±45.87µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/all_true              1.06    198.4±0.51µs        ? ?/sec      1.00    186.4±0.59µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/10pct_true                         1.00     62.4±0.13µs        ? ?/sec      1.02     63.5±0.43µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/1pct_true                          1.00     22.2±0.15µs        ? ?/sec      1.00     22.2±0.17µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/50pct_nulls                        1.00    121.1±0.35µs        ? ?/sec      1.00    121.6±2.50µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/50pct_true                         1.00    158.9±0.36µs        ? ?/sec      1.00    159.2±0.46µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/90pct_true                         1.00     64.9±0.25µs        ? ?/sec      1.00     65.2±0.21µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/99pct_true                         1.00     22.9±0.04µs        ? ?/sec      1.01     23.2±0.18µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/all_false                          1.00     17.6±0.16µs        ? ?/sec      1.01     17.7±0.19µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/all_true                           1.00     17.7±0.15µs        ? ?/sec      1.01     17.8±0.14µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/10pct_true               1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.09ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/1pct_true                1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.08ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/50pct_nulls              1.01     32.8±0.06ns        ? ?/sec      1.00     32.5±0.10ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/50pct_true               1.01     32.8±0.03ns        ? ?/sec      1.00     32.6±0.41ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/90pct_true               1.01     32.8±0.05ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/99pct_true               1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.09ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/all_false                1.01     32.8±0.16ns        ? ?/sec      1.00     32.5±0.09ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/all_true                 1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/10pct_true               1.01     32.9±0.18ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/1pct_true                1.01     32.9±0.22ns        ? ?/sec      1.00     32.5±0.07ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/50pct_nulls              1.00     32.9±0.17ns        ? ?/sec      1.00     32.7±0.08ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/50pct_true               1.01     32.8±0.20ns        ? ?/sec      1.00     32.5±0.08ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/90pct_true               1.01     32.8±0.07ns        ? ?/sec      1.00     32.5±0.06ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/99pct_true               1.01     32.8±0.06ns        ? ?/sec      1.00     32.5±0.11ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/all_false                1.01     32.9±0.19ns        ? ?/sec      1.00     32.5±0.09ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/all_true                 1.01     32.8±0.04ns        ? ?/sec      1.00     32.5±0.18ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/10pct_true         1.05    205.8±0.36µs        ? ?/sec      1.00    195.3±0.73µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/1pct_true          1.06    200.6±0.40µs        ? ?/sec      1.00    188.9±0.80µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls        1.07    216.0±0.77µs        ? ?/sec      1.00    202.3±1.04µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/50pct_true         1.06    224.3±0.52µs        ? ?/sec      1.00    210.8±0.39µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/90pct_true         1.10    185.2±0.46µs        ? ?/sec      1.00    169.1±0.33µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/99pct_true         1.12    173.8±0.29µs        ? ?/sec      1.00    155.3±0.39µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/all_false          1.06    200.0±0.65µs        ? ?/sec      1.00    188.4±0.42µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/all_true           1.13    172.0±0.37µs        ? ?/sec      1.00    152.6±0.41µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/10pct_true                      1.11    144.7±0.39µs        ? ?/sec      1.00    130.8±0.36µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/1pct_true                       1.10    135.1±0.35µs        ? ?/sec      1.00    123.1±0.51µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/50pct_nulls                     1.10    157.4±0.30µs        ? ?/sec      1.00    143.0±0.34µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/50pct_true                      1.07    173.9±0.37µs        ? ?/sec      1.00    162.6±0.61µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/90pct_true                      1.09    144.3±0.37µs        ? ?/sec      1.00    132.4±0.32µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/99pct_true                      1.12    136.0±0.38µs        ? ?/sec      1.00    121.9±0.49µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/all_false                       1.07    129.9±0.41µs        ? ?/sec      1.00    121.0±0.40µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/all_true                        1.12    134.0±0.29µs        ? ?/sec      1.00    119.4±0.28µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/10pct_true                1.10    184.7±0.66µs        ? ?/sec      1.00    167.1±0.33µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/1pct_true                 1.12    173.9±0.38µs        ? ?/sec      1.00    155.0±0.35µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/50pct_nulls               1.09    202.2±0.32µs        ? ?/sec      1.00    186.3±0.48µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/50pct_true                1.06    223.9±0.40µs        ? ?/sec      1.00    210.6±0.74µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/90pct_true                1.05    205.5±0.57µs        ? ?/sec      1.00    195.7±0.66µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/99pct_true                1.05    199.3±0.41µs        ? ?/sec      1.00    189.0±0.64µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/all_false                 1.11    169.4±0.44µs        ? ?/sec      1.00    152.8±0.31µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/all_true                  1.06    197.9±0.46µs        ? ?/sec      1.00    186.0±0.28µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/10pct_true                       1.00     62.3±0.18µs        ? ?/sec      1.01     63.2±0.81µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/1pct_true                        1.00     22.3±0.18µs        ? ?/sec      1.01     22.5±0.20µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/50pct_nulls                      1.00    120.9±0.46µs        ? ?/sec      1.00    120.8±0.39µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/50pct_true                       1.00    159.1±0.33µs        ? ?/sec      1.01    160.4±0.60µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/90pct_true                       1.00     65.2±0.45µs        ? ?/sec      1.00     64.9±0.17µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/99pct_true                       1.01     23.3±0.17µs        ? ?/sec      1.00     23.1±0.13µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/all_false                        1.00     17.7±0.14µs        ? ?/sec      1.02     18.1±0.12µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/all_true                         1.02     17.7±0.32µs        ? ?/sec      1.00     17.5±0.11µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/10pct_true             1.00     32.9±0.28ns        ? ?/sec      1.00     32.9±0.07ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/1pct_true              1.00     32.9±0.41ns        ? ?/sec      1.00     32.9±0.11ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/50pct_nulls            1.00     32.8±0.07ns        ? ?/sec      1.00     32.9±0.10ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/50pct_true             1.00     32.8±0.04ns        ? ?/sec      1.00     32.9±0.07ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/90pct_true             1.00     32.8±0.05ns        ? ?/sec      1.00     32.8±0.10ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/99pct_true             1.00     32.8±0.06ns        ? ?/sec      1.00     32.8±0.07ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/all_false              1.00     32.8±0.07ns        ? ?/sec      1.00     32.9±0.09ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/all_true               1.00     32.8±0.04ns        ? ?/sec      1.00     32.8±0.04ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/10pct_true             1.00     32.9±0.21ns        ? ?/sec      1.00     32.8±0.05ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/1pct_true              1.00     32.9±0.54ns        ? ?/sec      1.00     32.8±0.06ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/50pct_nulls            1.00     32.8±0.06ns        ? ?/sec      1.00     32.8±0.04ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/50pct_true             1.00     32.8±0.18ns        ? ?/sec      1.00     32.8±0.06ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/90pct_true             1.00     32.9±0.31ns        ? ?/sec      1.00     32.8±0.05ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/99pct_true             1.00     32.8±0.30ns        ? ?/sec      1.00     32.8±0.04ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/all_false              1.00     32.8±0.06ns        ? ?/sec      1.13     37.2±0.08ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/all_true               1.00     32.9±0.27ns        ? ?/sec      1.00     32.9±0.10ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/10pct_true       1.06    206.6±0.44µs        ? ?/sec      1.00    194.6±0.46µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/1pct_true        1.07    201.5±2.32µs        ? ?/sec      1.00    187.8±1.01µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls      1.07    216.2±2.32µs        ? ?/sec      1.00    201.8±1.19µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/50pct_true       1.07    224.2±0.67µs        ? ?/sec      1.00    210.5±0.60µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/90pct_true       1.10    185.5±0.67µs        ? ?/sec      1.00    168.6±0.45µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/99pct_true       1.13    174.5±1.27µs        ? ?/sec      1.00    154.6±0.37µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/all_false        1.07    200.8±2.22µs        ? ?/sec      1.00    188.1±1.02µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/all_true         1.13    172.0±0.85µs        ? ?/sec      1.00    151.8±0.32µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/10pct_true                    1.09    141.8±0.32µs        ? ?/sec      1.00    129.6±3.22µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/1pct_true                     1.10    133.3±0.36µs        ? ?/sec      1.00    121.1±0.54µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/50pct_nulls                   1.10    155.0±0.36µs        ? ?/sec      1.00    141.4±0.47µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/50pct_true                    1.07    171.1±0.49µs        ? ?/sec      1.00    160.1±1.56µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/90pct_true                    1.09    142.8±0.24µs        ? ?/sec      1.00    131.1±0.39µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/99pct_true                    1.12    135.2±0.25µs        ? ?/sec      1.00    121.0±0.29µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/all_false                     1.11    131.1±7.18µs        ? ?/sec      1.00    118.1±0.41µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/all_true                      1.13    134.5±0.40µs        ? ?/sec      1.00    118.6±0.19µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/10pct_true              1.11    184.6±2.13µs        ? ?/sec      1.00    166.7±0.92µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/1pct_true               1.13    174.0±1.77µs        ? ?/sec      1.00    154.2±1.02µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/50pct_nulls             1.08    201.6±0.31µs        ? ?/sec      1.00    185.9±0.69µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/50pct_true              1.07    225.2±3.10µs        ? ?/sec      1.00    210.3±1.25µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/90pct_true              1.05    205.8±0.54µs        ? ?/sec      1.00    195.2±2.61µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/99pct_true              1.06    200.1±0.48µs        ? ?/sec      1.00    188.8±1.06µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/all_false               1.11    169.5±2.25µs        ? ?/sec      1.00    152.0±0.56µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/all_true                1.07    198.8±0.82µs        ? ?/sec      1.00    186.4±0.85µs        ? ?/sec

@rluvaton rluvaton deleted the fix-nulls-not-treated-as-false-in-zip branch October 27, 2025 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

zip now treats nulls as false in provided mask regardless of the underlying bit value

2 participants