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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to