March 26-27, 2024 — 8.12 Release Notes (with behavior changes)

Attention

The release has completed.

For differences between the in-advance and final versions of 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

2024_03

Disabled by default; admins can enable for testing

N/A (introduced in this release)

2024_02

Enabled by default; admins can disable for opt-out

Disabled by default

2024_01

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 April 2024; however, this schedule is subject to change.

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

SQL Updates

Organization Usage: Improved views for billing reconciliation — General Availability

With this release, we are pleased to announce that the following views in the Organization Usage schema have been improved to make it easier to reconcile Snowflake usage with monthly billing statements:

  • CONTRACT_ITEMS

  • RATE_SHEET_DAILY

  • REMAINING_BALANCE_DAILY

  • USAGE_IN_CURRENCY_DAILY

For details on what changed, see Organization Usage: Updated billing views.

Data Pipeline Updates

Replication: Stages, pipes, storage integrations, load history, and Snowpipe Streaming — General Availability

With this release, we are pleased to announce the general availability of replication for stages, pipes, storage integrations, load history, and Snowpipe Streaming channels. You can replicate these objects to configure failover for data pipelines across regions and cloud platforms.

As part of pipe object replication, pipes in a secondary database are in a READ_ONLY execution state and receive notifications, but do not load data until you promote the secondary database to serve as the primary. After you promote a secondary database, the pipes will transition to a FAILING_OVER execution state.

With Snowpipe Streaming replication, the table object, table data, and the channel offsets associated with the table from the primary database are replicated to the secondary database.

For more information, see Stage, pipe, and load history replication and Replication and Snowpipe Streaming.

Schema detection and evolution for Kafka connector with Snowpipe Streaming — General Availability

With this release, we are pleased to announce the general availability of schema detection and evolution for Kafka connector with Snowpipe Streaming. The structure of tables in Snowflake can be defined and evolved automatically to support the structure of Kafka topic message data loaded by the Kafka connector using Snowpipe Streaming.

For more information, see Schema detection and evolution for Kafka connector with Snowpipe Streaming.

Data Governance Updates

Memoizable functions with constant arguments

With this release, Snowflake is pleased to announce support for creating a memoizable function with constant arguments. This support provides more flexibility in terms of how to define the function. Additionally, if you reference the function in a data access policy, such as a row access policy, you have more freedom in terms of how to define your policy. The function arguments can be any of the following data types:

  • string

  • numeric

  • date

  • Boolean

For details, see:

Share data protected by a role-based policy — General Availability

With this release, Snowflake is pleased to announce the general availability to enable a data sharing provider to use the IS_DATABASE_ROLE_IN_SESSION function in the conditions of a masking policy or a row access policy to allow a data sharing consumer to access shared data that is protected by either of these policies. The function argument takes either the name of a database role or a column that contains database roles. This provides more options to the provider to share data, allows the consumer to access sensitive data that the provider makes available, and removes restrictions on policy-protected data when the consumer queries a shared table protected by a policy.

For details, see Share data protected by a policy and

IS_DATABASE_ROLE_IN_SESSION.

Access History: Stored procedure ancestor queries — General Availability

With this release, Snowflake is pleased to announce the general availability to track the chain of queries that call a stored procedure by using the parent_query_id and root_query_id columns. These columns allow you to see the query ID that performs a read or write operation on another object, and the query ID for the query that calls a stored procedure, respectively. The columns support calling a stored procedure directly and nested stored procedure calls, such as when one stored procedure calls another stored procedure.

This update was announced in preview during the 8.2 release. For details, see Example: Ancestor queries with stored procedures.

Shared tag references — General Availability

With this release, Snowflake is pleased to announce the general availability to allow users in the data sharing consumer account to view shared tags and the tag references on shared objects when the tags and shared objects are in the same database. This update helps the consumer to understand the data sensitivity of a shared object, such as a table containing PII data when the PII tag is set on a table and its columns.

This update was announced in preview during the 7.33 release. For details, see Shared tag references.

Access History: Track objects modified by a DDL operation — General Availability

With this release, we are pleased to announce the general availability of tracking objects modified by DDL operations in the Account Usage ACCESS_HISTORY view. These operations include:

  • Track how tag and policy assignments change.

  • Track the table and column lifecycle.

Release Notes Change Log

Announcement

Update

Date

Release notes

Initial publication (preview)

26-Mar-24