Restrict Apache Iceberg™ binary columns to maximum size (Preview)¶
Attention
This behavior change is in the 2026_02 bundle.
For the current status of the bundle, refer to Bundle history.
When you specify the binary data type for a column in an Apache Iceberg™ table, the column will always be mapped to the Iceberg binary data type.
- Before the change:
You can specify the
binary(L)data type for a new column in an Iceberg table, which has the associated maximum length L. Thebinary(L)data type is mapped to the Icebergfixed(L)data type instead of the Iceberg binary data type. In addition, you can specify the binary(L) data type for the keys and elements of new structured type columns, which also map to the Icebergfixed(L)data type. For CTAS statements, abinary(L)column in the source table is created with abinary(L)column in the new table.- After the change:
In Iceberg tables, you must specify the
binary datatype as either binary orbinary(67108864). This requirement applies when you create new columns or define the key or element of structured type columns. Both types are mapped to the Iceberg binary data type. For CTAS statements, abinary(L)column in the source table is created with abinary(67108864)column in the new table. This change only affects new tables and new columns in existing tables.
This behavior change is being introduced to align Snowflake’s binary columns on Iceberg tables with the Iceberg binary type in the
Apache Iceberg™ table specification, which has no maximum length. This change eliminates ambiguous binary(L) definitions that conflict with
the Iceberg specification and can cause interoperability issues with external engines. For example, before the change, you can add a new
column with a binary data type that has an associated maximum length, such as binary(10). Then an external engine could insert a value into
this column that exceeds the defined maximum length.
Ref: 2244