Skip to content

Conversation

@mkleen
Copy link
Contributor

@mkleen mkleen commented Dec 7, 2025

Which issue does this PR close?

Rationale for this change

It's explained in the issue.

What changes are included in this PR?

This adds a special implementation for Utf8View/BinaryView scalars for zip based on the design from #8653. It also includes tests. Benchmarks are available here:

Are these changes tested?

Yes.

Are there any user-facing changes?

There is a new struct ByteViewScalarImpl.

Benchmarks

System: Apple M1 Max with 10 cores on macOS 26.1

group                                                                                                       branch                                 main
-----                                                                                                       ------                                 ----
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/10pct_true       1.00      3.5±0.04µs        ? ?/sec    37.06   128.9±1.36µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/1pct_true        1.00      3.5±0.07µs        ? ?/sec    35.76   125.1±1.76µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/50pct_nulls      1.00      3.7±0.12µs        ? ?/sec    36.91   136.8±2.17µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/50pct_true       1.00      3.5±0.06µs        ? ?/sec    40.30   139.9±2.11µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/90pct_true       1.00      3.6±0.10µs        ? ?/sec    30.57   108.5±2.62µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/99pct_true       1.00      3.5±0.05µs        ? ?/sec    28.40    99.8±2.12µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/all_false        1.00      3.5±0.02µs        ? ?/sec    36.04   127.4±3.14µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_null_scalar_vs_null_scalar/all_true         1.00      3.5±0.08µs        ? ?/sec    27.39    97.1±1.11µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/10pct_true                    1.00     28.2±0.37µs        ? ?/sec    2.70     75.9±0.61µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/1pct_true                     1.00      7.2±0.24µs        ? ?/sec    9.89    71.4±12.56µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/50pct_nulls                   1.00     51.0±2.97µs        ? ?/sec    1.75     89.4±2.50µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/50pct_true                    1.00     62.1±1.00µs        ? ?/sec    1.61     99.7±4.68µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/90pct_true                    1.00     28.8±0.64µs        ? ?/sec    2.63     75.7±1.22µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/99pct_true                    1.00      7.7±0.11µs        ? ?/sec    8.98     69.0±0.74µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/all_false                     1.00      3.7±0.13µs        ? ?/sec    19.06    69.8±1.55µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/non_nulls_scalars/all_true                      1.00      3.6±0.10µs        ? ?/sec    18.90    68.0±1.12µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/10pct_true              1.00      3.8±0.07µs        ? ?/sec    28.85   108.4±3.09µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/1pct_true               1.00      3.8±0.09µs        ? ?/sec    25.83    98.7±2.71µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/50pct_nulls             1.00      3.9±0.06µs        ? ?/sec    32.25   127.3±7.41µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/50pct_true              1.00      3.7±0.06µs        ? ?/sec    37.66   139.5±3.00µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/90pct_true              1.00      3.8±0.16µs        ? ?/sec    34.52   129.5±1.53µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/99pct_true              1.00      3.7±0.05µs        ? ?/sec    33.83   124.8±1.28µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/all_false               1.00      3.8±0.09µs        ? ?/sec    26.08    98.8±2.02µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 10/null_vs_non_null_scalar/all_true                1.00      3.8±0.08µs        ? ?/sec    32.56   123.9±1.48µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/10pct_true      1.00      3.6±0.06µs        ? ?/sec    36.09   129.8±6.06µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/1pct_true       1.00      3.6±0.35µs        ? ?/sec    34.05   122.9±5.06µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/50pct_nulls     1.00      3.7±0.12µs        ? ?/sec    36.77   137.9±5.49µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/50pct_true      1.00      3.6±0.09µs        ? ?/sec    38.23   137.4±3.35µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/90pct_true      1.00      3.6±0.06µs        ? ?/sec    29.20   104.8±1.64µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/99pct_true      1.00      3.6±0.15µs        ? ?/sec    26.94    96.9±2.73µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/all_false       1.00      3.6±0.05µs        ? ?/sec    34.97   127.5±5.81µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_null_scalar_vs_null_scalar/all_true        1.00      3.8±1.05µs        ? ?/sec    24.98    95.0±2.14µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/10pct_true                   1.00     28.9±0.46µs        ? ?/sec    2.69     77.7±1.57µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/1pct_true                    1.00      7.3±0.09µs        ? ?/sec    9.81     71.6±1.96µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/50pct_nulls                  1.00     50.3±1.16µs        ? ?/sec    1.74     87.7±1.14µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/50pct_true                   1.00     63.5±1.44µs        ? ?/sec    1.59    100.7±1.97µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/90pct_true                   1.00     29.8±0.48µs        ? ?/sec    2.64     78.6±2.85µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/99pct_true                   1.00      8.2±0.12µs        ? ?/sec    8.54     69.7±0.91µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/all_false                    1.00      3.8±0.07µs        ? ?/sec    18.77    71.6±1.51µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/non_nulls_scalars/all_true                     1.00      3.8±0.11µs        ? ?/sec    18.31    68.8±1.10µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/10pct_true             1.00      3.8±0.07µs        ? ?/sec    27.36   104.3±1.35µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/1pct_true              1.00      3.8±0.07µs        ? ?/sec    24.86    94.8±1.12µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/50pct_nulls            1.00      4.0±0.04µs        ? ?/sec    29.84   117.9±1.34µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/50pct_true             1.00      3.9±0.21µs        ? ?/sec    35.19   137.1±3.87µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/90pct_true             1.00      3.8±0.06µs        ? ?/sec    32.78   125.8±1.73µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/99pct_true             1.00      3.8±0.11µs        ? ?/sec    31.87   121.5±1.47µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/all_false              1.00      3.8±0.07µs        ? ?/sec    25.36    95.5±1.89µs        ? ?/sec
zip_8192_from_string_views size 10 and string_views size 100/null_vs_non_null_scalar/all_true               1.00      3.9±0.20µs        ? ?/sec    30.83   121.7±3.36µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/10pct_true     1.00      3.7±0.73µs        ? ?/sec    35.72   132.2±6.77µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/1pct_true      1.00      3.6±0.04µs        ? ?/sec    35.35   125.8±2.79µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/50pct_nulls    1.00      3.8±0.11µs        ? ?/sec    36.05   136.0±2.59µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/50pct_true     1.00      3.6±0.13µs        ? ?/sec    39.36   142.5±6.32µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/90pct_true     1.00      3.6±0.11µs        ? ?/sec    29.63   107.5±2.03µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/99pct_true     1.00      3.6±0.08µs        ? ?/sec    28.40   102.2±6.74µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/all_false      1.00      3.6±0.05µs        ? ?/sec    34.83   126.0±2.12µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_null_scalar_vs_null_scalar/all_true       1.00      3.6±0.05µs        ? ?/sec    27.38    98.6±1.62µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/10pct_true                  1.00     29.9±2.79µs        ? ?/sec    2.51     75.1±0.98µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/1pct_true                   1.00      7.2±0.16µs        ? ?/sec    9.48     68.3±1.01µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/50pct_nulls                 1.00     50.5±1.90µs        ? ?/sec    1.68     84.6±1.27µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/50pct_true                  1.00     64.4±0.60µs        ? ?/sec    1.53     98.6±1.71µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/90pct_true                  1.00     29.7±0.61µs        ? ?/sec    2.57     76.1±1.15µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/99pct_true                  1.00      7.9±0.09µs        ? ?/sec    8.89     70.5±2.13µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/all_false                   1.00      3.7±0.06µs        ? ?/sec    18.31    67.8±0.86µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/non_nulls_scalars/all_true                    1.00      3.7±0.06µs        ? ?/sec    18.35    67.9±1.16µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/10pct_true            1.00      3.8±0.12µs        ? ?/sec    28.20   107.5±2.55µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/1pct_true             1.00      3.9±0.16µs        ? ?/sec    25.73    99.5±2.19µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/50pct_nulls           1.00      4.1±0.14µs        ? ?/sec    29.98   122.2±2.27µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/50pct_true            1.00      3.8±0.08µs        ? ?/sec    37.05   140.1±2.01µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/90pct_true            1.00      3.9±0.20µs        ? ?/sec    33.52   131.8±3.10µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/99pct_true            1.00      3.8±0.09µs        ? ?/sec    33.55   127.6±3.56µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/all_false             1.00      3.8±0.08µs        ? ?/sec    26.47   100.8±5.55µs        ? ?/sec
zip_8192_from_string_views size 100 and string_views size 100/null_vs_non_null_scalar/all_true              1.00      3.9±0.06µs        ? ?/sec    32.05   124.6±2.16µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/10pct_true        1.00      3.6±0.40µs        ? ?/sec    35.16   126.4±1.92µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/1pct_true         1.00      3.5±0.07µs        ? ?/sec    35.43   123.6±4.98µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/50pct_nulls       1.00      3.7±0.06µs        ? ?/sec    36.06   132.4±1.80µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/50pct_true        1.00      3.6±0.06µs        ? ?/sec    38.44   136.9±2.82µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/90pct_true        1.00      3.5±0.04µs        ? ?/sec    29.82   105.2±2.25µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/99pct_true        1.00      3.5±0.08µs        ? ?/sec    27.48    96.9±1.69µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/all_false         1.00      3.6±0.12µs        ? ?/sec    33.80   123.0±2.52µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_null_scalar_vs_null_scalar/all_true          1.00      3.6±0.14µs        ? ?/sec    26.74    95.0±1.74µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/10pct_true                     1.00     27.9±0.32µs        ? ?/sec    2.65     73.9±1.31µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/1pct_true                      1.00      6.9±0.09µs        ? ?/sec    9.64     67.0±0.92µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/50pct_nulls                    1.00     49.0±0.60µs        ? ?/sec    1.73     84.7±2.45µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/50pct_true                     1.00     62.4±2.22µs        ? ?/sec    1.56     97.1±2.37µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/90pct_true                     1.00     28.7±0.37µs        ? ?/sec    2.59     74.1±1.17µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/99pct_true                     1.00      7.8±0.20µs        ? ?/sec    8.69     67.7±1.34µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/all_false                      1.00      3.6±0.09µs        ? ?/sec    18.78    68.2±2.16µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/non_nulls_scalars/all_true                       1.00      3.6±0.05µs        ? ?/sec    19.10   68.4±11.77µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/10pct_true               1.00      3.8±0.21µs        ? ?/sec    27.30   104.1±1.34µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/1pct_true                1.00      3.7±0.04µs        ? ?/sec    25.76    95.8±2.00µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/50pct_nulls              1.00      4.2±0.96µs        ? ?/sec    28.05   118.0±1.17µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/50pct_true               1.00      3.9±0.13µs        ? ?/sec    35.42   136.6±3.78µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/90pct_true               1.00      3.8±0.10µs        ? ?/sec    33.31   125.5±1.89µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/99pct_true               1.00      3.8±0.04µs        ? ?/sec    32.36   121.6±1.80µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/all_false                1.00      3.7±0.04µs        ? ?/sec    25.64    95.1±0.98µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 10/null_vs_non_null_scalar/all_true                 1.00      3.9±0.07µs        ? ?/sec    31.19   121.2±2.69µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/10pct_true       1.00      3.5±0.04µs        ? ?/sec    35.69   126.5±2.89µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/1pct_true        1.00      3.6±0.05µs        ? ?/sec    33.84   120.9±1.68µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/50pct_nulls      1.00      3.7±0.10µs        ? ?/sec    35.72   133.2±3.49µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/50pct_true       1.00      3.6±0.12µs        ? ?/sec    38.28   136.0±2.11µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/90pct_true       1.00      3.5±0.06µs        ? ?/sec    29.81   104.4±1.56µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/99pct_true       1.00      3.5±0.08µs        ? ?/sec    27.69    98.1±2.86µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/all_false        1.00      3.6±0.10µs        ? ?/sec    33.58   122.3±1.77µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_null_scalar_vs_null_scalar/all_true         1.00      3.5±0.08µs        ? ?/sec    26.79    94.7±1.02µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/10pct_true                    1.00     29.0±0.51µs        ? ?/sec    2.59     75.1±1.08µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/1pct_true                     1.00      7.4±0.10µs        ? ?/sec    9.41     69.2±1.76µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/50pct_nulls                   1.00     50.2±0.54µs        ? ?/sec    1.70     85.2±1.17µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/50pct_true                    1.00     64.1±1.59µs        ? ?/sec    1.51     96.9±1.22µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/90pct_true                    1.00     29.8±0.36µs        ? ?/sec    2.55     75.9±2.47µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/99pct_true                    1.00      8.2±0.17µs        ? ?/sec    8.24     67.8±1.11µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/all_false                     1.00      3.8±0.07µs        ? ?/sec    17.96    68.8±1.15µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/non_nulls_scalars/all_true                      1.00      3.8±0.12µs        ? ?/sec    17.37    66.1±0.97µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/10pct_true              1.00      3.8±0.27µs        ? ?/sec    27.57   105.2±3.06µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/1pct_true               1.00      3.7±0.08µs        ? ?/sec    25.44    94.8±0.94µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/50pct_nulls             1.00      3.9±0.07µs        ? ?/sec    30.10   118.6±2.83µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/50pct_true              1.00      3.9±0.30µs        ? ?/sec    35.20   135.6±1.67µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/90pct_true              1.00      3.9±0.55µs        ? ?/sec    32.58   125.9±2.14µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/99pct_true              1.00      3.8±0.36µs        ? ?/sec    32.47   122.9±4.15µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/all_false               1.00      3.8±0.10µs        ? ?/sec    25.24    94.9±0.97µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 100/null_vs_non_null_scalar/all_true                1.00      3.8±0.09µs        ? ?/sec    31.58   120.3±1.65µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/10pct_true         1.00      3.5±0.04µs        ? ?/sec    37.39   131.4±4.74µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/1pct_true          1.00      3.5±0.09µs        ? ?/sec    35.84   126.8±3.56µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/50pct_nulls        1.00      3.7±0.06µs        ? ?/sec    37.15   137.8±3.16µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/50pct_true         1.00      3.5±0.06µs        ? ?/sec    39.19   138.9±4.82µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/90pct_true         1.00      3.6±0.04µs        ? ?/sec    30.30   107.9±5.71µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/99pct_true         1.00      3.6±0.05µs        ? ?/sec    27.33    97.7±2.10µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/all_false          1.00      3.6±0.06µs        ? ?/sec    34.64   124.7±2.24µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_null_scalar_vs_null_scalar/all_true           1.00      3.7±0.19µs        ? ?/sec    26.17    96.9±1.75µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/10pct_true                      1.00     28.7±0.55µs        ? ?/sec    2.66     76.2±1.45µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/1pct_true                       1.00      7.2±0.12µs        ? ?/sec    9.58     69.0±0.80µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/50pct_nulls                     1.00     49.5±1.15µs        ? ?/sec    1.75     86.8±2.09µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/50pct_true                      1.00     62.6±0.88µs        ? ?/sec    1.65   103.4±16.82µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/90pct_true                      1.00     29.1±0.49µs        ? ?/sec    2.69     78.3±2.51µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/99pct_true                      1.00      7.8±0.09µs        ? ?/sec    9.01     70.2±1.72µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/all_false                       1.00      3.7±0.06µs        ? ?/sec    18.77    68.7±0.73µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/non_nulls_scalars/all_true                        1.00      3.6±0.10µs        ? ?/sec    18.73    68.2±1.44µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/10pct_true                1.00      3.9±0.11µs        ? ?/sec    27.68   106.9±2.29µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/1pct_true                 1.00      3.9±0.19µs        ? ?/sec    26.12   101.9±8.79µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/50pct_nulls               1.00      4.1±0.07µs        ? ?/sec    29.91   122.7±3.28µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/50pct_true                1.00      3.8±0.14µs        ? ?/sec    36.82   141.4±3.69µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/90pct_true                1.00      3.8±0.10µs        ? ?/sec    34.15   131.4±2.99µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/99pct_true                1.00      3.8±0.06µs        ? ?/sec    32.89   125.2±3.21µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/all_false                 1.00      3.8±0.06µs        ? ?/sec    26.05    99.2±2.30µs        ? ?/sec
zip_8192_from_string_views size 3 and string_views size 3/null_vs_non_null_scalar/all_true                  1.00      4.0±0.33µs        ? ?/sec    32.00  126.7±25.05µs        ? ?/sec

