Thanks for the heads up Kevin, I'll take a look and a stab at fixing those issues and cut a new RC when done.
--Matt On Tue, Jul 21, 2026 at 1:40 PM Kevin Liu <[email protected]> wrote: > > 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
