Skip to main content

Snowflake 2025_07 Bundle Breaking Changes

Overview

With the Snowflake bundle release 2025_07, several breaking changes have been introduced that may impact your data products and pipelines. This guide covers two major changes:

  1. VARCHAR and BINARY default size changes
  2. AUTO parameter deprecation for date and timestamp format parameters
Breaking Changes

These changes are part of Snowflake's behavior change release bundle 2025_07. Review this guide carefully to understand the impact on your data products and ensure your pipelines continue to function correctly.


Change 1: VARCHAR and BINARY Default Size Changes

What Changed

Previous Behavior (Before 2025_07 Bundle)

When creating a table with a VARCHAR or BINARY column without specifying a size:

  • VARCHAR default size: VARCHAR(16777216) (16 MB)
  • BINARY default size: BINARY(8388608) (8 MB)

New Behavior (After 2025_07 Bundle)

The default sizes have been increased:

  • VARCHAR default size: VARCHAR(134217728) (128 MB)
  • BINARY default size: BINARY(67108864) (128 MB)

Impact on Your Data Products

Critical Issue

Once a table is created with the new default size, you cannot reduce the column size back to the previous default. Snowflake does not support reducing the byte-length of VARCHAR or BINARY columns.

If you attempt to reduce the column size, you will encounter an error similar to:

SQL compilation error: cannot change column COLUMN_NAME from type VARCHAR(134217728)
to VARCHAR(16777216) because reducing the byte-length of a varchar is not supported.

Always Explicitly Define Column Sizes

To maintain control over your data types and avoid unexpected behavior, always explicitly specify the size for VARCHAR and BINARY columns.

Using SOLE (Snowflake Object Lifecycle Engine)

When defining tables in SOLE, explicitly set the column size:

databases.template.yml
tables:
CUSTOMER_DATA:
columns:
NAME:
type: VARCHAR(16777216) # Explicitly set to previous default
EMAIL:
type: VARCHAR(16777216) # Explicitly set to previous default
PROFILE_IMAGE:
type: BINARY(8388608) # Explicitly set to previous default for BINARY

Create New Table with Desired Size

Since you cannot reduce column sizes directly, you must recreate the table. See the How to Change the Column Datatype in a Table guide for detailed steps.

Here's a summary approach:

databases.template.yml
tables:
# Original table with new default size
CUSTOMER_DATA:
columns:
NAME:
type: VARCHAR(16777216) # Specify desired size
EMAIL:
type: VARCHAR(16777216) # Specify desired size
PROFILE_IMAGE:
type: BINARY(8388608) # Specify desired size

# Backup table to preserve data during migration
CUSTOMER_DATA_BACKUP:
columns:
NAME:
type: VARCHAR(134217728) # Current size
EMAIL:
type: VARCHAR(134217728) # Current size
PROFILE_IMAGE:
type: BINARY(67108864) # Specify desired size

Change 2: AUTO Parameter No Longer Supported

What Changed

Snowflake no longer supports the AUTO option for the following date and timestamp format parameters:

  • DATE_OUTPUT_FORMAT
  • TIME_OUTPUT_FORMAT
  • CSV_TIMESTAMP_FORMAT
  • TIMESTAMP_OUTPUT_FORMAT
  • TIMESTAMP_LTZ_OUTPUT_FORMAT
  • TIMESTAMP_NTZ_OUTPUT_FORMAT
  • TIMESTAMP_TZ_OUTPUT_FORMAT

Impact on Your Data Products

If your SOLE configuration uses AUTO for any of these parameters, you will receive a warning from the SOLE compiler indicating that AUTO is no longer supported by Snowflake.

SOLE Behavior

To ensure existing pipelines do not fail, SOLE will automatically apply Snowflake's default values for these parameters when AUTO is detected. However, you should update your configuration to use explicit format values.

Replace AUTO with Explicit Format Values

Update your SOLE configuration to use explicit format strings instead of AUTO. See the examples below for reference.

Before (using AUTO):

databases.template.yml
databases:
MY_DATABASE:
parameters:
DATE_OUTPUT_FORMAT: AUTO
TIMESTAMP_OUTPUT_FORMAT: AUTO
TIMESTAMP_LTZ_OUTPUT_FORMAT: AUTO
TIME_OUTPUT_FORMAT: AUTO
CSV_TIMESTAMP_FORMAT: AUTO
TIMESTAMP_NTZ_OUTPUT_FORMAT: AUTO
TIMESTAMP_TZ_OUTPUT_FORMAT: AUTO

After (using explicit formats):

databases.template.yml
databases:
MY_DATABASE:
parameters:
DATE_OUTPUT_FORMAT: 'YYYY-MM-DD'
TIMESTAMP_OUTPUT_FORMAT: 'YYYY-MM-DD HH24:MI:SS.FF3 TZHTZM'
TIMESTAMP_LTZ_OUTPUT_FORMAT: '<actual-value>'
TIME_OUTPUT_FORMAT: 'HH24:MI:SS'
CSV_TIMESTAMP_FORMAT: '<actual-value>'
TIMESTAMP_NTZ_OUTPUT_FORMAT: 'YYYY-MM-DD HH24:MI:SS.FF3'
TIMESTAMP_TZ_OUTPUT_FORMAT: '<actual-value>'

Support

If you encounter issues related to these changes or need assistance with migration: