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. The binary(L) data type is mapped to the Iceberg fixed(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 Iceberg fixed(L) data type. For CTAS statements, a binary(L) column in the source table is created with a binary(L) column in the new table.

After the change:

In Iceberg tables, you must specify the binary data type as either binary or binary(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, a binary(L) column in the source table is created with a binary(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