Skip to content

[58_maintenance] Upgrade legacy Thrift dependency to 0.23 - #11365

Merged
alamb merged 7 commits into
apache:58_maintenancefrom
beinan:codex/parquet58-thrift-security
Oct 22, 2026
Merged

alamb merged 7 commits into
apache:58_maintenancefrom
beinan:codex/parquet58-thrift-security

Conversation

@beinan

@beinan beinan commented Oct 4, 2026 •

Copy link
Copy Markdown

Parquet 58 still depends on Thrift 0.17, which is affected by GHSA-2f9f-gq7v-9h6m. Upgrade the legacy Thrift dependency to 0.23 on 58_maintenance, preserving the Arrow/Parquet 58 APIs for downstream readers such as Paimon.

Add regressions for compact-protocol Statistics round trips and rejection of an oversized binary field before allocation. The existing internal Parquet decoder is unchanged.

Validation: cargo +stable test -p parquet --lib passes all 1,090 tests, including the 12 Thrift-related tests; formatting and git diff --check pass.

@github-actions github-actions Bot added the parquet Changes to the parquet crate label Oct 4, 2026
@Jefffrey

Jefffrey commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

is this a request for a 58.4.1 patch release?

@alamb

alamb commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

update: we will be making a patch release, see

@alamb

