9.22 Release notes (with behavior changes): Preview

Attention

Content on this page is available in advance of the completion of the 9.22 release, which is currently either pending or in progress and is scheduled for completion on August 5 (subject to change).

Features, updates, or behavior changes described on this page might not be available in your accounts until the release is complete.

For updates to these release notes, see Release notes change log.

Behavior change bundles

This release contains the following behavior change bundles:

Bundle Name

Status in this Release

Previous Status

2025_05

Disabled by default; admins can enable for testing

N/A (introduced in this release)

2025_04

Enabled by default; admins can disable for opt-out

Disabled by default

2025_03

Generally enabled; admins can no longer enable/disable

Enabled by default

The status for each bundle will change in the next behavior change release, planned for September 2025; however, this schedule is subject to change.

For more information about bundle statuses and how they may impact your accounts, see About Behavior Changes.

Security updates

Private Service Connect Endpoints for internal stages on Google Cloud (General availability)


Snowflake customers can now create, configure, and use Google Private Service Connect Endpoints to access Snowflake internal stages.

Data pipeline updates

Dynamic tables: Support for immutability constraints

Immutability constraints give you finer control over dynamic table updates by allowing parts of the table to remain unchanged instead of always reflecting the latest query results.

By marking specific regions as immutable, you can:

  • Prevent propagation of updates or deletions to existing data.

  • Restrict inserts, updates, and deletes for rows matching a condition.

  • Limit future modifications while still allowing incremental updates to other parts of the table.

To define immutability constraints, use the IMMUTABLE WHERE parameter in the CREATE DYNAMIC TABLE or ALTER DYNAMIC TABLE command.

Dynamic tables: Support for backfill

You can now create a dynamic table with its initial data backfilled from a regular table. Backfilling is a zero-copy, low-cost operation that makes the source data immediately available in the dynamic table.

You can backfill data into a dynamic table while still defining a custom refresh query for future updates. With immutability constraints, backfilled data remains unchanged even if it no longer matches the upstream source, ensuring it persists over time.

Release notes change log

Announcement

Update

Date

Release notes

Initial publication (preview)

Aug 01, 2025