Skip to content

ffi: create bool arrays - #8899

Open
myrrc wants to merge 4 commits into
developfrom
myrrc/ffi-bool-array
Open

ffi: create bool arrays#8899
myrrc wants to merge 4 commits into
developfrom
myrrc/ffi-bool-array

Conversation

@myrrc

@myrrc myrrc commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
  • add vx_bool_view and BoolView for view over bitpacked booleans.
  • Allow constructing from bool views for C and C++ api.
  • Allow access to BoolView for PrimitiveView instead of per-element
    access.
  • Make vx_array_data_ptr_bool return vx_bool_view.

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done ae69ed6 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

Copy link
Copy Markdown
Contributor

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +5.1%
Engines: DataFusion No clear signal (+9.7%, medium confidence) · DuckDB No clear signal (+0.7%, low confidence)
Vortex (geomean): 0.999x ➖
Parquet (geomean): 0.975x ➖
Shifts: Parquet (control) -2.5% · Median polish +0.2%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.043x ➖, 0↑ 0↓)
name PR ae69ed6 (ns) base c0d1a4e (ns) ratio (PR/base)
vortex_q00/datafusion:vortex-file-compressed 10222872 9821687 1.04
vortex_q01/datafusion:vortex-file-compressed 6523644 6238822 1.05
datafusion / parquet (0.951x ➖, 0↑ 0↓)
name PR ae69ed6 (ns) base c0d1a4e (ns) ratio (PR/base)
vortex_q00/datafusion:parquet 20445432 21655580 0.94
vortex_q01/datafusion:parquet 4664979 4870956 0.96
duckdb / vortex-file-compressed (1.006x ➖, 0↑ 0↓)
name PR ae69ed6 (ns) base c0d1a4e (ns) ratio (PR/base)
vortex_q00/duckdb:vortex-file-compressed 10484482 10494664 1.00
vortex_q01/duckdb:vortex-file-compressed 6432444 6351326 1.01
duckdb / parquet (0.999x ➖, 0↑ 0↓)
name PR ae69ed6 (ns) base c0d1a4e (ns) ratio (PR/base)
vortex_q00/duckdb:parquet 23613829 23499817 1.00
vortex_q01/duckdb:parquet 9490562 9559125 0.99

No file size changes detected.

@myrrc
myrrc force-pushed the myrrc/ffi-bool-array branch from ae69ed6 to 3cef8db Compare July 23, 2026 15:49
@myrrc
myrrc force-pushed the myrrc/ffi-bool-array branch from 3cef8db to 4b38ac2 Compare August 7, 2026 12:35
@codspeed-hq

codspeed-hq Bot commented Aug 7, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 5.03%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 1 improved benchmark
❌ 2 regressed benchmarks
✅ 2194 untouched benchmarks
⏩ 218 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime dict_canonicalize_gt_u8_avx2[16000000] 8 ms 9.9 ms -19.81%
WallTime words_gather_scalar_avx2[65536] 8.3 µs 9.4 µs -11.95%
WallTime arrow_checked_add_u32_avx2[16384] 21.4 µs 17.6 µs +21.29%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing myrrc/ffi-bool-array (f72d191) with develop (d1fe2dc)

Open in CodSpeed

Footnotes

  1. 218 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Comment thread vortex-ffi/src/array.rs Outdated
Comment thread lang/cpp/src/array.cpp Outdated
Comment thread vortex-ffi/cinclude/vortex.h
@github-actions github-actions Bot added the stale This PR is stale and will be auto-closed soon label Aug 24, 2026
@myrrc myrrc removed the stale This PR is stale and will be auto-closed soon label Aug 25, 2026
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc
myrrc force-pushed the myrrc/ffi-bool-array branch from 4b38ac2 to 2ebbb54 Compare September 11, 2026 14:43
@vortex-data vortex-data deleted a comment from github-actions Bot Sep 11, 2026
@myrrc
myrrc requested a review from 0ax1 September 11, 2026 14:43
@myrrc
myrrc marked this pull request as ready for review September 11, 2026 14:43
@myrrc myrrc added changelog/break A breaking API change lang/cpp Relates to the Vortex C++ API lang/c Relates to the Vortex C (FFI) API labels Sep 11, 2026
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc
myrrc enabled auto-merge (squash) September 11, 2026 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/break A breaking API change lang/c Relates to the Vortex C (FFI) API lang/cpp Relates to the Vortex C++ API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants