Skip to content

feat: BMI for bit filtering#10136

Draft
devanbenz wants to merge 10 commits into
apache:mainfrom
devanbenz:db/10098/bmi-null-bool-filter
Draft

feat: BMI for bit filtering#10136
devanbenz wants to merge 10 commits into
apache:mainfrom
devanbenz:db/10098/bmi-null-bool-filter

Conversation

@devanbenz

@devanbenz devanbenz commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

DRAFT

This commit adds the ability for bit filtering to be done using the _pext_u64 BMI.

Right now this PR is directly copying the bit_util.rs code from: https://github.com/apache/arrow-rs/pull/9848/changes#diff-f2fe5b601534125d0ba033762b62db93ae2f81c71a543b6694df33773ebfa308R939-R976 -- I've just moved the compress function in to arrow-buffer. This draft PR is mostly meant to allow for me to benchmark on my ARM machine and x86_64 machine.

I noticed while bench-marking using the BMI path (filter_bits_compress) leads to a regression when we have a very dense or a very sparse filter mask. Besides those two outliers we gain a large performance gain from BMI.

Case (kept) strategy no-BMI2 BMI2 Delta
1023/1024 (dense) lazy 1.88 us 2.16 us +15%
optimized 1.21 us 2.23 us +84%
sliced 1.84 us 2.41 us +31%
9/10 lazy ~103 us 2.98 us -97%
optimized ~85 us 3.02 us -96%
sliced ~104 us 2.92 us -97%
1/2 lazy ~39 us 1.94 us -95%
optimized ~39 us 1.97 us -95%
sliced ~40 us 2.16 us -95%
1/10 lazy 7.37 us 1.55 us -79%
optimized 5.26 us 1.53 us -71%
sliced 7.41 us 1.74 us -77%
1/1024 (sparse) lazy 0.89 us 0.75 us -16%
optimized 99 ns 103 ns +3.5%
sliced 0.89 us 0.74 us -16%

Comment thread arrow-buffer/src/util/bit_util.rs
@devanbenz

Copy link
Copy Markdown
Contributor Author

run benchmark arrow-select

@adriangbot

Copy link
Copy Markdown

