feat: add candidate-key pagination for selective transactions#1394
feat: add candidate-key pagination for selective transactions#1394flemzord wants to merge 1 commit into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Reviewed current draft head Findings:
GitHub reports
The PR adds
The candidate pagination tests enable the option by constructing I did not find a current correctness issue in the candidate-key pagination algorithm itself on the submitted head. The CTE shape pages materialized Checks run:
I did not run full |
Summary
Adds an experimental candidate-key pagination path for selective transaction list queries.
The new path is disabled by default and can be enabled with:
When enabled, it only applies to transaction pagination when all of these are true:
idaccount,source,destination, ormetadata[...])The generated shape materializes candidate transaction keys first, pages those keys, then joins back to fetch full transaction rows. Non-matching queries keep the existing pagination path.
Validation
go test ./...go test ./internal/storage/common ./internal/storage/ledger ./internal/storage/driver ./internal/storage ./cmdgo test -tags it ./internal/storage/ledger -run 'TestTransactionsCandidateKeyPagination|TestTransactions' -count=1go test -race -tags it ./internal/storage/ledger -run 'TestTransactionsCandidateKeyPagination|TestHasPositiveSelectiveTransactionFilter' -count=1go test -tags it ./internal/api/v1 ./internal/api/v2 ./internal/controller/ledger -run 'Transactions|ListTransactions' -count=1go test -tags it ./internal/storage/common ./internal/storage/driver ./internal/storage -count=1git diff --checkNotes
go test -tags it ./internal/storage/ledger -count=1currently fails onTestVolumesAggregate/filter_using_metadata_and_PIT. I reproduced the same failure on a clean detached worktree at the original HEAD, so it is pre-existing and unrelated to this PR.