Skip to content

v4.0: blockstore: Remove support for deprecated special columns (backport of #11455)#11468

Open
mergify[bot] wants to merge 1 commit intov4.0from
mergify/bp/v4.0/pr-11455
Open

v4.0: blockstore: Remove support for deprecated special columns (backport of #11455)#11468
mergify[bot] wants to merge 1 commit intov4.0from
mergify/bp/v4.0/pr-11455

Conversation

@mergify
Copy link

@mergify mergify bot commented Mar 23, 2026

Problem

The TransactionStatus, TransactionMemos, and AddressSignatures columns use to have a u64 in their key format. That u64 was used for the cleaning (compaction) mechanism and pertained to an entry in the TransactionStatusIndex column.

When these columns were rekeyed to drop the u64, logic was added to find values with both the old and new key format in order to support the transition. But, the old format hasn't been written for years so it is reasonable to drop support for it now.

Summary of Changes

This change removes the TransactionStatusIndex column and drops support for reading the old key formats in the transaction metadata columns.

Reference PR's of interest:

v4.0 Backport

I'd like to propose backporting this change to v4.0. While not critical (ie no key bugs fixed), we already have several breaking changes in v4.0 that will disallow v4.0 from reading old blockstores. It is nice to have all of those in one version IMO.

And while the line count is high, the PR is ~90% red lines


This is an automatic backport of pull request #11455 done by Mergify.

@mergify mergify bot added the conflicts label Mar 23, 2026
@mergify mergify bot requested a review from a team as a code owner March 23, 2026 04:37
@mergify
Copy link
Author

mergify bot commented Mar 23, 2026

Cherry-pick of e43b0de has failed:

On branch mergify/bp/v4.0/pr-11455
Your branch is up to date with 'origin/v4.0'.

You are currently cherry-picking commit e43b0dee1.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   CHANGELOG.md
	modified:   ledger-tool/src/blockstore.rs
	modified:   ledger/src/blockstore/column.rs
	modified:   ledger/src/blockstore_meta.rs

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   ledger/src/blockstore.rs
	both modified:   ledger/src/blockstore/blockstore_purge.rs
	both modified:   ledger/src/blockstore_db.rs

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@steviez steviez force-pushed the mergify/bp/v4.0/pr-11455 branch from 154493d to e0c297b Compare March 23, 2026 19:57
The TransactionStatus, TransactionMemos, and AddressSignatures columns
use to have a u64 in their key format. That u64 was used for the
cleaning (compaction) mechanism and pertained to an entry in the
TransactionStatusIndex column.

When these columns were rekeyed to drop the u64, logic was added to find
values with both the old and new key format in order to support the
transition. But, the old format hasn't been written for years so it is
reasonable to drop support for it now.

This change removes the TransactionStatusIndex column and drops support
for reading the old key formats in the transaction metadata columns.

(cherry picked from commit e43b0de)
@steviez steviez force-pushed the mergify/bp/v4.0/pr-11455 branch from e0c297b to e336e31 Compare March 23, 2026 20:00
@steviez steviez requested review from AshwinSekar and cpubot March 23, 2026 20:01
@steviez
Copy link

steviez commented Mar 23, 2026

The cherry-pick wasn't clean due to a couple minor issues (v4.1 has extra AG columns, v4.1 shifted column ordering, etc), but fixup has the line counts matching exactly. I manually reviewed and diff looks to be identical. Force push after was to pickup tip of v4.0 to clear rustsec warnings

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 98.57143% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 83.0%. Comparing base (f53b246) to head (e336e31).

Additional details and impacted files
@@            Coverage Diff            @@
##             v4.0   #11468     +/-   ##
=========================================
- Coverage    83.0%    83.0%   -0.1%     
=========================================
  Files         838      838             
  Lines      317202   316643    -559     
=========================================
- Hits       263578   263019    -559     
  Misses      53624    53624             
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants