feat(partition): add :table mode for :processing_batch_size option#15
Merged
feat(partition): add :table mode for :processing_batch_size option#15
:table mode for :processing_batch_size option#15Conversation
86c9b5c to
7ce0481
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Dialyzer step skipped when PLT cache exists
- Updated the GitHub Actions condition so dialyzer runs whenever
matrix.dialyzeris true while keeping PLT creation cache-gated.
- Updated the GitHub Actions condition so dialyzer runs whenever
Or push these changes by commenting:
@cursor push 17e96eaea8
Preview (17e96eaea8)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -121,4 +121,4 @@
- name: Run dialyzer
run: mix dialyzer --format github
- if: ${{ matrix.dialyzer && steps.plt-cache.outputs.cache-hit != 'true' }}
+ if: ${{ matrix.dialyzer }}7ce0481 to
1b5f9bd
Compare
cabol
commented
Mar 7, 2026
:table mode for processing_batch_size option:table mode for :processing_batch_size option
1b5f9bd to
04ef65b
Compare
Allow passing the ETS table directly to the processor instead of reading and batching internally. When `:processing_batch_size` is set to `:table`, the processor receives the table name and has full control over how to read and process the data. The processor can optionally keep the table for later processing via `:ets.rename/2` + `:ets.give_away/3`. Also includes ASCII data flow diagrams in module docs, CI migration to GitHub Actions, and minor documentation fixes. Closes #14
04ef65b to
e0ec13f
Compare
andyleclair
approved these changes
Mar 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Allow passing the ETS table directly to the processor instead of reading and batching internally. When
:processing_batch_sizeis set to:table, the processor receives the table name and has full control over how to read and process the data. The processor can optionally keep the table for later processing via:ets.rename/2+:ets.give_away/3.Also includes ASCII data flow diagrams in module docs, CI migration to GitHub Actions, and minor documentation fixes.
Closes #14
Note
Medium Risk
Changes the core partition processing path to optionally hand off the raw ETS table to user code and alters table-lifecycle semantics (including conditional deletion), which could affect processing correctness and resource cleanup if misused. CI and tooling updates are low risk but broaden supported Elixir/OTP versions and release metadata.
Overview
Adds a new
:tablemode for:processing_batch_sizeso processors can receive the handed-off ETS table name directly (instead of batched:ets.selectresults), enabling custom read/processing strategies and optional table retention via:ets.rename/2+:ets.give_away/3.Updates
PartitionedBuffer.Partitionto support the new mode and to only delete the handed-off table if it still exists under its original name, with new tests covering both Queue and Map behaviors.Also bumps version to
0.4.0, expands option docs and module docs with ASCII flow diagrams, adds repo-specific agent/usage-rules files +usage_rulesdev dependency, loosens the minimum Elixir requirement to~> 1.17, and migrates CI from CircleCI to GitHub Actions (matrix across Elixir/OTP with caching, lint, coverage, and dialyzer).Written by Cursor Bugbot for commit e0ec13f. This will update automatically on new commits. Configure here.