amogh-jahagirdar commented on code in PR #10861:
URL: https://github.com/apache/iceberg/pull/10861#discussion_r1703406710
##########
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:
Curious, what's the rationale behind preventing upgrades from 1 to 3 (or
more generally skipping versions)?
I think it should technically possible to enable that upgrade safely (let me
know if I'm missing something there). Also, with this check if someone who
really wants to "skip", they would just upgrade to 2 and then right to 3 after
that since there's no real additional logic. Subsequent writes would write out
the new format's metadata after that.
For what it's worth, I don't think it'll be common so maybe this check
doesn't really matter in practice.
--
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]