Gate each transaction action by supported table format versions
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 567
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 93
Description
### Is your feature request related to a problem or challenge?
Transaction actions (RowDelta, RewriteFiles, Append) each have logic dependent on the table format version - specifically, their validations. Thus, as we adopt new table format version support we need a way to avoid incorrect behaviors being applied to newer table formats.
Additionally, I'd like to avoid making adopting V3 support a "big bang" change and allow for incremental support.
### Describe the solution you'd like
I propose that we add a method to `TransactionAction` which specifies which table format versions it supports. Thus, one code change can be "update appends to support V3" merged in isolation from, for example, RewriteFiles which needs to check no new manifest delete vectors were applied during its rewrite.
### Willingness to contribute
I can contribute to this feature independently
Contributor guide
Research direction
Start by locating the TransactionAction definition and the RowDelta, RewriteFiles, and Append implementations, then inspect their format-version-dependent validations. Done means each action declares the table format versions it supports and validation is gated so V3 support can be added incrementally for individual actions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100