leangjonathan commented on code in PR #10861:
URL: https://github.com/apache/iceberg/pull/10861#discussion_r1704731376
##########
core/src/main/java/org/apache/iceberg/TableMetadata.java:
##########
@@ -1015,6 +1015,11 @@ public Builder upgradeFormatVersion(int
newFormatVersion) {
"Cannot downgrade v%s table to v%s",
formatVersion,
newFormatVersion);
+ Preconditions.checkArgument(
+ newFormatVersion <= formatVersion + 1,
+ "Cannot skip format version(s) to upgrade v%s table to v%s",
+ formatVersion,
+ newFormatVersion);
Review Comment:
This sounds alright, I'll remove the assert here and find a way to perform a
serial upgrade internally.
Some implementation notes I have so far:
- Currently the internal implementation of performing a format version
upgrade is to add to the list of metadata changes a
MetadataUpdate.UpgradeFormatVersion instance.
- `MetadataUpdate.UpgradeFormatVersion` tracks the target version but not
the origin version. This may mean that multiple instances of
MetadataUpdate.UpgradeFormatVersion should be populated into the list of
metadata changes to simulate this multi-version upgrade.
- `UpdateRequirements` class which defines all upgrade requirements has no
requirements for the `MetadataUpdate.UpgradeFormatVersion` class due to the
fact that backwards compatibility has never been broken (yet).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]