Apache Iceberg™ tables: NOT NULL ADD COLUMN requires non-null defaults on v3 tables (Pending)¶
Attention
This behavior change is in the 2026_05 bundle.
For the current status of the bundle, refer to Bundle history.
When you add a NOT NULL column to a v3 (or later) Apache Iceberg™ table using
ALTER ICEBERG TABLE, the column must include a DEFAULT
value. This enforces the Apache Iceberg™ specification,
which requires that any required field added to an existing table has non-null write and read
defaults. For more information about default values in Iceberg tables, see
Default values and
Apache Iceberg™ v3 specification support.
This behavior change applies to both Snowflake-managed and externally managed writable Iceberg tables.
- Before the change:
Adding a
NOT NULLcolumn to a v3 (or later) Iceberg table without aDEFAULTvalue was accepted. For example, the following statement succeeded even though no default was specified:This produced Iceberg metadata that didn’t comply with the v3 specification.
- After the change:
When the 2026_05 behavior change bundle is enabled in your account, adding a
NOT NULLcolumn to a v3 (or later) Iceberg table without aDEFAULTvalue returns an error. The column definition must includeDEFAULT <non-null-value>. For example:To preserve backward compatibility, update any scripts or automation that add
NOT NULLcolumns to v3 (or later) Iceberg tables to include aDEFAULTvalue.
Ref: 2351