@github-actions github-actions bot added the arrow Changes to the arrow crate label Dec 7, 2025
@mkleen mkleen changed the title Add custom implemenation for zip for string-views scalars Add custom implementation for zip for string-views scalars Dec 7, 2025
@mkleen mkleen force-pushed the zip-string-view-improv branch from 70809ca to d64eaf5 Compare December 7, 2025 18:11
@mkleen mkleen marked this pull request as ready for review December 7, 2025 18:12
@mkleen mkleen changed the title Add custom implementation for zip for string-views scalars Add custom implementation for zip for string-view scalars Dec 7, 2025
@mkleen mkleen force-pushed the zip-string-view-improv branch from d64eaf5 to 1e05651 Compare December 7, 2025 20:55
@mkleen mkleen changed the title Add custom implementation for zip for string-view scalars Add custom implementation for zip for utf8-view scalars Dec 7, 2025
@mkleen mkleen changed the title Add custom implementation for zip for utf8-view scalars Add custom implementation for zip for utf8View scalars Dec 7, 2025
@mkleen mkleen changed the title Add custom implementation for zip for utf8View scalars Add custom implementation for zip for Utf8View scalars Dec 7, 2025
@mkleen mkleen force-pushed the zip-string-view-improv branch 2 times, most recently from 2006eff to 724157f Compare December 7, 2025 22:29
@mkleen mkleen changed the title Add custom implementation for zip for Utf8View scalars Add special implementation for zip for Utf8View scalars Dec 7, 2025
@mkleen mkleen changed the title Add special implementation for zip for Utf8View scalars Add special case implementation for zip for Utf8View scalars Dec 7, 2025
@mkleen mkleen changed the title Add special case implementation for zip for Utf8View scalars Add special implementation for zip for Utf8View scalars Dec 7, 2025
@mkleen
Copy link
Contributor Author

