November 12-14, 2024 — 8.43 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

Full-text search — General availability

Full-text search is now generally available. To use full-text search, call the new SEARCH and SEARCH_IP functions to find character data (text) and IP addresses in specified columns from a table, including elements in VARIANT, OBJECT, and ARRAY columns. In most cases, you call the function by specifying it in the SELECT list or the WHERE clause of a SELECT statement.

The SEARCH function supports token-based text search across multiple columns (or all columns) of a table, which is a good solution for the following use cases:

  • Searching for text in data with an inherent structure, where tokens naturally correspond to words, fields, or message components.

    Token searches can exactly match the specified text in a large amount of data, which results in fewer false positives and simpler queries than substring searches. For example, a token search for “unauthorized access” in the system logs finds case-insensitive instances of “unauthorized” and “access” but doesn’t find instances of “authorized” or “accessible.”

    In addition, for these cases, SEARCH is typically faster than comparable queries that use ILIKE.

  • Searching for text without knowing the exact location of relevant data. Because full-text search supports a column wildcard, you can search for relevant text in a set of columns or entire tables without writing complex SQL queries. For example, you can use full-text search to search for a list of usernames in a table.

The SEARCH_IP function searches for valid IPv4 addresses in specified character-string columns, including elements in VARIANT, OBJECT, and ARRAY columns. The search can find matches for a single IP address or a CIDR range of IP addresses in a large amount of data.

To improve the performance of full-text search queries, you can optionally enable FULL_TEXT search optimization on a specific column or set of columns in a table. To do so, execute an ALTER TABLE … ADD SEARCH OPTIMIZATION ON FULL_TEXT statement. The resulting access path is generally faster and cheaper to build, and requires less storage on disk than ON SUBSTRING.

For more information about full-text search, see Using full-text search. For more information about search optimization for full-text search queries, see Enabling and disabling search optimization.

Leaked password protection

With this release, we are pleased to announce leaked password protection, a background service in Snowflake that monitors and disables passwords that have been leaked to help prevent unauthorized access to Snowflake accounts. The leaked password protection service provides a notification system for administrators so they are aware of leaked passwords when they are detected in external databases.

For more information, see Leaked password protection.

Tasks: Python and JVM support for serverless tasks — General availability

With this release, we are pleased to announce the general availability of Python and JVM support for serverless tasks. Serverless tasks can now invoke the following object types and functions: UDFs (user-defined functions) and stored procedures written in Python, Java, and Scala. For more information, see Python and Java support for serverless tasks.

SQL updates

EXECUTE IMMEDIATE FROM: Support for using content from staged files in templates

With this release, in a Jinja2 template, you can include, import, inherit from, and read content from other files on a stage.

You can use Jinja2’s include (https://jinja.palletsprojects.com/en/stable/templates/#include), import (https://jinja.palletsprojects.com/en/stable/templates/#import), and inheritance (https://jinja.palletsprojects.com/en/stable/templates/#template-inheritance) features or call the SnowflakeFile API to use content from files on a stage. This enables you to make your templates more modular. For example, you can define macros in a common file and use those macros in different templates.

For more information, see Using content from staged files in a template.

Automatic logging and tracing for Snowflake Scripting stored procedures

With this release, you can automatically log and emit trace information about the execution of a Snowflake Scripting stored procedure. The additional log information includes the BEGIN/END of a Snowflake Scripting block and a child job request. The additional types of trace events include exception catching, information about child job execution, child job statistics, and stored procedure statistics, including execution time and input values. By using this feature, you can generate this additional information without modifying the body of the stored procedure.

To use the feature, set the new AUTO_EVENT_LOGGING parameter to LOGGING, TRACING, or ALL using the ALTER PROCEDURE command.

For more information, see Automatically add log messages about blocks and child jobs and Automatically emit trace events for child jobs and exceptions.

ACCOUNT_USAGE: New SERVERLESS_ALERT_HISTORY view

With this release, we are pleased to announce the SERVERLESS_ALERT_HISTORY view in the ACCOUNT_USAGE schema of the shared SNOWFLAKE database. You can query this view to get information about the credits used for serverless alerts.

For more information, see SERVERLESS_ALERT_HISTORY view.

Extensibility updates

Authentication with AWS IAM from procedures and functions — General availability

With this release, we are pleased to announce general availability of support for authenticating with AWS services from a procedure or functions using Snowpark External Access via Identity and Access Management (IAM).

For more information, see Accessing Amazon S3 with AWS IAM.

Listings updates

LISTING_REFRESH_HISTORY — General availability

With this release, we are pleased to announce general availability of the new function LISTING_REFRESH_HISTORY. You can use this function to view the past 14 days of refresh history for a cross-cloud auto-fulfillment listing. The information returned contains replication details for refresh events where the listing is synchronized to a specified target region.

For more information, see LISTING_REFRESH_HISTORY.

Data pipeline updates

Dynamic tables: Support for replication across different failover groups

With this release, we are pleased to announce support for replication of dynamic tables and base tables that are in different failover groups.

For more information, see Replication and dynamic tables.

Data Lake updates

Apache Iceberg™ tables: Support for Microsoft Fabric OneLake storage — Preview

With this release, we are pleased to announce support for Microsoft Fabric OneLake as a storage destination for Iceberg tables. You can now create an external volume that connects Snowflake to Fabric OneLake storage, then create a Snowflake-managed table that writes to that location. You can query the table using both Snowflake and Fabric.

For more information, see CREATE EXTERNAL VOLUME.

Release notes change log

Announcement

Update

Date

Release notes

Initial publication (preview)

08-Nov-24

ACCOUNT_USAGE: New SERVERLESS_ALERT_HISTORY view

Added to SQL updates section

11-Nov-24

LISTING_REFRESH_HISTORY — General availability

Added to Listings updates section

14-Nov-24

Tasks: Python and JVM support for serverless tasks — General availability

Added to New features section

14-Nov-24

Apache Iceberg tables: Support for Microsoft Fabric OneLake storage — Preview

Added to Data Lake updates section

14-Nov-24

Dynamic tables: Support for replication across different failover groups

Added to Data pipeline updates section

25-Nov-24

Leaked password protection

Added to New features section

19-Nov-24

Language: English