Hi all, I found a schema-validation issue while testing with the RC. I think this should be fixed before we make a release to avoid creating incorrect metadata or table state.
For *table creation*, field IDs are optional [1], but an omitted ID is serialized as `0` [2]. The published example omits IDs for the `id`, `data`, and `tags` fields [3], so all three are sent to the catalog with field ID `0`. Iceberg uses field IDs as the stable identity of columns and requires them to be unique within a schema. The provider therefore submits an invalid schema, which the catalog rejects: ```text Multiple entries with same key: 0=tags and 0=id ``` For *table updates*, the provider does not validate whether a requested change is a valid Iceberg evolution. Any difference in the field list causes it to add the complete planned schema as a new schema version and make it current [4]. I was able to change an existing field from `long` to `string` and from optional to required, and the REST catalog accepted both changes. `long` to `string` is not a valid Iceberg type promotion, and tightening nullability from optional to required is not an allowed schema evolution. The expected behavior is that table creation submits a valid schema with unique field IDs. For an existing table, only changes allowed by Iceberg’s evolution rules should be committed. If a requested change is incompatible, Terraform should return a clear error without changing the catalog. There are a few other nit issues such as "polaris" still referenced in the repo and build.sh using version=1.0.0 [5] Best, Kevin Liu References: [1] https://github.com/apache/terraform-provider-iceberg/blob/ce85caf058929c3b5c0bb9327badfead290d10d0/internal/provider/table_tfschema.go#L125-L130 [2] https://github.com/apache/terraform-provider-iceberg/blob/ce85caf058929c3b5c0bb9327badfead290d10d0/internal/provider/table_schema.go#L515-L545 [3] https://github.com/apache/terraform-provider-iceberg/blob/ce85caf058929c3b5c0bb9327badfead290d10d0/examples/resources/iceberg_table/resource.tf#L27-L61 [4] https://github.com/apache/terraform-provider-iceberg/blob/ce85caf058929c3b5c0bb9327badfead290d10d0/internal/provider/resource_table.go#L440-L497 [5] https://github.com/apache/terraform-provider-iceberg/blob/3dfc6d15fdb582fd15a16479ad77095896111ab6/build.sh#L21 Thanks, On Tue, Jul 21, 2026 at 8:01 AM Rich Bowen <[email protected]> wrote: > > > On 2026/07/16 20:05:10 Matt Topol wrote: > > Hi, > > > > I would like to propose the following release candidate (RC1) of the > > Apache Iceberg Terraform provider version v0.1.0. > ... > > [ ] +1 Release this as Apache Iceberg Terraform provider v0.1.0 > > [ ] +0 > > [ ] -1 Do not release this as Apache Iceberg Terraform provider v0.1.0 > > because... > > > +1 (non-binding) > > * Verified signatures and hashes on the following files as per > https://apache.org/info/verification.html > - apache-iceberg-terraform-0.1.0.tar.gz (SHA512, GPG signature) > * Verified LICENSE and NOTICE files >