mkleen commented Dec 8, 2025

I have some decent speed-ups, see benchmarks. It would be great if somone could provide an initial review of this.

@mkleen mkleen force-pushed the zip-string-view-improv branch from 724157f to ba3c71a Compare December 8, 2025 10:24
@mkleen mkleen changed the title Add special implementation for zip for Utf8View scalars Add special implementation for zip for Utf8View/BinaryView scalars Dec 8, 2025
@mkleen
Copy link
Contributor Author

mkleen commented Dec 9, 2025

@rluvaton Maybe you could have a look since you were the original author of this optimization? Thank you!

@rluvaton
Copy link
Member

rluvaton commented Dec 9, 2025

Great job! Will try to review it today

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 for this PR @mkleen -- could you please split out the benchmarks into a separate PR so it it easier to evaluate the performance difference due to this change?

@mkleen mkleen force-pushed the zip-string-view-improv branch 2 times, most recently from 310a81a to 918e2d0 Compare December 13, 2025 14:43
@mkleen mkleen requested a review from alamb December 13, 2025 20:49
alamb pushed a commit that referenced this pull request Dec 28, 2025
# Which issue does this PR close?

N/A

# Rationale for this change

I have a PR to improve zip perf for Utf8View/BinaryView scalars and I
need benchmarks for that.

- #8963

# What changes are included in this PR?

This extends the zip benchmarks by one new Input Generator for
StringViews and two more functions to test scalar combinations of
different StringViews combinations.

# Are these changes tested?

N/A

# Are there any user-facing changes?

No
@alamb
Copy link
Contributor

alamb commented Dec 28, 2025

run benchmark zip_kernels

@apache apache deleted a comment from alamb-ghbot Dec 28, 2025
@alamb-ghbot
Copy link

🤖 ./gh_compare_arrow.sh gh_compare_arrow.sh Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing zip-string-view-improv (cd723b7) to 814ee42 diff
BENCH_NAME=zip_kernels
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental --bench zip_kernels
BENCH_FILTER=
BENCH_BRANCH_NAME=zip-string-view-improv
Results will be posted here when complete

@alamb-ghbot
Copy link

🤖: Benchmark completed

Details