Hi @devanbenz, thanks for the request (#10136 (comment)). Only whitelisted users can trigger benchmarks. Allowed users: Dandandan, Fokko, Jefffrey, Omega359, adriangb, alamb, asubiotto, brunal, buraksenn, cetra3, codephage2020, coderfender, comphead, erenavsarogullari, etseidl, friendlymatthew, gabotechs, geoffreyclaude, grtlr, haohuaijin, jonathanc-n, kevinjqliu, klion26, kosiew, kumarUjjawal, kunalsinghdadhwal, liamzwbao, mbutrovich, mkleen, mzabaluev, neilconway, rluvaton, sdf-jkl, timsaucer, xudong963, zhuqi-lucas.


File an issue against this benchmark runner

@alamb

alamb commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

run benchmark arrow-select

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4782118681-633-b8j47 6.12.68+ #1 SMP Sat May 2 07:49:07 UTC 2026 aarch64 GNU/Linux

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

Comparing db/10098/bmi-null-bool-filter (76c7efc) to 1ba5d48 (merge-base) diff
BENCH_NAME=arrow-select
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow-select
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
    record_batch
    regexp_kernels
    row_format
    row_group_index_reader
    row_selection_cursor
    row_selector
    serde
    sort_kernel
    string_dictionary_builder
    string_run_builder
    string_run_iterator
    substring_kernels
    take_kernels
    union_array
    variant_builder
    variant_kernels
    variant_validation
    view_types
    writer_overhead
    zip_kernels

File an issue against this benchmark runner

@alamb

alamb commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

run benchmark arrow_select

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4783458128-638-vs74c 6.12.68+ #1 SMP Sat May 2 07:49:07 UTC 2026 aarch64 GNU/Linux

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

Comparing db/10098/bmi-null-bool-filter (76c7efc) to 1ba5d48 (merge-base) diff
BENCH_NAME=arrow_select
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_select
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
    record_batch
    regexp_kernels
    row_format
    row_group_index_reader
    row_selection_cursor
    row_selector
    serde
    sort_kernel
    string_dictionary_builder
    string_run_builder
    string_run_iterator
    substring_kernels
    take_kernels
    union_array
    variant_builder
    variant_kernels
    variant_validation
    view_types
    writer_overhead
    zip_kernels

File an issue against this benchmark runner

@devanbenz

Copy link
Copy Markdown
Contributor Author

run benchmark arrow-select

@alamb my apologies, the bench is called filter_bits :P

@alamb

alamb commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

run benchmark filter_bits

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4792893778-664-tn2q8 6.12.68+ #1 SMP Sat May 2 07:49:07 UTC 2026 aarch64 GNU/Linux

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

Comparing db/10098/bmi-null-bool-filter (76c7efc) to 1ba5d48 (merge-base) diff
BENCH_NAME=filter_bits
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench filter_bits
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

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

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

New benchmark — branch-only results (no baseline comparison)

Details

group                                             db_10098_bmi-null-bool-filter
-----                                             -----------------------------
filter_bits (indices, kept 1/10)                  1.00     13.5±0.18µs        ? ?/sec
filter_bits (indices, kept 1/1024)                1.00   1014.5±3.55ns        ? ?/sec
filter_bits (indices, kept 1/2)                   1.00     77.3±0.43µs        ? ?/sec
filter_bits (slices, kept 1023/1024)              1.00      2.5±0.10µs        ? ?/sec
filter_bits (slices, kept 9/10)                   1.00     88.1±0.35µs        ? ?/sec
filter_bits optimized (indices, kept 1/10)        1.00     14.7±1.27µs        ? ?/sec
filter_bits optimized (indices, kept 1/1024)      1.00   225.8±12.39ns        ? ?/sec
filter_bits optimized (indices, kept 1/2)         1.00     73.9±6.47µs        ? ?/sec
filter_bits optimized (slices, kept 1023/1024)    1.00   1706.1±3.71ns        ? ?/sec
filter_bits optimized (slices, kept 9/10)         1.00     83.6±1.10µs        ? ?/sec
filter_bits sliced (indices, kept 1/10)           1.00     13.5±0.18µs        ? ?/sec
filter_bits sliced (indices, kept 1/1024)         1.00   1014.6±2.75ns        ? ?/sec
filter_bits sliced (indices, kept 1/2)            1.00     77.1±0.38µs        ? ?/sec
filter_bits sliced (slices, kept 1023/1024)       1.00      2.4±0.01µs        ? ?/sec
filter_bits sliced (slices, kept 9/10)            1.00     88.9±0.27µs        ? ?/sec

Resource Usage

branch

Metric Value
Wall time 155.0s
Peak memory 6.8 MiB
Avg memory 5.2 MiB
CPU user 148.7s
CPU sys 0.0s
Peak spill 0 B

File an issue against this benchmark runner

@devanbenz

Copy link
Copy Markdown
Contributor Author

@alamb Could you please run the benchmark again but setting RUSTFLAGS="-C target-feature=-bmi2" to disable BMI on the host device? 🙏

@alamb

This comment was marked as outdated.

@adriangbot

This comment was marked as outdated.

@alamb

alamb commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

run benchmark filter_bits

env:
RUSTFLAGS: "-C target-feature=-bmi2"

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4833873588-734-dldxz 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

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

Comparing db/10098/bmi-null-bool-filter (8e326b4) to 9f37683 (merge-base) diff
BENCH_NAME=filter_bits
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench filter_bits
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

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

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

New benchmark — branch-only results (no baseline comparison)

Details

group                                             db_10098_bmi-null-bool-filter
-----                                             -----------------------------
filter_bits (indices, kept 1/10)                  1.00     13.5±0.17µs        ? ?/sec
filter_bits (indices, kept 1/1024)                1.00   1011.4±0.74ns        ? ?/sec
filter_bits (indices, kept 1/2)                   1.00     76.8±0.32µs        ? ?/sec
filter_bits (slices, kept 1023/1024)              1.00      2.5±0.00µs        ? ?/sec
filter_bits (slices, kept 9/10)                   1.00     95.1±0.30µs        ? ?/sec
filter_bits optimized (indices, kept 1/10)        1.00     14.3±1.07µs        ? ?/sec
filter_bits optimized (indices, kept 1/1024)      1.00    220.3±9.41ns        ? ?/sec
filter_bits optimized (indices, kept 1/2)         1.00     72.2±5.38µs        ? ?/sec
filter_bits optimized (slices, kept 1023/1024)    1.00   1707.5±3.10ns        ? ?/sec
filter_bits optimized (slices, kept 9/10)         1.00     62.6±0.70µs        ? ?/sec
filter_bits sliced (indices, kept 1/10)           1.00     13.5±0.18µs        ? ?/sec
filter_bits sliced (indices, kept 1/1024)         1.00   1011.5±0.76ns        ? ?/sec
filter_bits sliced (indices, kept 1/2)            1.00     76.7±0.38µs        ? ?/sec
filter_bits sliced (slices, kept 1023/1024)       1.00      2.4±0.00µs        ? ?/sec
filter_bits sliced (slices, kept 9/10)            1.00     96.1±0.31µs        ? ?/sec

Resource Usage

branch

Metric Value
Wall time 145.0s
Peak memory 9.1 MiB
Avg memory 5.0 MiB
CPU user 141.8s
CPU sys 0.0s
Peak spill 0 B

File an issue against this benchmark runner

@devanbenz

Copy link
Copy Markdown
Contributor Author

@alamb Taking a look at the host machines. It doesn't look like the processor supports BMI2 intrinsics. So the benches are basically equal.

@devanbenz

devanbenz commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

Now that #9848 Is merged in, I'm going to merge this PR with it and move the compress BMI method in to a shared arrow package. i.e. arrow-buffer.

@github-actions github-actions Bot added the parquet Changes to the parquet crate label Jul 2, 2026
@alamb

alamb commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

nice

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 parquet Changes to the parquet crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants