Skip to content

Add roaring64 BSI comparison and batch value extraction#537

Open
guymolinari wants to merge 2 commits into
masterfrom
bsi-compare-bsi
Open

Add roaring64 BSI comparison and batch value extraction#537
guymolinari wants to merge 2 commits into
masterfrom
bsi-compare-bsi

Conversation

@guymolinari

@guymolinari guymolinari commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Description

Adds roaring64 BSI primitives for bitmap-native BSI-to-BSI comparison and faster batch value extraction. These APIs are aimed at avoiding row-by-row materialization in analytical engines that operate over BSI-backed columns.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Performance improvement
  • Code refactoring
  • Documentation update
  • Test improvements
  • Build/CI changes

Changes Made

What was changed?

  • Added roaring64.BSI.CompareBSI for BSI-to-BSI comparisons returning a bitmap of matching column IDs.
  • Added roaring64.BSI.GetBigValues for aligned batch value extraction.
  • Added correctness tests covering missing values, duplicates, signed values, and wider-than-64-bit BSI values.
  • Added benchmarks and benchmark notes in roaring64/BSI_BENCHMARKS.md.
  • Preserved existing APIs and behavior.

Validation

  • go test ./roaring64 -count=1
  • go vet ./roaring64
  • go test ./roaring64 -run "TestBSI64GetBigValues" -count=1
  • go test ./roaring64 -run "^$" -bench "BenchmarkBSI64GetBigValue" -benchmem -count=3

Benchmark notes are captured in roaring64/BSI_BENCHMARKS.md.

@guymolinari guymolinari changed the title Add roaring64 BSI-to-BSI comparison Add roaring64 BSI comparison and faster batch value extraction Jul 21, 2026
@guymolinari guymolinari changed the title Add roaring64 BSI comparison and faster batch value extraction Add roaring64 BSI comparison and batch value extraction Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant