rdblue commented on code in PR #10755:
URL: https://github.com/apache/iceberg/pull/10755#discussion_r1892730070
##########
core/src/main/java/org/apache/iceberg/TableMetadata.java:
##########
@@ -1102,6 +1121,22 @@ public Builder setDefaultPartitionSpec(int specId) {
return this;
}
+ private Builder removePartitionSpec(PartitionSpec spec) {
+ Preconditions.checkArgument(
+ changes.isEmpty(), "Cannot remove partition spec with other metadata
update");
+ Preconditions.checkArgument(
+ spec.specId() != defaultSpecId, "Cannot remove default partition
spec");
+ PartitionSpec toBeRemoved = specsById.remove(spec.specId());
+ Preconditions.checkArgument(
+ toBeRemoved != null && toBeRemoved.equals(spec),
+ "Cannot remove an unknown spec, spec id: %s",
+ spec.specId());
+ this.specs =
Review Comment:
In that case, is it really necessary to validate that a spec was removed and
filter the list? If it is a noop to remove an unknown spec ID, then we can
simplify the first half of this method:
```java
Preconditions.checkArgument(!specIds.contains(defaultSpecId), "Cannot
remove the default partition spec");
```
--
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]