Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 108 additions & 97 deletions .palantir/revapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,114 @@ acceptedBreaks:
old: "method org.apache.iceberg.orc.ORC.WriteBuilder org.apache.iceberg.orc.ORC.WriteBuilder::config(java.lang.String,\
\ java.lang.String)"
justification: "Removing deprecations for 1.2.0"
"1.10.0":
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This generated yaml changed the structure - I can try to move it back around to minimize this diff

org.apache.iceberg:iceberg-api:
- code: "java.class.defaultSerializationChanged"
old: "class org.apache.iceberg.encryption.EncryptingFileIO"
new: "class org.apache.iceberg.encryption.EncryptingFileIO"
justification: "New method for Manifest List reading"
- code: "java.method.addedToInterface"
new: "method org.apache.iceberg.UpdateSchema org.apache.iceberg.UpdateSchema::undeleteColumn(java.lang.String)"
justification: "Backwards compatible - only adds new spark functions"
org.apache.iceberg:iceberg-core:
- code: "java.class.noLongerInheritsFromClass"
old: "class org.apache.iceberg.rest.auth.OAuth2Manager"
new: "class org.apache.iceberg.rest.auth.OAuth2Manager"
justification: "Removing deprecations for 1.11.0"
- code: "java.class.nowImplementsInterface"
old: "class org.apache.iceberg.rest.auth.OAuth2Manager"
new: "class org.apache.iceberg.rest.auth.OAuth2Manager"
justification: "Removing deprecations for 1.11.0"
- code: "java.class.removed"
old: "class org.apache.iceberg.PartitionStatsUtil"
justification: "Removing deprecated code for 1.11.0"
- code: "java.class.removed"
old: "class org.apache.iceberg.rest.auth.RefreshingAuthManager"
justification: "Removing deprecations for 1.11.0"
- code: "java.field.constantValueChanged"
old: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN"
new: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN"
justification: "Plan API is table scoped and path constant value should include\
\ namespace. No actual breakage because it never worked before with incorrect\
\ value."
- code: "java.field.constantValueChanged"
old: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_SUBMIT"
new: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_SUBMIT"
justification: "Plan API is table scoped and path constant value should include\
\ namespace. No actual breakage because it never worked before with incorrect\
\ value."
- code: "java.field.constantValueChanged"
old: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_TASKS"
new: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_TASKS"
justification: "Plan API is table scoped and path constant value should include\
\ namespace. No actual breakage because it never worked before with incorrect\
\ value."
- code: "java.method.removed"
old: "method java.lang.String org.apache.iceberg.RewriteTablePathUtil::stagingPath(java.lang.String,\
\ java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.RewriteTablePathUtil.RewriteResult<org.apache.iceberg.DataFile>\
\ org.apache.iceberg.RewriteTablePathUtil::rewriteDataManifest(org.apache.iceberg.ManifestFile,\
\ org.apache.iceberg.io.OutputFile, org.apache.iceberg.io.FileIO, int, java.util.Map<java.lang.Integer,\
\ org.apache.iceberg.PartitionSpec>, java.lang.String, java.lang.String) throws\
\ java.io.IOException"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.RewriteTablePathUtil.RewriteResult<org.apache.iceberg.DeleteFile>\
\ org.apache.iceberg.RewriteTablePathUtil::rewriteDeleteManifest(org.apache.iceberg.ManifestFile,\
\ org.apache.iceberg.io.OutputFile, org.apache.iceberg.io.FileIO, int, java.util.Map<java.lang.Integer,\
\ org.apache.iceberg.PartitionSpec>, java.lang.String, java.lang.String, java.lang.String)\
\ throws java.io.IOException"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.Schema org.apache.iceberg.PartitionStatsHandler::schema(org.apache.iceberg.types.Types.StructType)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.TableMetadata org.apache.iceberg.TableMetadataParser::read(org.apache.iceberg.io.FileIO,\
\ org.apache.iceberg.io.InputFile)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.encryption.EncryptionManager org.apache.iceberg.encryption.EncryptionUtil::createEncryptionManager(java.util.Map<java.lang.String,\
\ java.lang.String>, org.apache.iceberg.encryption.KeyManagementClient)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::exchangeToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String,\
\ java.lang.String, java.lang.String, java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::exchangeToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String,\
\ java.lang.String, java.lang.String, java.lang.String, java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::fetchToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::fetchToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String,\
\ java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.visibilityReduced"
old: "method void org.apache.iceberg.PartitionStats::appendStats(org.apache.iceberg.PartitionStats)"
new: "method void org.apache.iceberg.PartitionStats::appendStats(org.apache.iceberg.PartitionStats)"
justification: "Changing deprecated code"
- code: "java.method.visibilityReduced"
old: "method void org.apache.iceberg.PartitionStats::deletedEntry(org.apache.iceberg.Snapshot)"
new: "method void org.apache.iceberg.PartitionStats::deletedEntry(org.apache.iceberg.Snapshot)"
justification: "Changing deprecated code"
- code: "java.method.visibilityReduced"
old: "method void org.apache.iceberg.PartitionStats::liveEntry(org.apache.iceberg.ContentFile<?>,\
\ org.apache.iceberg.Snapshot)"
new: "method void org.apache.iceberg.PartitionStats::liveEntry(org.apache.iceberg.ContentFile<?>,\
\ org.apache.iceberg.Snapshot)"
justification: "Changing deprecated code"
org.apache.iceberg:iceberg-data:
- code: "java.class.removed"
old: "class org.apache.iceberg.data.PartitionStatsHandler"
justification: "Removing deprecated code for 1.11.0"
"1.2.0":
org.apache.iceberg:iceberg-api:
- code: "java.field.constantValueChanged"
Expand Down Expand Up @@ -1363,103 +1471,6 @@ acceptedBreaks:
old: "method org.apache.iceberg.parquet.ParquetValueWriters.StructWriter<org.apache.iceberg.data.Record>\
\ org.apache.iceberg.data.parquet.GenericParquetWriter::createStructWriter(java.util.List<org.apache.iceberg.parquet.ParquetValueWriter<?>>)"
justification: "Removing deprecations for 1.10.0"
"1.10.0":
org.apache.iceberg:iceberg-api:
- code: "java.class.defaultSerializationChanged"
old: "class org.apache.iceberg.encryption.EncryptingFileIO"
new: "class org.apache.iceberg.encryption.EncryptingFileIO"
justification: "New method for Manifest List reading"
org.apache.iceberg:iceberg-core:
- code: "java.class.noLongerInheritsFromClass"
old: "class org.apache.iceberg.rest.auth.OAuth2Manager"
new: "class org.apache.iceberg.rest.auth.OAuth2Manager"
justification: "Removing deprecations for 1.11.0"
- code: "java.class.nowImplementsInterface"
old: "class org.apache.iceberg.rest.auth.OAuth2Manager"
new: "class org.apache.iceberg.rest.auth.OAuth2Manager"
justification: "Removing deprecations for 1.11.0"
- code: "java.class.removed"
old: "class org.apache.iceberg.rest.auth.RefreshingAuthManager"
justification: "Removing deprecations for 1.11.0"
- code: "java.field.constantValueChanged"
old: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN"
new: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN"
justification: "Plan API is table scoped and path constant value should include namespace. No actual breakage because it never worked before with incorrect value."
- code: "java.field.constantValueChanged"
old: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_SUBMIT"
new: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_SUBMIT"
justification: "Plan API is table scoped and path constant value should include namespace. No actual breakage because it never worked before with incorrect value."
- code: "java.field.constantValueChanged"
old: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_TASKS"
new: "field org.apache.iceberg.rest.ResourcePaths.V1_TABLE_SCAN_PLAN_TASKS"
justification: "Plan API is table scoped and path constant value should include namespace. No actual breakage because it never worked before with incorrect value."
- code: "java.class.removed"
old: "class org.apache.iceberg.PartitionStatsUtil"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method java.lang.String org.apache.iceberg.RewriteTablePathUtil::stagingPath(java.lang.String,\
\ java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.RewriteTablePathUtil.RewriteResult<org.apache.iceberg.DataFile>\
\ org.apache.iceberg.RewriteTablePathUtil::rewriteDataManifest(org.apache.iceberg.ManifestFile,\
\ org.apache.iceberg.io.OutputFile, org.apache.iceberg.io.FileIO, int, java.util.Map<java.lang.Integer,\
\ org.apache.iceberg.PartitionSpec>, java.lang.String, java.lang.String) throws\
\ java.io.IOException"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.RewriteTablePathUtil.RewriteResult<org.apache.iceberg.DeleteFile>\
\ org.apache.iceberg.RewriteTablePathUtil::rewriteDeleteManifest(org.apache.iceberg.ManifestFile,\
\ org.apache.iceberg.io.OutputFile, org.apache.iceberg.io.FileIO, int, java.util.Map<java.lang.Integer,\
\ org.apache.iceberg.PartitionSpec>, java.lang.String, java.lang.String, java.lang.String)\
\ throws java.io.IOException"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.Schema org.apache.iceberg.PartitionStatsHandler::schema(org.apache.iceberg.types.Types.StructType)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.TableMetadata org.apache.iceberg.TableMetadataParser::read(org.apache.iceberg.io.FileIO,\
\ org.apache.iceberg.io.InputFile)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.encryption.EncryptionManager org.apache.iceberg.encryption.EncryptionUtil::createEncryptionManager(java.util.Map<java.lang.String,\
\ java.lang.String>, org.apache.iceberg.encryption.KeyManagementClient)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::exchangeToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String,\
\ java.lang.String, java.lang.String, java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::exchangeToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String,\
\ java.lang.String, java.lang.String, java.lang.String, java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::fetchToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.removed"
old: "method org.apache.iceberg.rest.responses.OAuthTokenResponse org.apache.iceberg.rest.auth.OAuth2Util::fetchToken(org.apache.iceberg.rest.RESTClient,\
\ java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String,\
\ java.lang.String)"
justification: "Removing deprecated code for 1.11.0"
- code: "java.method.visibilityReduced"
old: "method void org.apache.iceberg.PartitionStats::liveEntry(org.apache.iceberg.ContentFile<?>, org.apache.iceberg.Snapshot)"
new: "method void org.apache.iceberg.PartitionStats::liveEntry(org.apache.iceberg.ContentFile<?>, org.apache.iceberg.Snapshot)"
justification: "Changing deprecated code"
- code: "java.method.visibilityReduced"
old: "method void org.apache.iceberg.PartitionStats::appendStats(org.apache.iceberg.PartitionStats)"
new: "method void org.apache.iceberg.PartitionStats::appendStats(org.apache.iceberg.PartitionStats)"
justification: "Changing deprecated code"
- code: "java.method.visibilityReduced"
old: "method void org.apache.iceberg.PartitionStats::deletedEntry(org.apache.iceberg.Snapshot)"
new: "method void org.apache.iceberg.PartitionStats::deletedEntry(org.apache.iceberg.Snapshot)"
justification: "Changing deprecated code"
org.apache.iceberg:iceberg-data:
- code: "java.class.removed"
old: "class org.apache.iceberg.data.PartitionStatsHandler"
justification: "Removing deprecated code for 1.11.0"
apache-iceberg-0.14.0:
org.apache.iceberg:iceberg-api:
- code: "java.class.defaultSerializationChanged"
Expand Down
14 changes: 14 additions & 0 deletions api/src/main/java/org/apache/iceberg/UpdateSchema.java
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,20 @@ default UpdateSchema updateColumnDefault(String name, Literal<?> newDefault) {
*/
UpdateSchema deleteColumn(String name);

/**
* Restore a previously deleted column from the schema history.
*
* <p>The name is used to search for the column in historical schemas. The column is restored with
* its original field ID, preserving data file compatibility. Restored columns are always
* optional.
*
* @param name name of the column to restore (supports dot notation for nested fields)
* @return this for method chaining
* @throws IllegalArgumentException if name already exists, was never deleted, or parent struct
* does not exist
*/
UpdateSchema undeleteColumn(String name);

/**
* Move a column from its current position to the start of the schema or its parent struct.
*
Expand Down
Loading