group                                                                                   main                                   zip-string-view-improv
-----                                                                                   ----                                   ----------------------
zip_8192_from_i32/array_vs_array/10pct_true                                             1.07     37.0±1.03µs        ? ?/sec    1.00     34.4±0.33µs        ? ?/sec
zip_8192_from_i32/array_vs_array/1pct_true                                              1.04      5.3±0.06µs        ? ?/sec    1.00      5.1±0.03µs        ? ?/sec
zip_8192_from_i32/array_vs_array/50pct_nulls                                            1.07     78.9±0.69µs        ? ?/sec    1.00     73.5±0.97µs        ? ?/sec
zip_8192_from_i32/array_vs_array/50pct_true                                             1.08    108.0±0.71µs        ? ?/sec    1.00     99.6±0.64µs        ? ?/sec
zip_8192_from_i32/array_vs_array/90pct_true                                             1.07     38.4±0.14µs        ? ?/sec    1.00     36.0±0.99µs        ? ?/sec
zip_8192_from_i32/array_vs_array/99pct_true                                             1.03      6.1±0.30µs        ? ?/sec    1.00      5.9±0.08µs        ? ?/sec
zip_8192_from_i32/array_vs_array/all_false                                              1.06      2.6±0.11µs        ? ?/sec    1.00      2.5±0.11µs        ? ?/sec
zip_8192_from_i32/array_vs_array/all_true                                               1.07      2.6±0.15µs        ? ?/sec    1.00      2.4±0.11µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/10pct_true                                   1.00     32.6±0.52ns        ? ?/sec    1.06     34.4±1.32ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/1pct_true                                    1.00     32.6±0.53ns        ? ?/sec    1.06     34.4±1.31ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/50pct_nulls                                  1.00     32.0±0.38ns        ? ?/sec    1.08     34.4±1.53ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/50pct_true                                   1.00     32.0±0.39ns        ? ?/sec    1.08     34.4±1.45ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/90pct_true                                   1.00     32.0±0.40ns        ? ?/sec    1.07     34.4±1.35ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/99pct_true                                   1.00     31.9±0.22ns        ? ?/sec    1.08     34.4±1.40ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/all_false                                    1.00     32.0±0.37ns        ? ?/sec    1.11     35.4±1.48ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/all_true                                     1.00     32.0±0.48ns        ? ?/sec    1.07     34.3±1.26ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/10pct_true                                   1.00     30.2±0.32ns        ? ?/sec    1.04     31.4±1.20ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/1pct_true                                    1.00     30.2±0.34ns        ? ?/sec    1.04     31.3±1.24ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/50pct_nulls                                  1.00     30.3±0.97ns        ? ?/sec    1.04     31.4±1.18ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/50pct_true                                   1.00     30.2±0.26ns        ? ?/sec    1.04     31.3±1.26ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/90pct_true                                   1.00     30.2±0.17ns        ? ?/sec    1.04     31.4±1.35ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/99pct_true                                   1.00     30.3±1.33ns        ? ?/sec    1.06     32.1±1.57ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/all_false                                    1.00     30.3±0.72ns        ? ?/sec    1.04     31.3±1.27ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/all_true                                     1.00     30.2±0.26ns        ? ?/sec    1.05     31.6±1.79ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/10pct_true                             1.00  1135.7±30.71ns        ? ?/sec    1.04  1177.9±12.25ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/1pct_true                              1.03  1204.0±14.85ns        ? ?/sec    1.00  1164.6±72.80ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/50pct_nulls                            1.03   1293.3±7.06ns        ? ?/sec    1.00  1250.6±22.26ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/50pct_true                             1.03  1174.3±22.00ns        ? ?/sec    1.00  1139.1±43.93ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/90pct_true                             1.02   1186.4±9.11ns        ? ?/sec    1.00  1165.3±17.83ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/99pct_true                             1.00  1134.4±21.58ns        ? ?/sec    1.02  1155.9±20.23ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/all_false                              1.00  1163.8±13.43ns        ? ?/sec    1.00  1166.9±13.11ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_null_scalar/all_true                               1.02  1201.3±12.14ns        ? ?/sec    1.00  1174.2±33.25ns        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/10pct_true                                          1.00      9.2±0.29µs        ? ?/sec    1.00      9.1±0.11µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/1pct_true                                           1.00      9.1±0.09µs        ? ?/sec    1.01      9.2±0.09µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/50pct_nulls                                         1.00      9.2±0.28µs        ? ?/sec    1.00      9.3±0.40µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/50pct_true                                          1.00      9.2±0.08µs        ? ?/sec    1.00      9.2±0.35µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/90pct_true                                          1.00      9.0±0.06µs        ? ?/sec    1.01      9.1±0.17µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/99pct_true                                          1.00      9.0±0.05µs        ? ?/sec    1.01      9.1±0.22µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/all_false                                           1.00      9.1±0.07µs        ? ?/sec    1.01      9.1±0.16µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/all_true                                            1.00      9.1±0.02µs        ? ?/sec    1.00      9.0±0.17µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/10pct_true                                    1.00  1252.7±21.32ns        ? ?/sec    1.07  1342.0±10.03ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/1pct_true                                     1.07   1330.2±8.47ns        ? ?/sec    1.00  1242.7±11.61ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/50pct_nulls                                   1.00   1378.6±7.49ns        ? ?/sec    1.02  1405.0±12.68ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/50pct_true                                    1.00  1256.2±13.64ns        ? ?/sec    1.03  1298.0±27.33ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/90pct_true                                    1.00  1273.0±12.04ns        ? ?/sec    1.02  1301.7±14.92ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/99pct_true                                    1.05  1324.7±15.58ns        ? ?/sec    1.00  1256.3±51.75ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/all_false                                     1.00  1208.3±17.29ns        ? ?/sec    1.02  1236.1±16.16ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/all_true                                      1.03  1250.8±11.37ns        ? ?/sec    1.00  1217.7±18.96ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/10pct_true                           1.01    330.5±9.42µs        ? ?/sec    1.00    327.2±9.25µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/1pct_true                            1.01    294.2±5.48µs        ? ?/sec    1.00    292.4±3.81µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/50pct_nulls                          1.03   398.6±14.45µs        ? ?/sec    1.00   386.5±11.09µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/50pct_true                           1.00   436.7±14.63µs        ? ?/sec    1.00   436.2±12.28µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/90pct_true                           1.01   340.3±10.89µs        ? ?/sec    1.00   336.6±10.37µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/99pct_true                           1.00    275.9±6.66µs        ? ?/sec    1.00    275.7±6.98µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/all_false                            1.00    115.2±2.44µs        ? ?/sec    1.02    117.6±3.26µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_array/all_true                             1.00    119.3±3.82µs        ? ?/sec    1.01    120.3±1.83µs        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/10pct_true                 1.00     32.1±0.33ns        ? ?/sec    1.05     33.6±0.50ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/1pct_true                  1.00     32.1±0.24ns        ? ?/sec    1.05     33.8±0.64ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/50pct_nulls                1.00     32.1±0.20ns        ? ?/sec    1.05     33.8±0.39ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/50pct_true                 1.00     32.1±0.19ns        ? ?/sec    1.05     33.8±0.67ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/90pct_true                 1.00     32.6±0.39ns        ? ?/sec    1.03     33.7±0.27ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/99pct_true                 1.00     32.2±0.69ns        ? ?/sec    1.04     33.5±0.37ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/all_false                  1.00     32.5±0.30ns        ? ?/sec    1.04     33.7±0.69ns        ? ?/sec
zip_8192_from_long bytes (100..400)/array_vs_non_null_scalar/all_true                   1.00     32.2±0.68ns        ? ?/sec    1.05     33.7±0.40ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/10pct_true                 1.00     30.4±0.38ns        ? ?/sec    1.00     30.5±0.15ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/1pct_true                  1.00     30.4±0.32ns        ? ?/sec    1.01     30.6±0.17ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/50pct_nulls                1.00     30.5±1.16ns        ? ?/sec    1.00     30.7±0.34ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/50pct_true                 1.00     30.5±0.53ns        ? ?/sec    1.01     30.7±0.44ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/90pct_true                 1.00     30.4±0.26ns        ? ?/sec    1.01     30.7±0.26ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/99pct_true                 1.01     30.9±1.56ns        ? ?/sec    1.00     30.7±0.64ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/all_false                  1.00     30.5±1.41ns        ? ?/sec    1.00     30.7±0.55ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_array/all_true                   1.00     30.4±0.51ns        ? ?/sec    1.01     30.7±0.21ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/10pct_true           1.00     18.7±0.75µs        ? ?/sec    1.09     20.4±0.65µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/1pct_true            1.10     12.0±0.04µs        ? ?/sec    1.00     10.9±0.31µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/50pct_nulls          1.00     32.8±1.31µs        ? ?/sec    1.17     38.5±0.78µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/50pct_true           1.00     63.7±0.90µs        ? ?/sec    1.04     66.4±1.03µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/90pct_true           1.00     74.1±1.89µs        ? ?/sec    1.10     81.3±0.95µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/99pct_true           1.00     84.0±1.84µs        ? ?/sec    1.04     87.3±1.40µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/all_false            1.00   947.7±86.68ns        ? ?/sec    1.00   944.7±79.13ns        ? ?/sec
zip_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/all_true             1.00     85.1±0.89µs        ? ?/sec    1.04     88.8±1.65µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/10pct_true                        1.01     77.3±1.50µs        ? ?/sec    1.00     76.2±1.11µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/1pct_true                         1.00     57.5±1.36µs        ? ?/sec    1.03     59.4±1.53µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/50pct_nulls                       1.01     91.9±2.13µs        ? ?/sec    1.00     91.4±1.18µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/50pct_true                        1.01    107.3±0.90µs        ? ?/sec    1.00    106.7±1.99µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/90pct_true                        1.00    101.2±2.43µs        ? ?/sec    1.00    101.1±2.04µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/99pct_true                        1.01     89.0±1.62µs        ? ?/sec    1.00     87.8±1.08µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/all_false                         1.00     45.2±0.68µs        ? ?/sec    1.05     47.4±0.59µs        ? ?/sec
zip_8192_from_long bytes (100..400)/non_nulls_scalars/all_true                          1.00     76.6±1.30µs        ? ?/sec    1.03     78.8±0.81µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/10pct_true                  1.00     74.5±0.77µs        ? ?/sec    1.09     81.2±0.81µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/1pct_true                   1.00     85.1±0.98µs        ? ?/sec    1.03     87.9±1.49µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/50pct_nulls                 1.00     70.5±1.34µs        ? ?/sec    1.07     75.2±2.03µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/50pct_true                  1.00     63.0±0.93µs        ? ?/sec    1.05     66.2±1.43µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/90pct_true                  1.00     19.4±0.66µs        ? ?/sec    1.08     20.8±0.94µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/99pct_true                  1.10     12.3±0.38µs        ? ?/sec    1.00     11.2±0.06µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/all_false                   1.00     85.2±1.16µs        ? ?/sec    1.04     88.5±0.80µs        ? ?/sec
zip_8192_from_long bytes (100..400)/null_vs_non_null_scalar/all_true                    1.00  1064.1±72.55ns        ? ?/sec    1.16  1236.5±84.98ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/10pct_true                         1.03    327.6±8.86µs        ? ?/sec    1.00    318.5±2.75µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/1pct_true                          1.00    287.4±5.64µs        ? ?/sec    1.01    289.0±4.14µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/50pct_nulls                        1.01   399.8±12.79µs        ? ?/sec    1.00   394.2±12.90µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/50pct_true                         1.01   437.9±20.91µs        ? ?/sec    1.00   434.0±13.05µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/90pct_true                         1.02   331.9±11.65µs        ? ?/sec    1.00    324.3±6.41µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/99pct_true                         1.01    261.9±5.04µs        ? ?/sec    1.00    260.4±4.41µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/all_false                          1.01    115.9±3.47µs        ? ?/sec    1.00    114.4±2.24µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_array/all_true                           1.01    119.7±2.27µs        ? ?/sec    1.00    118.2±3.00µs        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/10pct_true               1.00     32.1±0.45ns        ? ?/sec    1.04     33.5±0.16ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/1pct_true                1.00     32.4±1.44ns        ? ?/sec    1.06     34.4±0.68ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/50pct_nulls              1.00     32.2±0.59ns        ? ?/sec    1.07     34.4±0.34ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/50pct_true               1.00     32.1±0.40ns        ? ?/sec    1.07     34.4±0.45ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/90pct_true               1.00     32.4±1.36ns        ? ?/sec    1.04     33.5±0.18ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/99pct_true               1.00     32.2±0.40ns        ? ?/sec    1.07     34.5±1.17ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/all_false                1.00     32.1±0.35ns        ? ?/sec    1.04     33.5±0.17ns        ? ?/sec
zip_8192_from_long strings (100..400)/array_vs_non_null_scalar/all_true                 1.00     32.2±0.43ns        ? ?/sec    1.04     33.5±0.16ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/10pct_true               1.00     30.5±1.08ns        ? ?/sec    1.02     31.0±0.79ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/1pct_true                1.00     30.5±0.64ns        ? ?/sec    1.01     30.9±0.18ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/50pct_nulls              1.00     30.5±0.78ns        ? ?/sec    1.00     30.6±0.40ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/50pct_true               1.00     30.4±0.22ns        ? ?/sec    1.02     30.9±0.14ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/90pct_true               1.00     30.4±0.25ns        ? ?/sec    1.01     30.8±0.14ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/99pct_true               1.00     30.4±0.17ns        ? ?/sec    1.02     30.9±0.26ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/all_false                1.00     30.4±0.36ns        ? ?/sec    1.01     30.6±0.47ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_array/all_true                 1.00     30.5±1.11ns        ? ?/sec    1.03     31.4±3.04ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/10pct_true         1.00     18.3±0.74µs        ? ?/sec    1.12     20.5±0.63µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/1pct_true          1.10     12.0±0.13µs        ? ?/sec    1.00     10.9±0.28µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/50pct_nulls        1.00     31.8±1.37µs        ? ?/sec    1.22     38.8±1.69µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/50pct_true         1.00     62.6±1.44µs        ? ?/sec    1.07     66.8±0.97µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/90pct_true         1.00     75.3±1.61µs        ? ?/sec    1.04     78.3±1.27µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/99pct_true         1.03     85.1±1.37µs        ? ?/sec    1.00     82.3±0.74µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/all_false          1.09   983.1±95.24ns        ? ?/sec    1.00   900.0±49.27ns        ? ?/sec
zip_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/all_true           1.04     87.2±0.70µs        ? ?/sec    1.00     83.8±0.54µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/10pct_true                      1.01    127.3±2.50µs        ? ?/sec    1.00    125.7±3.17µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/1pct_true                       1.01    147.3±2.33µs        ? ?/sec    1.00    146.0±1.02µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/50pct_nulls                     1.02    130.3±3.08µs        ? ?/sec    1.00    127.7±2.41µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/50pct_true                      1.00    126.5±1.50µs        ? ?/sec    1.00    127.0±3.21µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/90pct_true                      1.00    105.9±2.39µs        ? ?/sec    1.00    106.0±3.24µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/99pct_true                      1.04     92.4±1.51µs        ? ?/sec    1.00     88.7±1.59µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/all_false                       1.00    137.5±2.30µs        ? ?/sec    1.00    136.9±1.30µs        ? ?/sec
zip_8192_from_long strings (100..400)/non_nulls_scalars/all_true                        1.04     77.8±0.81µs        ? ?/sec    1.00     74.7±0.93µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/10pct_true                1.00     76.2±1.31µs        ? ?/sec    1.04     79.4±1.63µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/1pct_true                 1.03     85.8±1.94µs        ? ?/sec    1.00     83.5±1.68µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/50pct_nulls               1.00     69.7±1.79µs        ? ?/sec    1.08     75.4±2.00µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/50pct_true                1.00     62.8±1.06µs        ? ?/sec    1.07     67.0±0.86µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/90pct_true                1.00     19.2±0.69µs        ? ?/sec    1.11     21.3±0.94µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/99pct_true                1.10     12.4±0.15µs        ? ?/sec    1.00     11.3±0.19µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/all_false                 1.03     87.2±1.00µs        ? ?/sec    1.00     84.3±0.95µs        ? ?/sec
zip_8192_from_long strings (100..400)/null_vs_non_null_scalar/all_true                  1.00  1201.6±74.60ns        ? ?/sec    1.00  1206.2±75.55ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/10pct_true                             1.06     65.2±0.54µs        ? ?/sec    1.00     61.7±1.74µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/1pct_true                              1.00     22.5±0.17µs        ? ?/sec    1.00     22.5±0.19µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/50pct_nulls                            1.06    126.8±1.55µs        ? ?/sec    1.00    119.8±0.80µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/50pct_true                             1.06    167.2±0.52µs        ? ?/sec    1.00    158.0±0.78µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/90pct_true                             1.04     67.4±0.41µs        ? ?/sec    1.00     64.9±0.52µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/99pct_true                             1.00     23.2±0.26µs        ? ?/sec    1.01     23.4±0.24µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/all_false                              1.00     17.9±0.19µs        ? ?/sec    1.01     18.0±0.25µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_array/all_true                               1.01     18.2±0.28µs        ? ?/sec    1.00     18.0±0.19µs        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/10pct_true                   1.00     32.6±0.46ns        ? ?/sec    1.05     34.4±0.24ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/1pct_true                    1.00     32.3±1.15ns        ? ?/sec    1.06     34.3±0.27ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/50pct_nulls                  1.00     32.7±1.22ns        ? ?/sec    1.03     33.5±0.43ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/50pct_true                   1.00     32.5±2.15ns        ? ?/sec    1.06     34.4±0.25ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/90pct_true                   1.00     32.6±0.51ns        ? ?/sec    1.03     33.6±0.52ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/99pct_true                   1.00     32.6±0.51ns        ? ?/sec    1.03     33.6±0.42ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/all_false                    1.00     32.1±0.19ns        ? ?/sec    1.04     33.5±0.36ns        ? ?/sec
zip_8192_from_short bytes (3..10)/array_vs_non_null_scalar/all_true                     1.00     32.3±0.81ns        ? ?/sec    1.04     33.6±0.33ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/10pct_true                   1.00     30.6±0.19ns        ? ?/sec    1.00     30.7±0.40ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/1pct_true                    1.00     30.7±0.57ns        ? ?/sec    1.00     30.8±0.13ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/50pct_nulls                  1.00     30.4±0.43ns        ? ?/sec    1.01     30.9±0.32ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/50pct_true                   1.00     30.5±0.33ns        ? ?/sec    1.01     30.9±0.50ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/90pct_true                   1.00     30.7±0.34ns        ? ?/sec    1.01     30.9±0.31ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/99pct_true                   1.00     30.6±0.25ns        ? ?/sec    1.00     30.6±0.34ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/all_false                    1.00     30.7±0.36ns        ? ?/sec    1.01     30.9±0.27ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_array/all_true                     1.00     30.7±0.39ns        ? ?/sec    1.00     30.6±0.36ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/10pct_true             1.00     13.9±0.07µs        ? ?/sec    1.11     15.5±0.05µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/1pct_true              1.11     11.5±0.09µs        ? ?/sec    1.00     10.4±0.22µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls            1.00     19.8±0.22µs        ? ?/sec    1.27     25.1±0.33µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/50pct_true             1.00     34.3±0.22µs        ? ?/sec    1.11     38.1±0.71µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/90pct_true             1.00     15.6±0.23µs        ? ?/sec    1.20     18.8±0.12µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/99pct_true             1.00     12.4±0.15µs        ? ?/sec    1.07     13.3±0.14µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/all_false              1.01   945.0±79.72ns        ? ?/sec    1.00   935.3±57.13ns        ? ?/sec
zip_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/all_true               1.00     11.7±0.15µs        ? ?/sec    1.09     12.7±0.16µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/10pct_true                          1.05     34.2±0.57µs        ? ?/sec    1.00     32.7±0.09µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/1pct_true                           1.01     15.0±0.28µs        ? ?/sec    1.00     14.9±0.12µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/50pct_nulls                         1.01     54.9±0.88µs        ? ?/sec    1.00     54.5±0.34µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/50pct_true                          1.01     70.6±1.57µs        ? ?/sec    1.00     70.1±0.44µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/90pct_true                          1.00     32.3±0.19µs        ? ?/sec    1.00     32.2±0.31µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/99pct_true                          1.01     16.0±0.05µs        ? ?/sec    1.00     15.9±0.05µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/all_false                           1.01      2.6±0.07µs        ? ?/sec    1.00      2.6±0.06µs        ? ?/sec
zip_8192_from_short bytes (3..10)/non_nulls_scalars/all_true                            1.00      3.1±0.06µs        ? ?/sec    1.00      3.1±0.07µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/10pct_true                    1.00     15.7±0.41µs        ? ?/sec    1.17     18.4±0.10µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/1pct_true                     1.00     12.2±0.09µs        ? ?/sec    1.09     13.3±0.45µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/50pct_nulls                   1.00     21.9±0.23µs        ? ?/sec    1.26     27.5±0.20µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/50pct_true                    1.00     34.5±0.12µs        ? ?/sec    1.10     37.9±0.10µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/90pct_true                    1.00     14.0±0.11µs        ? ?/sec    1.13     15.9±0.05µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/99pct_true                    1.09     11.7±0.10µs        ? ?/sec    1.00     10.7±0.08µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/all_false                     1.00     11.9±0.18µs        ? ?/sec    1.08     12.8±0.14µs        ? ?/sec
zip_8192_from_short bytes (3..10)/null_vs_non_null_scalar/all_true                      1.00   954.2±55.81ns        ? ?/sec    1.27  1213.9±91.79ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/10pct_true                           1.06     65.0±0.85µs        ? ?/sec    1.00     61.4±0.52µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/1pct_true                            1.00     22.4±0.45µs        ? ?/sec    1.00     22.4±0.25µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/50pct_nulls                          1.06    126.8±1.88µs        ? ?/sec    1.00    119.6±2.17µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/50pct_true                           1.06    167.7±2.11µs        ? ?/sec    1.00    158.3±2.95µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/90pct_true                           1.07     68.0±1.35µs        ? ?/sec    1.00     63.6±0.39µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/99pct_true                           1.00     23.2±0.30µs        ? ?/sec    1.00     23.2±0.19µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/all_false                            1.01     17.9±0.39µs        ? ?/sec    1.00     17.8±0.18µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_array/all_true                             1.02     18.1±0.17µs        ? ?/sec    1.00     17.7±0.22µs        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/10pct_true                 1.00     32.5±0.29ns        ? ?/sec    1.03     33.6±0.25ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/1pct_true                  1.00     32.1±0.43ns        ? ?/sec    1.08     34.8±0.38ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/50pct_nulls                1.00     32.5±0.24ns        ? ?/sec    1.07     34.7±0.38ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/50pct_true                 1.00     32.2±0.24ns        ? ?/sec    1.04     33.5±0.20ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/90pct_true                 1.00     32.6±0.46ns        ? ?/sec    1.03     33.5±0.19ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/99pct_true                 1.00     32.2±0.65ns        ? ?/sec    1.04     33.6±0.69ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/all_false                  1.00     32.1±0.32ns        ? ?/sec    1.05     33.7±0.34ns        ? ?/sec
zip_8192_from_short strings (3..10)/array_vs_non_null_scalar/all_true                   1.00     32.5±0.36ns        ? ?/sec    1.03     33.5±0.26ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/10pct_true                 1.00     30.4±0.14ns        ? ?/sec    1.01     30.6±0.44ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/1pct_true                  1.00     30.4±0.18ns        ? ?/sec    1.01     30.6±0.17ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/50pct_nulls                1.00     30.4±0.28ns        ? ?/sec    1.01     30.6±0.38ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/50pct_true                 1.00     30.5±0.67ns        ? ?/sec    1.00     30.6±0.20ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/90pct_true                 1.00     30.4±0.18ns        ? ?/sec    1.02     30.9±0.36ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/99pct_true                 1.00     30.4±0.27ns        ? ?/sec    1.01     30.7±0.37ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/all_false                  1.00     30.4±0.30ns        ? ?/sec    1.01     30.8±0.15ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_array/all_true                   1.00     30.4±0.34ns        ? ?/sec    1.01     30.7±0.48ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/10pct_true           1.00     13.9±0.08µs        ? ?/sec    1.12     15.6±0.08µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/1pct_true            1.10     11.5±0.20µs        ? ?/sec    1.00     10.5±0.08µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls          1.00     19.8±0.09µs        ? ?/sec    1.28     25.3±0.25µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/50pct_true           1.00     34.4±0.33µs        ? ?/sec    1.10     38.0±0.16µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/90pct_true           1.00     15.5±0.12µs        ? ?/sec    1.21     18.8±0.18µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/99pct_true           1.00     12.2±0.31µs        ? ?/sec    1.10     13.5±0.16µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/all_false            1.00   946.4±67.99ns        ? ?/sec    1.00   942.3±82.32ns        ? ?/sec
zip_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/all_true             1.00     11.7±0.28µs        ? ?/sec    1.09     12.8±0.12µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/10pct_true                        1.00     33.4±0.55µs        ? ?/sec    1.01     33.9±0.12µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/1pct_true                         1.01     15.4±0.12µs        ? ?/sec    1.00     15.3±0.12µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/50pct_nulls                       1.00     54.0±0.20µs        ? ?/sec    1.01     54.4±0.26µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/50pct_true                        1.01     70.5±3.16µs        ? ?/sec    1.00     69.9±0.80µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/90pct_true                        1.04     33.1±0.53µs        ? ?/sec    1.00     31.8±0.26µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/99pct_true                        1.01     16.1±0.19µs        ? ?/sec    1.00     15.9±0.12µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/all_false                         1.00      2.9±0.08µs        ? ?/sec    1.00      2.9±0.09µs        ? ?/sec
zip_8192_from_short strings (3..10)/non_nulls_scalars/all_true                          1.00      3.2±0.08µs        ? ?/sec    1.00      3.2±0.10µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/10pct_true                  1.00     15.6±0.12µs        ? ?/sec    1.19     18.5±0.27µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/1pct_true                   1.00     12.1±0.11µs        ? ?/sec    1.11     13.4±0.14µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/50pct_nulls                 1.00     21.9±0.15µs        ? ?/sec    1.26     27.6±0.43µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/50pct_true                  1.00     34.5±0.30µs        ? ?/sec    1.10     38.0±0.12µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/90pct_true                  1.00     14.1±0.07µs        ? ?/sec    1.13     15.9±0.22µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/99pct_true                  1.10     11.7±0.16µs        ? ?/sec    1.00     10.7±0.11µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/all_false                   1.00     11.7±0.09µs        ? ?/sec    1.10     12.8±0.11µs        ? ?/sec
zip_8192_from_short strings (3..10)/null_vs_non_null_scalar/all_true                    1.03  1138.3±76.45ns        ? ?/sec    1.00  1109.8±81.37ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/10pct_true                     1.14     55.4±0.57µs        ? ?/sec    1.00     48.6±0.31µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/1pct_true                      1.24     20.3±0.41µs        ? ?/sec    1.00     16.3±0.13µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/50pct_nulls                    1.10    102.8±1.53µs        ? ?/sec    1.00     93.8±1.37µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/50pct_true                     1.08    135.0±3.27µs        ? ?/sec    1.00    125.0±1.47µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/90pct_true                     1.12     56.7±0.97µs        ? ?/sec    1.00     50.5±0.67µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/99pct_true                     1.20     20.9±0.37µs        ? ?/sec    1.00     17.4±0.90µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/all_false                      1.26     16.6±0.80µs        ? ?/sec    1.00     13.2±0.17µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_array/all_true                       1.27     16.5±0.28µs        ? ?/sec    1.00     13.0±0.11µs        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/10pct_true           1.00     32.8±0.45ns        ? ?/sec    1.04     34.2±1.16ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/1pct_true            1.16     39.5±0.67ns        ? ?/sec    1.00     34.1±1.03ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/50pct_nulls          1.16     39.5±0.62ns        ? ?/sec    1.00     34.2±1.19ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/50pct_true           1.00     32.2±0.21ns        ? ?/sec    1.05     33.9±0.93ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/90pct_true           1.00     32.8±1.07ns        ? ?/sec    1.04     34.1±1.22ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/99pct_true           1.00     32.3±0.59ns        ? ?/sec    1.05     34.1±0.91ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/all_false            1.00     32.4±0.95ns        ? ?/sec    1.06     34.2±1.15ns        ? ?/sec
zip_8192_from_string_views size (10..100)/array_vs_non_null_scalar/all_true             1.00     32.8±0.93ns        ? ?/sec    1.04     34.3±1.26ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/10pct_true           1.20     36.8±0.69ns        ? ?/sec    1.00     30.6±0.22ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/1pct_true            1.00     30.7±0.38ns        ? ?/sec    1.00     30.7±0.64ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/50pct_nulls          1.00     30.8±0.69ns        ? ?/sec    1.00     30.7±0.56ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/50pct_true           1.00     30.7±0.51ns        ? ?/sec    1.00     30.7±0.34ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/90pct_true           1.00     30.7±0.30ns        ? ?/sec    1.01     31.0±1.78ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/99pct_true           1.20     36.9±1.45ns        ? ?/sec    1.00     30.8±0.62ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/all_false            1.19     36.8±0.52ns        ? ?/sec    1.00     30.9±1.60ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_array/all_true             1.00     30.5±0.24ns        ? ?/sec    1.01     30.6±0.28ns        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/10pct_true     48.98   157.1±1.43µs        ? ?/sec    1.00      3.2±0.29µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/1pct_true      48.01   152.7±1.42µs        ? ?/sec    1.00      3.2±0.29µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/50pct_nulls    50.54   163.6±2.13µs        ? ?/sec    1.00      3.2±0.27µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/50pct_true     54.92   169.0±4.65µs        ? ?/sec    1.00      3.1±0.23µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/90pct_true     36.81   114.0±1.25µs        ? ?/sec    1.00      3.1±0.26µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/99pct_true     33.41    99.7±3.70µs        ? ?/sec    1.00      3.0±0.16µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/all_false      50.14   151.7±1.44µs        ? ?/sec    1.00      3.0±0.29µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_null_scalar_vs_null_scalar/all_true       31.34    96.9±1.65µs        ? ?/sec    1.00      3.1±0.19µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/10pct_true                  4.60     86.2±0.57µs        ? ?/sec    1.00     18.7±0.49µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/1pct_true                   15.39    75.7±0.38µs        ? ?/sec    1.00      4.9±0.10µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/50pct_nulls                 2.62     99.9±1.48µs        ? ?/sec    1.00     38.2±0.72µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/50pct_true                  2.10    117.4±4.65µs        ? ?/sec    1.00     55.8±1.61µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/90pct_true                  4.43     86.4±1.49µs        ? ?/sec    1.00     19.5±0.10µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/99pct_true                  14.07    75.8±0.58µs        ? ?/sec    1.00      5.4±0.08µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/all_false                   24.04    76.3±0.90µs        ? ?/sec    1.00      3.2±0.25µs        ? ?/sec
zip_8192_from_string_views size (10..100)/non_nulls_scalars/all_true                    24.25    74.2±0.47µs        ? ?/sec    1.00      3.1±0.19µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/10pct_true            34.27   112.2±1.44µs        ? ?/sec    1.00      3.3±0.23µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/1pct_true             30.18    99.0±0.38µs        ? ?/sec    1.00      3.3±0.27µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/50pct_nulls           40.15   135.3±2.51µs        ? ?/sec    1.00      3.4±0.29µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/50pct_true            50.45   168.0±1.21µs        ? ?/sec    1.00      3.3±0.26µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/90pct_true            48.97   159.0±4.36µs        ? ?/sec    1.00      3.2±0.25µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/99pct_true            46.69   153.2±6.27µs        ? ?/sec    1.00      3.3±0.26µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/all_false             30.00    98.6±0.96µs        ? ?/sec    1.00      3.3±0.25µs        ? ?/sec
zip_8192_from_string_views size (10..100)/null_vs_non_null_scalar/all_true              46.26   151.2±1.79µs        ? ?/sec    1.00      3.3±0.27µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/10pct_true                       1.12     49.6±2.26µs        ? ?/sec    1.00     44.3±0.21µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/1pct_true                        1.38     16.8±0.43µs        ? ?/sec    1.00     12.2±0.19µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/50pct_nulls                      1.09     91.9±1.54µs        ? ?/sec    1.00     84.5±0.86µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/50pct_true                       1.08    122.6±0.41µs        ? ?/sec    1.00    114.0±1.23µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/90pct_true                       1.12     50.4±0.73µs        ? ?/sec    1.00     45.1±0.58µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/99pct_true                       1.40     18.4±0.43µs        ? ?/sec    1.00     13.1±0.06µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/all_false                        1.66     13.7±0.18µs        ? ?/sec    1.00      8.2±0.04µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_array/all_true                         1.70     14.1±0.39µs        ? ?/sec    1.00      8.3±0.31µs        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/10pct_true             1.00     32.3±0.22ns        ? ?/sec    1.08     34.7±1.71ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/1pct_true              1.00     32.9±0.62ns        ? ?/sec    1.08     35.5±1.67ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/50pct_nulls            1.00     33.1±1.61ns        ? ?/sec    1.08     35.7±1.84ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/50pct_true             1.00     32.8±0.30ns        ? ?/sec    1.06     34.7±1.72ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/90pct_true             1.00     32.3±0.57ns        ? ?/sec    1.10     35.6±1.65ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/99pct_true             1.00     32.8±0.33ns        ? ?/sec    1.08     35.5±1.59ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/all_false              1.00     32.9±0.68ns        ? ?/sec    1.06     34.8±1.61ns        ? ?/sec
zip_8192_from_string_views size (3..10)/array_vs_non_null_scalar/all_true               1.00     32.3±0.36ns        ? ?/sec    1.08     35.0±2.33ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/10pct_true             1.00     30.5±0.26ns        ? ?/sec    1.02     31.1±0.93ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/1pct_true              1.00     30.5±0.19ns        ? ?/sec    1.03     31.2±1.07ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/50pct_nulls            1.00     30.5±0.67ns        ? ?/sec    1.02     31.1±0.93ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/50pct_true             1.00     30.7±0.33ns        ? ?/sec    1.02     31.1±0.95ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/90pct_true             1.00     30.4±0.17ns        ? ?/sec    1.03     31.4±0.90ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/99pct_true             1.00     30.6±0.27ns        ? ?/sec    1.02     31.2±0.99ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/all_false              1.00     30.5±0.16ns        ? ?/sec    1.02     31.2±0.97ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_array/all_true               1.00     30.5±0.23ns        ? ?/sec    1.03     31.3±0.93ns        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/10pct_true       51.95   156.4±3.18µs        ? ?/sec    1.00      3.0±0.22µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/1pct_true        52.14   152.0±2.10µs        ? ?/sec    1.00      2.9±0.16µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls      50.61   162.2±1.05µs        ? ?/sec    1.00      3.2±0.25µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/50pct_true       53.65   166.7±3.43µs        ? ?/sec    1.00      3.1±0.25µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/90pct_true       36.99   113.1±1.52µs        ? ?/sec    1.00      3.1±0.23µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/99pct_true       33.21    97.5±0.86µs        ? ?/sec    1.00      2.9±0.18µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/all_false        51.70   151.0±0.64µs        ? ?/sec    1.00      2.9±0.18µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_null_scalar_vs_null_scalar/all_true         31.75    95.0±0.48µs        ? ?/sec    1.00      3.0±0.22µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/10pct_true                    4.48     82.9±0.75µs        ? ?/sec    1.00     18.5±0.16µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/1pct_true                     15.31    73.3±0.71µs        ? ?/sec    1.00      4.8±0.16µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/50pct_nulls                   2.57     97.0±1.62µs        ? ?/sec    1.00     37.7±0.12µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/50pct_true                    2.05    113.7±0.78µs        ? ?/sec    1.00     55.5±0.33µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/90pct_true                    4.36     84.1±2.51µs        ? ?/sec    1.00     19.3±0.27µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/99pct_true                    14.24    73.6±0.43µs        ? ?/sec    1.00      5.2±0.13µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/all_false                     23.09    75.4±0.39µs        ? ?/sec    1.00      3.3±0.28µs        ? ?/sec
zip_8192_from_string_views size (3..10)/non_nulls_scalars/all_true                      23.19    72.1±0.93µs        ? ?/sec    1.00      3.1±0.23µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/10pct_true              36.02   110.5±0.74µs        ? ?/sec    1.00      3.1±0.23µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/1pct_true               30.31    97.6±1.10µs        ? ?/sec    1.00      3.2±0.33µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/50pct_nulls             41.43   134.5±2.99µs        ? ?/sec    1.00      3.2±0.21µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/50pct_true              53.93   167.2±2.28µs        ? ?/sec    1.00      3.1±0.24µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/90pct_true              50.16   157.8±1.20µs        ? ?/sec    1.00      3.1±0.25µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/99pct_true              49.27   152.2±3.13µs        ? ?/sec    1.00      3.1±0.25µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/all_false               31.04    96.6±1.20µs        ? ?/sec    1.00      3.1±0.24µs        ? ?/sec
zip_8192_from_string_views size (3..10)/null_vs_non_null_scalar/all_true                48.27   150.9±1.30µs        ? ?/sec    1.00      3.1±0.25µs        ? ?/sec

@mkleen mkleen force-pushed the zip-string-view-improv branch from cd723b7 to fc7390a Compare December 31, 2025 05:40
@mkleen mkleen requested a review from Jefffrey December 31, 2025 05:45
@mkleen
Copy link
Contributor Author

mkleen commented Dec 31, 2025

@Jefffrey Thanks for the review. Could you do another iteration, please?

@mkleen
Copy link
Contributor Author

mkleen commented Dec 31, 2025

@alamb, Could we have another benchmark run, please?

Copy link
Contributor

@Jefffrey Jefffrey left a comment

Choose a reason for hiding this comment

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

We can take up any further refactors in future PRs

@mkleen
Copy link
Contributor Author

mkleen commented Jan 1, 2026

@jeffrey Thank you for the review and happy New Year!

@Jefffrey Jefffrey merged commit 49c27d6 into apache:main Jan 3, 2026
26 checks passed
@Jefffrey
Copy link
Contributor

Jefffrey commented Jan 3, 2026

Thanks @mkleen & @alamb

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 performance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement special case zip with scalar for Utf8View

5 participants