Skip to content

Comments

Move bitmap list from core to storage data structures#1032

Merged
Ulimo merged 1 commit intomainfrom
bitmaplist_move
Feb 20, 2026
Merged

Move bitmap list from core to storage data structures#1032
Ulimo merged 1 commit intomainfrom
bitmaplist_move

Conversation

@Ulimo
Copy link
Contributor

@Ulimo Ulimo commented Feb 20, 2026

This allows more reusability of the code

This allows more reusability of the code
Copilot AI review requested due to automatic review settings February 20, 2026 19:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR relocates the BitmapList implementation from the Core column store utilities into the Storage data structures layer to make the bitmap functionality reusable across components, and updates references throughout Core, tests, and benchmarks accordingly.

Changes:

  • Moved BitmapList/BitmapListFactory into FlowtideDotNet.Storage.DataStructures and updated namespaces/usings across the solution.
  • Updated Storage assembly internals visibility to allow Core to access internal Storage helpers.
  • Adjusted a Core exchange target to use fully-qualified Storage types to avoid type name conflicts.

Reviewed changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/FlowtideDotNet.Storage.Tests/DataStructures/BitmapListTests.cs Updates test namespace/usings to the new Storage.DataStructures location.
tests/FlowtideDotNet.Core.Tests/ColumnStore/UnionColumnTests.cs Updates test imports to reference BitmapList from Storage.
tests/FlowtideDotNet.Benchmarks/BitmapListBenchmark.cs Updates benchmark import to new BitmapList namespace.
src/FlowtideDotNet.Storage/Properties/AssemblyInfo.cs Adds InternalsVisibleTo("FlowtideDotNet.Core") for internal Storage helpers used by Core.
src/FlowtideDotNet.Storage/DataStructures/BitmapListFactory.cs Moves/defines bitmap factory in Storage; pooling code removed.
src/FlowtideDotNet.Storage/DataStructures/BitmapList.cs Moves BitmapList into Storage data structures namespace.
src/FlowtideDotNet.Core/Operators/Exchange/PullBucketTarget.cs Uses fully-qualified Storage types for PrimitiveListKeyContainer/serializer to avoid conflicts.
src/FlowtideDotNet.Core/ColumnStore/TreeStorage/BoundarySearch.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/TreeStorage/ArrowToInternalVisitor.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/Serialization/EventBatchDeserializer.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/UnionColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/StructColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/StringColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/NullColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/MapColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/ListColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/Int64Column.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/IDataColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/DoubleColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/BoolColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/DataColumns/BinaryColumn.cs Updates imports for BitmapList from Storage.
src/FlowtideDotNet.Core/ColumnStore/ColumnFactory.cs Updates imports so factory signatures use Storage BitmapList.
src/FlowtideDotNet.Core/ColumnStore/Column.cs Updates imports and bitmap allocation to use Storage BitmapList/factory.
Comments suppressed due to low confidence (2)

src/FlowtideDotNet.Storage/DataStructures/BitmapListFactory.cs:15

  • Microsoft.Extensions.ObjectPool is no longer used in this file after removing the pooling implementation. Removing the unused using avoids CS8019 warnings and keeps the usings list accurate.
    src/FlowtideDotNet.Storage/DataStructures/BitmapListFactory.cs:21
  • XML doc comment has a spelling/grammar issue: "Implemention" should be "Implementation" (and consider rephrasing the sentence to be clearer about why this factory exists).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark

Details
Benchmark suite Current: 605932e Previous: 859330d Ratio
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.InnerJoin 262675590 ns (± 7760690.999045553) 307785430 ns (± 9897277.576973714) 0.85
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.LeftJoin 415036310 ns (± 17398491.33582181) 461337240 ns (± 19940786.10567074) 0.90
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.ProjectionAndNormalization 134465320 ns (± 10343568.602845818) 125533570 ns (± 10748358.533159066) 1.07
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.SumAggregation 128360566.66666667 ns (± 5887961.151578703) 138528520 ns (± 8580649.062577441) 0.93
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.ListAggWithMapAggregation 1845967460 ns (± 170549294.757506) 1823440280 ns (± 56615189.59691922) 1.01
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.WindowSum 318430277.7777778 ns (± 10818642.08412703) 359591925 ns (± 5946342.432057349) 0.89
FlowtideDotNet.Benchmarks.Stream.StreamBenchmark.ListAggWithStructAggregation 1254672044.4444444 ns (± 59174488.099119015) 1507727890 ns (± 61734781.22500134) 0.83

This comment was automatically generated by workflow using github-action-benchmark.

@Ulimo Ulimo merged commit 73b46bd into main Feb 20, 2026
12 checks passed
@Ulimo Ulimo deleted the bitmaplist_move branch February 20, 2026 20:20
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