Skip to content
Lucas Lessa
Voltar para as notícias
SnowflakeGAImpacto: Médio

In-place Apache Iceberg v3 table upgrades and expression defaults

You can now upgrade Apache Iceberg tables from v2 to v3 in place without recreating them, preserving privileges and references, while enabling SQL expressions as column defaults in managed v3 tables.

O que mudou

Snowflake has announced the general availability (GA) of in-place table upgrades from Apache Iceberg v2 to v3, along with support for SQL expressions, sequences, and identity columns as column defaults in v3 tables.

Use cases

Imagine you maintain Iceberg v2 tables in production and want to adopt Iceberg v3 capabilities—such as deletion vectors, row lineage, and v3 data types—without recreating objects, reconfiguring grants, or updating downstream dependencies. The in-place upgrade enables an immediate metadata transition.

With this update you can:

  • Upgrade tables from v2 to v3 while preserving names, privileges, and downstream references.
  • Configure expression defaults such as CURRENT_DATE(), sequences, and mathematical functions on Snowflake-managed Iceberg v3 tables.

How to use

To upgrade an existing table to the Iceberg v3 specification, execute ALTER ICEBERG TABLE:

ALTER ICEBERG TABLE meu_catalogo.meu_schema.minha_tabela 
  UPGRADE TO ICEBERG VERSION 3;

What happens in this code:

  1. Snowflake converts the table metadata to Apache Iceberg v3 format in place.
  2. Table grants, access policies, and downstream references remain unchanged.
  3. If the v2 table already used expression defaults, Snowflake enables the ALLOW_V3_EXPRESSION_DEFAULTS parameter automatically.

To manually permit non-constant expression defaults (such as dynamic functions or sequences) on a managed v3 table:

ALTER ICEBERG TABLE meu_catalogo.meu_schema.minha_tabela 
  SET ALLOW_V3_EXPRESSION_DEFAULTS = TRUE;

What happens in this code:

  1. The table allows defaults that require runtime evaluation by Snowflake during insert operations.
  2. Expressions that evaluate to constants (such as PI()) are stored in Iceberg metadata, while non-constant defaults apply during Snowflake writes.

Limitations and requirements

  • Maturity: Generally Available (GA).
  • Scope: Supported on Snowflake-managed tables and externally managed tables using CATALOG_SOURCE = ICEBERG_REST (including catalog-linked databases).
  • Rollback: The upgrade is irreversible by default; however, for Snowflake-managed tables, you can restore the pre-upgrade v2 table state via Time Travel within the data retention period.
  • Expression evaluation: Non-constant defaults, sequences, and identity columns are evaluated only on Snowflake write operations and require ALLOW_V3_EXPRESSION_DEFAULTS = TRUE.

Using it in a pipeline

In lakehouse architectures, upgrade existing Silver and Gold Iceberg tables to v3 without modifying ingestion pipelines, allowing your continuous pipelines to leverage v3 deletion vectors during high-volume MERGE and UPDATE workloads.

Ver nota oficial do Snowflake

October 16, 2026: Apache Iceberg™ v3 table upgrades and expression defaults (General availability)

Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.

Relacionadas