9.20 Release notes: Jul 21, 2025-Jul 25, 2025

Attention

The release has completed. For differences between the in-advance and final versions of these release notes, see Release notes change log.

SQL updates

CREATE INDEX command supports INCLUDE columns

With this release, you can use the CREATE INDEX command to create secondary indexes with INCLUDE columns. In previous releases, INCLUDE columns were supported only for secondary indexes defined within CREATE HYBRID TABLE statements.

Semantic views: Listing dimensions and metrics in a view, schema, database, or account

To list the dimensions and metrics in a semantic view, schema, database, or account, run the following commands:

You can also list the dimensions that you can specify when querying for a specific metric. When you specify a dimension and metric in a query, the base table for the dimension must be related to the base table for the metric. In addition, the base table for the dimension must have an equal or lower level of granularity than the base table for the metric.

For example, the following example queries the tpch_analysis view and returns the customer_order_count metric and the order_date dimension:

SELECT * FROM SEMANTIC_VIEW (
  tpch_analysis
  DIMENSIONS orders.order_date
  METRICS customer.customer_order_count
);
Copy

This query fails because the orders table for the dimension has a higher level of granularity than the customer table for the metric:

010234 (42601): SQL compilation error:
Invalid dimension specified: The dimension entity 'ORDERS' must be related to and
have an equal or lower level of granularity compared to the base metric or dimension entity 'CUSTOMER'.

To list the dimensions that have base tables that are related to and are at an equal or lower level of granularity than the base table for a metric, run the SHOW SEMANTIC DIMENSIONS FOR METRIC command. For example:

SHOW SEMANTIC DIMENSIONS IN tpch_analysis FOR METRIC customer_order_count;
Copy

New query insights about join performance and optimization

The QUERY_INSIGHTS view now includes insights about the following conditions that might have affected query performance:

  • A query or subquery has no WHERE clause, which means that the query scans an entire table and might return more rows than intended.

  • A join that includes the output of at least one other join is returning many more rows than are in the tables being joined.

  • A join of two data sets (for example, tables, views, or output from table function calls) is returning many more rows than are in the tables being joined.

  • The performance of a query has been improved through search optimization.

Each insight includes a message that explains how query performance might have been affected and provides a general recommendation for next steps.

For information, see Using query insights to improve performance.

Data pipeline updates

Tasks: New EXECUTE AS USER option and IMPERSONATE privilege for user objects

With this release, organizations that assign Snowflake security privileges by user can allow users to run team tasks by using their existing user accounts.

As a best practice, we recommend that teams create a service user that represents a team, and assign required privileges to that user. You can then use GRANT IMPERSONATE ON USER <user_name> TO ROLE <role_name> to grant users privileges to create or modify tasks based on the team user account. Individual users can then run tasks on behalf of the team user to use their privileges with the new parameters: CREATE TASK … EXECUTE AS USER <user_name> and ALTER TASK … EXECUTE AS USER <user_name>.

For more information, see Run tasks with user privileges.

Dynamic tables: Disallowed use of the COPY_SESSION attribute while manually refreshing dynamic tables on a serverless warehouse

Using COPY_SESSION with a dynamic table in a serverless context causes the refresh to inherit the serverless warehouse, leading to unsupported and undefined behavior. This configuration now results in an error.

For more information, see REFRESH [ COPY SESSION ].

Release notes change log

Announcement

Update

Date

Release notes

Initial publication (preview)

Jul 24, 2025

Tasks: New EXECUTE AS USER option and IMPERSONATE privilege for user objects

Announcement removed temporarily until the supporting documentation is available.

Jul 28, 2025

Tasks: New EXECUTE AS USER option and IMPERSONATE privilege for user objects

Announcement restored.

Jul 28, 2025

Language: English