February 24-March 01, 2025 — 9.4 Release Notes¶
Attention
The release has completed. For differences between the in-advance and final versions of these release notes, see Release notes change log.
New features¶
Additional information returned for objects bound to references — General availability¶
Snowflake Native App providers can now use the following to fetch the object name, schema name, and database name of an object bound to a reference:
The SYSTEM$GET_ALL_REFERENCES system function.
The snowflake.permissions.get_detailed_reference_associations method of the Python Permission SDK.
More granular control for log, trace, and metric levels in an app — General availability¶
Within a Snowflake Native App, you can now override the log, trace, and metric levels for specific objects within an app, including:
database schemas
versioned schemas
stored procedures
functions
This allows for precise monitoring and analysis of these objects and gives providers more granular control over telemetry data collection.
App-level log, trace, and metric levels are used as the default and are applied only when specific object or schema overrides are
not defined. You can set the default app-level log, trace, and metric levels in the manifest file of the app.
See Define event definitions in the manifest file of an app for more information.
Object-specific overrides in the setup.sql
take precedence over application-level defaults.
To get the override values for the logging, metric, and tracing levels, use the following system functions:
SYSTEM$APPLICATION_GET_LOG_LEVEL
SYSTEM$APPLICATION_GET_TRACE_LEVEL
SYSTEM$APPLICATION_GET_METRIC_LEVEL
SQL updates¶
Cloning databases that contain hybrid tables — Preview¶
With this release, we are pleased to announce the preview of cloning support for databases that contain hybrid tables. You can create cloned databases to set up a backup and restore solution for Unistore applications.
For more information, see:
New SQL functions¶
The following function is now available with this release:
Function Category |
New function |
Description |
---|---|---|
System |
Triggers an immediate, one-time data refresh for a provider’s database or listing for all consumers who have access to it. |
Extensibility updates¶
Support for associating an event table with a database — General availability¶
With this release, support for associating an event table with a database is generally available. When you assign an event table to a database, the scope of objects for which events are collected in the event table is limited to objects in the database.
Previously, an event table could be associated only with the account.
For more information, see Event table overview.
Data loading updates¶
Dynamic tables and tasks: Events logged for refreshes and task executions¶
You can now configure Snowflake to log events for dynamic table refreshes and task executions. These events are stored in the active event table associated with the dynamic table or task.
When a dynamic table is refreshed, Snowflake logs an event to indicate if:
The refresh succeeded.
The refresh failed. In this case, the event also includes the error message.
The refresh failed due to a failure with refreshing an upstream dynamic table.
Similarly, when a task executes, Snowflake logs an event to indicate if the task completed successfully or an error occurred. If an error occurred, the event includes the error message.
You can query these events to identify refreshes that have failed or task executions that resulted in errors.
For example, the following query gets the timestamp, dynamic table name, query ID, and error message for errors with dynamic
tables in the database my_db
:
SELECT
timestamp,
resource_attributes:"snow.executable.name"::VARCHAR AS dt_name,
resource_attributes:"snow.query.id"::VARCHAR AS query_id,
value:message::VARCHAR AS error
FROM my_event_table
WHERE
resource_attributes:"snow.executable.type" = 'DYNAMIC_TABLE' AND
resource_attributes:"snow.database.name" = 'MY_DB' AND
value:state = 'FAILED'
ORDER BY timestamp DESC;
The following query gets the timestamp, task name, query ID, and error message for errors with tasks in the database my_db
:
SELECT
timestamp,
resource_attributes:"snow.executable.name"::VARCHAR AS task_name,
resource_attributes:"snow.query.id"::VARCHAR AS query_id,
value:message::VARCHAR AS error
FROM my_event_table
WHERE
resource_attributes:"snow.executable.type" = 'TASK' AND
resource_attributes:"snow.database.name" = 'MY_DB' AND
value:state = 'FAILED'
ORDER BY timestamp DESC;
For more information, see:
Query the event table to monitor refreshes (for dynamic tables)
Data lake updates¶
CATALOG_NAMESPACE parameter for catalog integrations is now optional¶
With this release, the CATALOG_NAMESPACE parameter for catalog integrations is now optional instead of required:
If you create a catalog integration to sync a Snowflake-managed Iceberg table with Snowflake Open Catalog, you no longer need to specify the CATALOG_NAMESPACE parameter. Snowflake syncs the Apache Iceberg™ table to the external catalog in Open Catalog that you specify in the catalog integration.
If you create a catalog integration for unmanaged Iceberg tables and you don’t specify a CATALOG_NAMESPACE with the catalog integration, you must specify it at the table level. You can alternatively specify it with the catalog integration and then override it at the table level.
Release notes change log¶
Announcement |
Update |
Date |
---|---|---|
Release notes |
Initial publication (preview) |
21-Feb-25 |
Additional information returned for objects bound to references — GA announcement |
Added to New features section |
24-Feb-25 |
More granular control for log, trace, and metric levels in an app — GA announcement |
Added to New features section |
24-Feb-25 |
Cloning databases that contain hybrid tables - Preview |
Added to SQL updates section |
25-Feb-25 |
Automatic tag propagation - GA announcement |
Removed from New features section |
28-Feb-25 |
Dynamic tables and tasks: Events logged for refreshes and task executions |
Added to Data loading updates section |
01-Mar-25 |
New SQL functions (SYSTEM$TRIGGER_LISTING_REFRESH) |
Added to SQL updates section |
10-Mar-25 |