alamb commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Jefffrey added a commit that referenced this pull request Oct 21, 2026
…oc, MIRI and integration test fixes (#11727)

# Which issue does this PR close?

- Part of #11665 (58.4.1 release)

# Rationale for this change

CI on the 58_maintenance branch is red on every PR (e.g. #11365, #11703,
#11704, #11705, #11707) for reasons unrelated to those PRs.



# What changes are included in this PR?

- Check in the root `Cargo.lock`, the same approach as
#9941
- Backport #11305: remove duplicate `homepage` entries and let rustdoc
infer the targets of five `arrow-avro` intra-doc links.
- Backport #10433: stop asserting on the unstable `TryFromIntError`
message in the `arrow-schema` tests.
- Backport #9888: support `ListView`, `BinaryView` and `RunEndEncoded`
in the integration test JSON parser.

# Are these changes tested?

Yes by CI

# Are there any user-facing changes?

No.

---------

Signed-off-by: Jiawei Zhao <Phoenix500526@163.com>
Co-authored-by: Aditya Mishra <bit2swaz@gmail.com>
Co-authored-by: Dewey Dunnington <dewey@wherobots.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Jeffrey Vo <jeffrey.vo.australia@gmail.com>
Co-authored-by: Phoenix <Phoenix500526@163.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@alamb

alamb commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

run benchmark arrow_reader metadata row_group_index_reader

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: arrow_reader

Sharding factor: 1 (1 workers).

Comparing codex/parquet58-thrift-security (43b045e) to 913bab2 (merge-base) diff

Run configuration
run benchmark arrow_reader
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: metadata

Sharding factor: 1 (1 workers).

Comparing codex/parquet58-thrift-security (43b045e) to 913bab2 (merge-base) diff

Run configuration
run benchmark metadata
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: row_group_index_reader

Sharding factor: 1 (1 workers).

Comparing codex/parquet58-thrift-security (43b045e) to 913bab2 (merge-base) diff

Run configuration
run benchmark row_group_index_reader
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@alamb

alamb commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

FWIW thrift is only used in this version for the legacy format crate I think -- we removed it in later releases -- so I don't think this change will impact any users directly as the thrift crate's code is not used to deserialize the metadata

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: row_group_index_reader

Comparing codex/parquet58-thrift-security (43b045e) to 913bab2 (merge-base) diff

Run configuration
run benchmark row_group_index_reader
shards: 1
Details
group                                              base                                   changed
-----                                              ----                                   -------
row_group_index_multiple/num_row_groups/10         1.00     20.1±0.02ms        ? ?/sec    1.00     20.0±0.02ms        ? ?/sec
row_group_index_multiple/num_row_groups/2          1.00      4.0±0.01ms        ? ?/sec    1.00      4.0±0.01ms        ? ?/sec
row_group_index_multiple/num_row_groups/20         1.00     40.3±0.04ms        ? ?/sec    1.00     40.3±0.07ms        ? ?/sec
row_group_index_multiple/num_row_groups/5          1.01     10.1±0.01ms        ? ?/sec    1.00     10.0±0.01ms        ? ?/sec
row_group_index_single/single_row_group/100000     1.00   1808.6±2.60µs        ? ?/sec    1.00   1814.7±2.33µs        ? ?/sec
row_group_index_single/single_row_group/1000000    1.00     16.5±0.01ms        ? ?/sec    1.00     16.4±0.01ms        ? ?/sec
row_group_index_single/single_row_group/500000     1.00      8.4±0.01ms        ? ?/sec    1.00      8.3±0.01ms        ? ?/sec
row_group_index_single/single_row_group/5000000    1.00     81.5±0.07ms        ? ?/sec    1.00     81.4±0.30ms        ? ?/sec

Per-runner information
row_group_index_reader — shard 1/1

Node: gk3-benchmark-cluster-nap-q6wpalag-bfe0cb07-gks8

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

uname:

Linux bench-c6337525235-3748-8prgz 6.12.94+ #1 SMP Fri Aug 21 08:00:16 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench row_group_index_reader
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Resource Usage

base (merge-base)

Metric Value
Wall time 90.0s
Peak memory 167.5 MiB
Avg memory 63.7 MiB
CPU user 84.7s
CPU sys 0.2s
Peak spill 0 B

branch

Metric Value
Wall time 90.0s
Peak memory 183.6 MiB
Avg memory 66.3 MiB
CPU user 83.9s
CPU sys 0.2s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: metadata

Comparing codex/parquet58-thrift-security (43b045e) to 913bab2 (merge-base) diff

Run configuration
run benchmark metadata
shards: 1
Details
group                                            base                                   changed
-----                                            ----                                   -------
decode metadata (wide) with schema               1.00     26.1±0.56ms        ? ?/sec    1.00     26.0±0.87ms        ? ?/sec
decode metadata (wide) with skip PES             1.04     25.6±0.93ms        ? ?/sec    1.00     24.6±0.90ms        ? ?/sec
decode metadata (wide) with skip all stats       1.04     28.0±0.46ms        ? ?/sec    1.00     27.0±0.49ms        ? ?/sec
decode metadata (wide) with skip column stats    1.03     26.9±0.38ms        ? ?/sec    1.00     26.2±0.38ms        ? ?/sec
decode metadata (wide) with skip size stats      1.02     29.4±0.75ms        ? ?/sec    1.00     28.7±1.29ms        ? ?/sec
decode metadata (wide) with stats mask           1.00     25.4±0.70ms        ? ?/sec    1.00     25.3±1.21ms        ? ?/sec
decode metadata with schema                      1.03      4.1±0.02µs        ? ?/sec    1.00      3.9±0.01µs        ? ?/sec
decode metadata with skip PES                    1.01      6.8±0.01µs        ? ?/sec    1.00      6.7±0.05µs        ? ?/sec
decode metadata with skip column stats           1.00      6.6±0.06µs        ? ?/sec    1.00      6.6±0.08µs        ? ?/sec
decode metadata with stats mask                  1.00      6.7±0.04µs        ? ?/sec    1.00      6.7±0.05µs        ? ?/sec
decode parquet metadata                          1.01      7.0±0.01µs        ? ?/sec    1.00      6.9±0.02µs        ? ?/sec
decode parquet metadata (wide)                   1.01     28.5±0.79ms        ? ?/sec    1.00     28.3±0.72ms        ? ?/sec
decode parquet metadata w/ size stats (wide)     1.02     34.4±0.64ms        ? ?/sec    1.00     33.7±0.88ms        ? ?/sec
open(default)                                    1.00      7.5±0.01µs        ? ?/sec    1.00      7.5±0.03µs        ? ?/sec
open(page index)                                 1.01    108.7±0.09µs        ? ?/sec    1.00    107.8±0.38µs        ? ?/sec

Per-runner information
metadata — shard 1/1

Node: gk3-benchmark-cluster-nap-q6wpalag-5c6124f8-g8bf

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

uname:

Linux bench-c6337525235-3747-nvprq 6.12.94+ #1 SMP Fri Aug 21 08:00:16 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench metadata
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Resource Usage

base (merge-base)

Metric Value
Wall time 145.0s
Peak memory 89.4 MiB
Avg memory 41.4 MiB
CPU user 139.9s
CPU sys 0.1s
Peak spill 0 B

branch

Metric Value
Wall time 140.0s
Peak memory 89.4 MiB
Avg memory 41.4 MiB
CPU user 136.0s
CPU sys 0.1s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: arrow_reader

Comparing codex/parquet58-thrift-security (43b045e) to 913bab2 (merge-base) diff

Run configuration
run benchmark arrow_reader
shards: 1
Details
group                                                                                                      base                                   changed
-----                                                                                                      ----                                   -------
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, mandatory, no NULLs                           1.00    835.7±9.80µs        ? ?/sec    1.00    835.2±9.57µs        ? ?/sec
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, optional, half NULLs                          1.00    944.2±4.39µs        ? ?/sec    1.00    943.9±4.51µs        ? ?/sec
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, optional, no NULLs                            1.00    841.2±9.77µs        ? ?/sec    1.00    839.8±9.28µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, mandatory, no NULLs                                     1.00    275.9±0.15µs        ? ?/sec    1.03    283.7±0.19µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, optional, half NULLs                                    1.00    384.2±0.57µs        ? ?/sec    1.01    386.3±0.68µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, optional, no NULLs                                      1.00    279.4±0.15µs        ? ?/sec    1.03    287.6±0.20µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, mandatory, no NULLs                                          1.01    415.9±7.54µs        ? ?/sec    1.00    411.1±6.41µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, optional, half NULLs                                         1.00    465.2±4.49µs        ? ?/sec    1.00    463.3±3.17µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, optional, no NULLs                                           1.01    419.7±7.55µs        ? ?/sec    1.00    415.8±6.38µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, mandatory, no NULLs                                 1.00     80.0±0.06µs        ? ?/sec    1.00     79.9±0.06µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, optional, half NULLs                                1.00    108.3±0.09µs        ? ?/sec    1.00    108.3±0.08µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, optional, no NULLs                                  1.00     83.5±0.05µs        ? ?/sec    1.00     83.5±0.06µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, mandatory, no NULLs                                      1.00    146.7±0.68µs        ? ?/sec    1.03    150.9±1.08µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, mandatory, no NULLs, short string                        1.00    142.1±0.59µs        ? ?/sec    1.02    145.4±2.88µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, optional, half NULLs                                     1.00    146.6±0.67µs        ? ?/sec    1.02    149.5±0.92µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, optional, no NULLs                                       1.00    153.3±1.34µs        ? ?/sec    1.09    166.6±7.25µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs     1.00    963.4±0.93µs        ? ?/sec    1.00    967.2±4.21µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, optional, half NULLs    1.00    667.8±0.45µs        ? ?/sec    1.01    672.0±2.52µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, optional, no NULLs      1.05   1020.9±7.11µs        ? ?/sec    1.00    968.8±1.15µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, mandatory, no NULLs                 1.00    185.7±0.28µs        ? ?/sec    1.00    185.2±0.39µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, optional, half NULLs                1.00    289.8±0.36µs        ? ?/sec    1.00    290.6±0.51µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, optional, no NULLs                  1.01    191.0±0.23µs        ? ?/sec    1.00    189.6±0.35µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, mandatory, no NULLs        1.00    126.8±0.24µs        ? ?/sec    1.00    127.0±0.29µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, optional, half NULLs       1.01    182.2±0.18µs        ? ?/sec    1.00    181.3±0.19µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, optional, no NULLs         1.00    131.2±2.13µs        ? ?/sec    1.03    134.7±1.78µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, mandatory, no NULLs                    1.00     58.9±0.04µs        ? ?/sec    1.00     58.9±0.04µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, optional, half NULLs                   1.00    146.4±0.10µs        ? ?/sec    1.00    146.2±0.11µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, optional, no NULLs                     1.00     62.9±0.03µs        ? ?/sec    1.00     63.1±0.05µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, mandatory, no NULLs                    1.00    802.0±0.64µs        ? ?/sec    1.00    801.2±0.86µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, optional, half NULLs                   1.00    509.8±0.35µs        ? ?/sec    1.00    509.1±0.54µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, optional, no NULLs                     1.00    805.9±0.83µs        ? ?/sec    1.00    806.5±0.82µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, mandatory, no NULLs                                1.03     23.3±0.07µs        ? ?/sec    1.00     22.7±0.08µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, optional, half NULLs                               1.00    129.0±0.14µs        ? ?/sec    1.00    129.3±0.20µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, optional, no NULLs                                 1.01     27.8±0.04µs        ? ?/sec    1.00     27.5±0.07µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, mandatory, no NULLs                     1.00     73.5±0.20µs        ? ?/sec    1.01     74.4±0.17µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, optional, half NULLs                    1.01    129.0±0.25µs        ? ?/sec    1.00    128.0±0.21µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, optional, no NULLs                      1.00     76.4±0.21µs        ? ?/sec    1.00     76.3±0.16µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, mandatory, no NULLs                                 1.00      5.3±0.01µs        ? ?/sec    1.02      5.4±0.07µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, optional, half NULLs                                1.01     93.3±0.08µs        ? ?/sec    1.00     92.6±0.13µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, optional, no NULLs                                  1.00      8.5±0.01µs        ? ?/sec    1.03      8.8±0.05µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, mandatory, no NULLs                     1.00    145.6±0.35µs        ? ?/sec    1.01    147.7±0.33µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, optional, half NULLs                    1.00    197.6±0.25µs        ? ?/sec    1.00    197.5±0.30µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, optional, no NULLs                      1.00    148.9±0.36µs        ? ?/sec    1.00    149.5±0.56µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, mandatory, no NULLs                                 1.00      7.4±0.01µs        ? ?/sec    1.01      7.5±0.07µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, optional, half NULLs                                1.00    127.2±0.14µs        ? ?/sec    1.00    127.3±0.13µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, optional, no NULLs                                  1.00     10.8±0.01µs        ? ?/sec    1.01     10.9±0.08µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, mandatory, no NULLs                     1.03   310.5±18.97µs        ? ?/sec    1.00    302.2±0.96µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, optional, half NULLs                    1.00    265.3±0.55µs        ? ?/sec    1.00    265.7±0.56µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, optional, no NULLs                      1.01    302.9±0.88µs        ? ?/sec    1.00    299.6±1.39µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, mandatory, no NULLs                                 1.01     12.3±0.01µs        ? ?/sec    1.00     12.2±0.07µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, optional, half NULLs                                1.00    122.3±0.10µs        ? ?/sec    1.00    122.5±0.14µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, optional, no NULLs                                  1.01     15.9±0.02µs        ? ?/sec    1.00     15.7±0.05µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed increasing value                                    1.00     88.1±0.29µs        ? ?/sec    1.01     88.7±0.29µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed single value                                        1.00     78.7±0.11µs        ? ?/sec    1.01     79.3±0.11µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip increasing value                               1.00     50.9±0.21µs        ? ?/sec    1.01     51.4±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip single value                                   1.00     45.8±0.11µs        ? ?/sec    1.01     46.1±0.13µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip stepped increasing value                       1.01     75.6±0.07µs        ? ?/sec    1.00     74.8±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, mandatory, no NULLs                           1.00     88.9±0.14µs        ? ?/sec    1.01     89.6±0.08µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, optional, half NULLs                          1.01     89.0±0.08µs        ? ?/sec    1.00     88.2±0.12µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, optional, no NULLs                            1.00     90.9±0.12µs        ? ?/sec    1.01     91.5±0.09µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed stepped increasing value                            1.00    108.1±0.15µs        ? ?/sec    1.00    107.9±0.15µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, mandatory, no NULLs                                1.00    125.7±0.19µs        ? ?/sec    1.01    126.8±0.26µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, optional, half NULLs                               1.01    146.8±0.18µs        ? ?/sec    1.00    146.0±0.21µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, optional, no NULLs                                 1.00    129.5±0.23µs        ? ?/sec    1.01    130.4±0.18µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs                    1.00     54.1±0.05µs        ? ?/sec    1.00     54.2±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, optional, half NULLs                   1.01    109.2±0.14µs        ? ?/sec    1.00    108.3±0.24µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, optional, no NULLs                     1.00     57.9±0.05µs        ? ?/sec    1.00     57.6±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, mandatory, no NULLs                           1.00     83.9±0.11µs        ? ?/sec    1.00     84.0±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, optional, half NULLs                          1.01    127.4±0.12µs        ? ?/sec    1.00    125.6±0.21µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, optional, no NULLs                            1.00     87.7±0.07µs        ? ?/sec    1.00     87.7±0.08µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, mandatory, no NULLs                                1.00     47.0±0.05µs        ? ?/sec    1.03     48.5±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, optional, half NULLs                               1.02    106.7±0.10µs        ? ?/sec    1.00    105.0±0.14µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, optional, no NULLs                                 1.01     50.7±0.16µs        ? ?/sec    1.00     50.2±0.09µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed increasing value                                    1.00     78.1±0.18µs        ? ?/sec    1.00     77.8±0.19µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed single value                                        1.02     75.2±0.42µs        ? ?/sec    1.00     74.0±0.20µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip increasing value                               1.01     43.6±0.04µs        ? ?/sec    1.00     43.3±0.12µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip single value                                   1.02     42.0±0.15µs        ? ?/sec    1.00     41.2±0.15µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip stepped increasing value                       1.01     68.1±0.05µs        ? ?/sec    1.00     67.6±0.04µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, mandatory, no NULLs                           1.00     79.4±0.13µs        ? ?/sec    1.00     79.3±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, optional, half NULLs                          1.02     84.5±0.10µs        ? ?/sec    1.00     83.1±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, optional, no NULLs                            1.00     81.3±0.07µs        ? ?/sec    1.00     81.4±0.07µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed stepped increasing value                            1.01    100.6±0.11µs        ? ?/sec    1.00     99.8±0.16µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, mandatory, no NULLs                                1.00    114.5±0.12µs        ? ?/sec    1.00    114.7±0.14µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, optional, half NULLs                               1.01    141.4±0.16µs        ? ?/sec    1.00    140.5±0.19µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, optional, no NULLs                                 1.00    118.4±0.09µs        ? ?/sec    1.00    118.3±0.15µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs                    1.00     82.9±0.07µs        ? ?/sec    1.01     83.4±0.11µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, optional, half NULLs                   1.01    125.2±0.15µs        ? ?/sec    1.00    124.2±0.21µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, optional, no NULLs                     1.01     88.0±0.08µs        ? ?/sec    1.00     87.4±0.09µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, mandatory, no NULLs                           1.00     86.5±0.12µs        ? ?/sec    1.00     86.5±0.08µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, optional, half NULLs                          1.01    128.8±0.12µs        ? ?/sec    1.00    127.9±0.21µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, optional, no NULLs                            1.00     90.2±0.11µs        ? ?/sec    1.00     90.1±0.09µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, mandatory, no NULLs                                1.00     54.1±0.06µs        ? ?/sec    1.02     55.2±0.47µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, optional, half NULLs                               1.01    110.4±0.14µs        ? ?/sec    1.00    109.1±0.20µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, optional, no NULLs                                 1.01     58.5±0.04µs        ? ?/sec    1.00     58.1±0.10µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed increasing value                                               1.00     54.6±0.33µs        ? ?/sec    1.00     54.6±0.42µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed single value                                                   1.00     45.2±0.16µs        ? ?/sec    1.01     45.8±0.15µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip increasing value                                          1.00     34.0±0.22µs        ? ?/sec    1.00     33.9±0.26µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip single value                                              1.00     28.7±0.12µs        ? ?/sec    1.01     29.1±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip stepped increasing value                                  1.00     57.6±0.08µs        ? ?/sec    1.00     57.7±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, mandatory, no NULLs                                      1.00     71.1±0.21µs        ? ?/sec    1.01     71.7±0.17µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, optional, half NULLs                                     1.00     71.1±0.12µs        ? ?/sec    1.01     72.1±0.12µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, optional, no NULLs                                       1.00     72.9±0.20µs        ? ?/sec    1.01     73.7±0.16µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed stepped increasing value                                       1.00     75.1±0.20µs        ? ?/sec    1.00     74.7±0.20µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, mandatory, no NULLs                                           1.00     91.8±0.54µs        ? ?/sec    1.00     92.1±0.55µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, optional, half NULLs                                          1.00    112.2±0.31µs        ? ?/sec    1.00    112.6±0.29µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, optional, no NULLs                                            1.00     95.3±0.55µs        ? ?/sec    1.01     95.9±0.54µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     20.8±0.03µs        ? ?/sec    1.02     21.2±0.03µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, optional, half NULLs                              1.01     75.7±0.19µs        ? ?/sec    1.00     74.9±0.14µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, optional, no NULLs                                1.00     24.6±0.04µs        ? ?/sec    1.00     24.5±0.04µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, mandatory, no NULLs                                      1.00     51.0±0.03µs        ? ?/sec    1.00     50.9±0.06µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, optional, half NULLs                                     1.01     93.4±0.13µs        ? ?/sec    1.00     92.7±0.27µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, optional, no NULLs                                       1.01     54.6±0.04µs        ? ?/sec    1.00     54.3±0.05µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, mandatory, no NULLs                                           1.00     13.5±0.02µs        ? ?/sec    1.04     14.0±0.06µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, optional, half NULLs                                          1.02     73.4±0.14µs        ? ?/sec    1.00     72.1±0.11µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, optional, no NULLs                                            1.00     17.3±0.02µs        ? ?/sec    1.00     17.4±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed increasing value                                               1.02     52.6±0.72µs        ? ?/sec    1.00     51.7±0.28µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed single value                                                   1.01     44.0±0.16µs        ? ?/sec    1.00     43.7±0.23µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip increasing value                                          1.02     32.8±0.23µs        ? ?/sec    1.00     32.3±0.14µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip single value                                              1.00     28.0±0.08µs        ? ?/sec    1.00     28.0±0.07µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip stepped increasing value                                  1.01     56.2±0.06µs        ? ?/sec    1.00     55.8±0.05µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, mandatory, no NULLs                                      1.00     70.1±0.17µs        ? ?/sec    1.00     70.2±0.12µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, optional, half NULLs                                     1.00     70.1±0.11µs        ? ?/sec    1.00     69.8±0.12µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, optional, no NULLs                                       1.00     72.4±0.28µs        ? ?/sec    1.00     72.5±0.08µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed stepped increasing value                                       1.01     71.7±0.12µs        ? ?/sec    1.00     70.8±0.14µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, mandatory, no NULLs                                           1.00     88.9±0.15µs        ? ?/sec    1.01     89.6±0.16µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, optional, half NULLs                                          1.01    109.9±0.17µs        ? ?/sec    1.00    108.9±0.19µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, optional, no NULLs                                            1.00     92.8±0.13µs        ? ?/sec    1.02     94.2±0.15µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     17.3±0.02µs        ? ?/sec    1.01     17.5±0.03µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, optional, half NULLs                              1.00     72.3±0.13µs        ? ?/sec    1.00     72.2±0.20µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, optional, no NULLs                                1.01     20.9±0.03µs        ? ?/sec    1.00     20.8±0.04µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, mandatory, no NULLs                                      1.00     47.2±0.04µs        ? ?/sec    1.00     47.2±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, optional, half NULLs                                     1.00     89.9±0.12µs        ? ?/sec    1.00     89.4±0.22µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, optional, no NULLs                                       1.00     51.1±0.04µs        ? ?/sec    1.00     51.1±0.07µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, mandatory, no NULLs                                           1.00      9.9±0.02µs        ? ?/sec    1.01      9.9±0.02µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, optional, half NULLs                                          1.01     69.6±0.13µs        ? ?/sec    1.00     68.8±0.14µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, optional, no NULLs                                            1.00     13.5±0.03µs        ? ?/sec    1.00     13.5±0.03µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed increasing value                                               1.00     41.0±0.08µs        ? ?/sec    1.01     41.5±0.14µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed single value                                                   1.01     38.2±0.27µs        ? ?/sec    1.00     37.9±0.21µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip increasing value                                          1.00     24.4±0.04µs        ? ?/sec    1.01     24.6±0.07µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip single value                                              1.00     22.7±0.11µs        ? ?/sec    1.01     22.8±0.14µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip stepped increasing value                                  1.01     49.1±0.04µs        ? ?/sec    1.00     48.7±0.04µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, mandatory, no NULLs                                      1.00     60.3±0.04µs        ? ?/sec    1.00     60.5±0.05µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, optional, half NULLs                                     1.01     65.7±0.07µs        ? ?/sec    1.00     64.8±0.15µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, optional, no NULLs                                       1.00     62.2±0.05µs        ? ?/sec    1.01     62.8±0.17µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed stepped increasing value                                       1.00     63.3±0.09µs        ? ?/sec    1.00     63.2±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, mandatory, no NULLs                                           1.00     77.3±0.10µs        ? ?/sec    1.00     77.5±0.13µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, optional, half NULLs                                          1.00    104.1±0.12µs        ? ?/sec    1.00    103.9±0.14µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, optional, no NULLs                                            1.00     81.0±0.10µs        ? ?/sec    1.01     81.7±0.14µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     46.0±0.04µs        ? ?/sec    1.01     46.5±0.04µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, optional, half NULLs                              1.01     87.9±0.14µs        ? ?/sec    1.00     87.1±0.15µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, optional, no NULLs                                1.00     49.9±0.06µs        ? ?/sec    1.02     51.0±0.04µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, mandatory, no NULLs                                      1.00     49.5±0.08µs        ? ?/sec    1.00     49.2±0.14µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, optional, half NULLs                                     1.01     91.5±0.14µs        ? ?/sec    1.00     90.3±0.16µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, optional, no NULLs                                       1.00     53.1±0.05µs        ? ?/sec    1.00     53.0±0.12µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, mandatory, no NULLs                                           1.00     16.5±0.03µs        ? ?/sec    1.01     16.7±0.03µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, optional, half NULLs                                          1.00     73.4±0.10µs        ? ?/sec    1.00     73.2±0.17µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, optional, no NULLs                                            1.00     20.4±0.07µs        ? ?/sec    1.00     20.4±0.04µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed increasing value                                                1.00     55.3±0.58µs        ? ?/sec    1.00     55.5±0.42µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed single value                                                    1.00     45.1±0.15µs        ? ?/sec    1.05     47.4±0.21µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip increasing value                                           1.00     34.2±0.23µs        ? ?/sec    1.01     34.4±0.20µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip single value                                               1.00     28.8±0.09µs        ? ?/sec    1.04     29.9±0.15µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip stepped increasing value                                   1.01     58.2±0.07µs        ? ?/sec    1.00     57.7±0.06µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, mandatory, no NULLs                                       1.00     71.5±0.15µs        ? ?/sec    1.00     71.7±0.08µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, optional, half NULLs                                      1.00     71.2±0.16µs        ? ?/sec    1.00     71.1±0.10µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, optional, no NULLs                                        1.00     73.6±0.19µs        ? ?/sec    1.00     73.8±0.06µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed stepped increasing value                                        1.01     75.2±0.15µs        ? ?/sec    1.00     74.6±0.13µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, mandatory, no NULLs                                            1.00     92.4±0.57µs        ? ?/sec    1.00     92.0±0.38µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, optional, half NULLs                                           1.01    112.5±0.36µs        ? ?/sec    1.00    111.4±0.23µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, optional, no NULLs                                             1.00     96.0±0.55µs        ? ?/sec    1.00     95.7±0.28µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, mandatory, no NULLs                                1.00     20.7±0.19µs        ? ?/sec    1.01     21.0±0.04µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, optional, half NULLs                               1.01     75.4±0.10µs        ? ?/sec    1.00     74.7±0.13µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, optional, no NULLs                                 1.00     24.2±0.04µs        ? ?/sec    1.01     24.6±0.10µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, mandatory, no NULLs                                       1.00     50.3±0.05µs        ? ?/sec    1.00     50.5±0.07µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, optional, half NULLs                                      1.01     93.7±0.10µs        ? ?/sec    1.00     92.5±0.20µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, optional, no NULLs                                        1.00     54.4±0.06µs        ? ?/sec    1.00     54.4±0.05µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, mandatory, no NULLs                                            1.00     13.4±0.03µs        ? ?/sec    1.01     13.5±0.05µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, optional, half NULLs                                           1.01     73.2±0.13µs        ? ?/sec    1.00     72.3±0.23µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, optional, no NULLs                                             1.00     17.1±0.03µs        ? ?/sec    1.01     17.3±0.06µs        ? ?/sec
arrow_array_reader/ListArray/plain encoded optional strings half NULLs                                     1.00      3.9±0.02ms        ? ?/sec    1.04      4.0±0.02ms        ? ?/sec
arrow_array_reader/ListArray/plain encoded optional strings no NULLs                                       1.00      7.1±0.02ms        ? ?/sec    1.06      7.5±0.06ms        ? ?/sec
arrow_array_reader/StringArray/const delta byte array encoded, mandatory, no NULLs                         1.00    529.2±1.94µs        ? ?/sec    1.01    532.3±1.76µs        ? ?/sec
arrow_array_reader/StringArray/const delta length byte array encoded, mandatory, no NULLs                  1.03    221.9±3.68µs        ? ?/sec    1.00    215.2±0.74µs        ? ?/sec
arrow_array_reader/StringArray/const prefix delta byte array encoded, mandatory, no NULLs                  1.00   767.2±41.52µs        ? ?/sec    1.00   764.1±41.39µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, mandatory, no NULLs                                     1.00    269.9±0.25µs        ? ?/sec    1.02    276.4±0.19µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, optional, half NULLs                                    1.01    383.2±0.61µs        ? ?/sec    1.00    381.2±0.42µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, optional, no NULLs                                      1.00    279.6±0.14µs        ? ?/sec    1.00    279.8±0.23µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, mandatory, no NULLs                                          1.01    459.3±6.86µs        ? ?/sec    1.00    453.0±5.65µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, optional, half NULLs                                         1.00    491.8±4.65µs        ? ?/sec    1.00    489.7±4.00µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, optional, no NULLs                                           1.01    463.5±7.00µs        ? ?/sec    1.00    458.6±5.88µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, mandatory, no NULLs                                1.00    245.8±0.33µs        ? ?/sec    1.01    247.7±0.94µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, optional, half NULLs                               1.00    270.2±0.30µs        ? ?/sec    1.00    271.5±0.38µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, optional, no NULLs                                 1.00    249.6±0.33µs        ? ?/sec    1.01    251.1±0.36µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, mandatory, no NULLs                                 1.00     79.9±0.05µs        ? ?/sec    1.00     79.9±0.05µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, optional, half NULLs                                1.00    108.6±0.13µs        ? ?/sec    1.00    108.6±0.10µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, optional, no NULLs                                  1.00     83.6±0.04µs        ? ?/sec    1.00     83.6±0.08µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, mandatory, no NULLs                                      1.00    220.5±0.58µs        ? ?/sec    1.01    221.9±0.84µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, optional, half NULLs                                     1.00    182.6±0.43µs        ? ?/sec    1.00    182.4±0.19µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, optional, no NULLs                                       1.00    230.2±0.58µs        ? ?/sec    1.00    230.7±1.15µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed increasing value                                              1.00     54.5±0.37µs        ? ?/sec    1.00     54.3±0.35µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed single value                                                  1.00     45.2±0.13µs        ? ?/sec    1.01     45.4±0.15µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip increasing value                                         1.00     33.9±0.24µs        ? ?/sec    1.00     33.9±0.22µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip single value                                             1.00     28.6±0.11µs        ? ?/sec    1.01     28.9±0.09µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip stepped increasing value                                 1.00     57.7±0.06µs        ? ?/sec    1.00     57.8±0.08µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, mandatory, no NULLs                                     1.00     75.2±0.15µs        ? ?/sec    1.02     76.4±0.07µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, optional, half NULLs                                    1.01     74.1±0.36µs        ? ?/sec    1.00     73.4±0.12µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, optional, no NULLs                                      1.00     77.5±0.10µs        ? ?/sec    1.01     78.3±0.06µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed stepped increasing value                                      1.00     74.8±0.19µs        ? ?/sec    1.00     74.6±0.19µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, mandatory, no NULLs                                          1.00     97.5±0.17µs        ? ?/sec    1.01     98.0±0.11µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, optional, half NULLs                                         1.01    116.1±0.19µs        ? ?/sec    1.00    114.8±0.19µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, optional, no NULLs                                           1.00    101.1±0.16µs        ? ?/sec    1.01    101.7±0.12µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     20.8±0.02µs        ? ?/sec    1.00     20.9±0.03µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, optional, half NULLs                             1.02     75.7±0.11µs        ? ?/sec    1.00     74.5±0.15µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, optional, no NULLs                               1.00     24.3±0.02µs        ? ?/sec    1.01     24.5±0.05µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, mandatory, no NULLs                                     1.00     50.7±0.05µs        ? ?/sec    1.00     50.8±0.04µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, optional, half NULLs                                    1.02     94.2±0.13µs        ? ?/sec    1.00     92.8±0.16µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, optional, no NULLs                                      1.01     54.8±0.03µs        ? ?/sec    1.00     54.4±0.04µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, mandatory, no NULLs                                          1.00     13.6±0.02µs        ? ?/sec    1.03     14.0±0.05µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, optional, half NULLs                                         1.02     73.2±0.14µs        ? ?/sec    1.00     71.7±0.12µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, optional, no NULLs                                           1.00     17.3±0.02µs        ? ?/sec    1.03     17.8±0.04µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed increasing value                                              1.00     51.5±0.37µs        ? ?/sec    1.00     51.3±0.37µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed single value                                                  1.00     42.1±0.19µs        ? ?/sec    1.01     42.3±0.16µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip increasing value                                         1.00     32.1±0.22µs        ? ?/sec    1.00     32.0±0.25µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip single value                                             1.00     27.0±0.13µs        ? ?/sec    1.01     27.2±0.09µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip stepped increasing value                                 1.00     56.0±0.09µs        ? ?/sec    1.00     56.0±0.07µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, mandatory, no NULLs                                     1.00     70.3±0.23µs        ? ?/sec    1.01     70.8±0.08µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, optional, half NULLs                                    1.00     69.9±0.18µs        ? ?/sec    1.00     69.8±0.14µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, optional, no NULLs                                      1.00     72.2±0.20µs        ? ?/sec    1.01     72.7±0.08µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed stepped increasing value                                      1.01     71.8±0.21µs        ? ?/sec    1.00     71.1±0.20µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, mandatory, no NULLs                                          1.00     89.1±0.24µs        ? ?/sec    1.01     90.2±0.17µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, optional, half NULLs                                         1.00    109.5±0.25µs        ? ?/sec    1.00    109.5±0.21µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, optional, no NULLs                                           1.00     92.9±0.25µs        ? ?/sec    1.01     93.9±0.21µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     17.5±0.03µs        ? ?/sec    1.00     17.5±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, optional, half NULLs                             1.01     72.3±0.15µs        ? ?/sec    1.00     71.6±0.16µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, optional, no NULLs                               1.00     20.8±0.03µs        ? ?/sec    1.01     21.0±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, mandatory, no NULLs                                     1.00     47.6±0.03µs        ? ?/sec    1.00     47.4±0.05µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, optional, half NULLs                                    1.02     90.6±0.13µs        ? ?/sec    1.00     89.1±0.15µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, optional, no NULLs                                      1.00     51.1±0.06µs        ? ?/sec    1.00     51.1±0.09µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, mandatory, no NULLs                                          1.01     10.0±0.02µs        ? ?/sec    1.00      9.9±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, optional, half NULLs                                         1.01     69.8±0.13µs        ? ?/sec    1.00     69.0±0.13µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, optional, no NULLs                                           1.00     13.7±0.05µs        ? ?/sec    1.00     13.7±0.02µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed increasing value                                              1.00     40.9±0.13µs        ? ?/sec    1.01     41.4±0.21µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed single value                                                  1.00     37.6±0.25µs        ? ?/sec    1.00     37.6±0.24µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip increasing value                                         1.00     24.4±0.07µs        ? ?/sec    1.01     24.5±0.13µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip single value                                             1.00     22.4±0.12µs        ? ?/sec    1.01     22.7±0.15µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip stepped increasing value                                 1.01     49.2±0.06µs        ? ?/sec    1.00     48.6±0.05µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, mandatory, no NULLs                                     1.00     60.2±0.05µs        ? ?/sec    1.00     60.3±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, optional, half NULLs                                    1.01     65.3±0.10µs        ? ?/sec    1.00     64.5±0.09µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, optional, no NULLs                                      1.00     62.2±0.05µs        ? ?/sec    1.00     62.4±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed stepped increasing value                                      1.00     63.4±0.09µs        ? ?/sec    1.00     63.2±0.10µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, mandatory, no NULLs                                          1.00     77.2±0.10µs        ? ?/sec    1.01     77.6±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, optional, half NULLs                                         1.01    104.1±0.16µs        ? ?/sec    1.00    103.6±0.18µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, optional, no NULLs                                           1.00     81.0±0.10µs        ? ?/sec    1.01     81.6±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     45.6±0.03µs        ? ?/sec    1.02     46.5±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, optional, half NULLs                             1.02     89.2±0.09µs        ? ?/sec    1.00     87.1±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, optional, no NULLs                               1.00     49.6±0.07µs        ? ?/sec    1.01     50.0±0.20µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, mandatory, no NULLs                                     1.00     49.4±0.12µs        ? ?/sec    1.00     49.2±0.17µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, optional, half NULLs                                    1.01     91.4±0.11µs        ? ?/sec    1.00     90.7±0.24µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, optional, no NULLs                                      1.00     53.1±0.13µs        ? ?/sec    1.00     53.1±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, mandatory, no NULLs                                          1.00     16.7±0.03µs        ? ?/sec    1.00     16.7±0.02µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, optional, half NULLs                                         1.01     73.7±0.12µs        ? ?/sec    1.00     72.8±0.12µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, optional, no NULLs                                           1.00     19.9±0.04µs        ? ?/sec    1.01     20.2±0.03µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed increasing value                                               1.00     54.9±0.74µs        ? ?/sec    1.00     54.8±0.49µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed single value                                                   1.01     45.5±0.11µs        ? ?/sec    1.00     45.2±0.24µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip increasing value                                          1.00     34.0±0.31µs        ? ?/sec    1.00     34.1±0.22µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip single value                                              1.00     28.8±0.11µs        ? ?/sec    1.00     28.8±0.13µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip stepped increasing value                                  1.01     58.1±0.09µs        ? ?/sec    1.00     57.6±0.29µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, mandatory, no NULLs                                      1.00     74.2±0.12µs        ? ?/sec    1.01     74.6±0.25µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, optional, half NULLs                                     1.02     74.2±0.10µs        ? ?/sec    1.00     72.9±0.21µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, optional, no NULLs                                       1.00     76.4±0.09µs        ? ?/sec    1.00     76.7±0.22µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed stepped increasing value                                       1.01     75.1±0.13µs        ? ?/sec    1.00     74.5±0.18µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, mandatory, no NULLs                                           1.00     96.3±0.27µs        ? ?/sec    1.00     96.1±0.28µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, optional, half NULLs                                          1.02    116.0±0.23µs        ? ?/sec    1.00    113.8±0.39µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, optional, no NULLs                                            1.00    100.0±0.28µs        ? ?/sec    1.00     99.8±0.29µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     21.0±0.04µs        ? ?/sec    1.01     21.1±0.08µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, optional, half NULLs                              1.02     75.9±0.14µs        ? ?/sec    1.00     74.6±0.27µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, optional, no NULLs                                1.02     24.6±0.05µs        ? ?/sec    1.00     24.2±0.07µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, mandatory, no NULLs                                      1.00     50.4±0.04µs        ? ?/sec    1.01     50.8±0.21µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, optional, half NULLs                                     1.02     93.7±0.13µs        ? ?/sec    1.00     92.3±0.30µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, optional, no NULLs                                       1.00     54.3±0.05µs        ? ?/sec    1.00     54.4±0.22µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, mandatory, no NULLs                                           1.00     13.6±0.04µs        ? ?/sec    1.00     13.5±0.04µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, optional, half NULLs                                          1.00     72.7±0.14µs        ? ?/sec    1.00     72.3±0.21µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, optional, no NULLs                                            1.00     17.5±0.03µs        ? ?/sec    1.00     17.5±0.04µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, mandatory struct, optional data, half NULLs            1.01     69.5±0.14µs        ? ?/sec    1.00     68.9±0.15µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, mandatory struct, optional data, no NULLs              1.00     13.5±0.03µs        ? ?/sec    1.01     13.6±0.03µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, optional struct, optional data, half NULLs             1.00    129.7±0.12µs        ? ?/sec    1.02    131.9±0.31µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, optional struct, optional data, no NULLs               1.00     65.0±0.04µs        ? ?/sec    1.04     67.7±0.50µs        ? ?/sec

Per-runner information
arrow_reader — shard 1/1

Node: gk3-benchmark-cluster-nap-q6wpalag-9bd26331-bg42

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

uname:

Linux bench-c6337525235-3746-mn8j9 6.12.94+ #1 SMP Fri Aug 21 08:00:16 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Resource Usage

base (merge-base)

Metric Value
Wall time 2820.6s
Peak memory 73.4 MiB
Avg memory 27.7 MiB
CPU user 2815.7s
CPU sys 0.5s
Peak spill 0 B

branch

Metric Value
Wall time 2815.6s
Peak memory 73.0 MiB
Avg memory 27.6 MiB
CPU user 2811.9s
CPU sys 0.5s
Peak spill 0 B

File an issue against this benchmark runner

@alamb
alamb merged commit e1f17b4 into apache:58_maintenance Oct 22, 2026
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parquet Changes to the parquet crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants