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

Reply via email to