November 2022

The following new features, behavior changes, and updates (enhancements, fixes, etc.) have been introduced this month. If you have any questions about these additions, please contact Snowflake Support.

Important

Each release may include updates that require the web interface to be refreshed.

As a general practice, to ensure these updates do not impact your usage, we recommend refreshing the web interface after each Snowflake release has been deployed.

New Features

Password Policies

With this release, Snowflake introduces password policies. A password policy is a new schema-level object that specifies the requirements that must be met to create and reset passwords for authenticating to Snowflake. Snowflake allows setting a password policy for your Snowflake account, as well as a password policy for individual users in the account, where the user-level password policy takes precedence over the account-level password policy.

Note that password policies apply only to new passwords in your Snowflake account. To ensure that a user’s existing password meets the requirements specified in a password policy, set the user property MUST_CHANGE_PASSWORD to TRUE using an ALTER USER statement.

For details, see Password Policies.

Snowpark API for Python — General Availability

We are pleased to announce the general availability of the Snowpark API for Python.

Snowpark is a new developer experience that provides an intuitive API for querying and processing data in a data pipeline. Using this library, you can build applications that process data in Snowflake without moving data to the system where your application code runs.

For more information, see Snowpark Developer Guide for Python.

Python UDFs — General Availability

We are pleased to announce the general availability of Python UDFs (user-defined functions).

Users can now write custom functions in the Python programming language and call those as though they were built-in functions.

For more information, see Introduction to Python UDFs.

Python UDF Batch Interface — General Availability

We are pleased to announce the general availability of the Python UDF batch API.

The Python UDF batch API enables defining Python functions that receive batches of input rows as Pandas DataFrames and return batches of results as Pandas arrays or Series. Python UDFs that use the batch API are called the same way as other Python UDFs.

For more information, see Vectorized Python UDFs.

Python UDTFs — General Availability

We are pleased to announce the general availability of Python UDTFs (user-defined table functions).

Python UDTFs extend Snowflake’s native development capabilities by combining the advantages of table functions with the power, flexibility, and ease of programming in Python.

For more information, see Writing a UDTF in Python.

Snowpark Stored Procedures for Python — General Availability

We are pleased to announce the general availability of Snowpark stored procedures for Python, which allows you to write stored procedures in Python using the Snowpark API.

In your stored procedure, you can use the Snowpark API for Python to host your data pipelines in Snowflake. For example, you can write stored procedures when you need to execute your Snowpark code without running a client application (e.g. from a task).

For more information, see Writing Stored Procedures in Python.

SQL Updates

New Account Usage View: PROCEDURES

In a recent release, the PROCEDURES View was added to the account usage views (in the SNOWFLAKE shared database) to provide information about stored procedures. The PROCEDURES view displays one row for each stored procedure in the account.

Search Optimization Service: Support for Tables with Masking Policies and Row Access Policies — Preview

We are pleased to announce a preview of support for tables with masking policies and row access policies in the search optimization service.

Prior to the introduction of this feature, an error occurred if you attempted to add search optimization to a table that used masking policies or row access policies. With this feature, you can improve the performance of queries on columns in that table.

For more information, see Search Optimization Service.

SELECT *: Excluding and Renaming Specific Columns

With this release, you can exclude or rename specific columns in a SELECT * statement.

  • To exclude one or more columns, specify EXCLUDE with the names of the columns:

    SELECT * EXCLUDE <col_name> ...
    
    Copy
    SELECT * EXCLUDE (<col_name>, <col_name>, ...) ...
    
    Copy
  • To rename one or more columns, specify RENAME with the original names of the columns and the new names of the columns:

    SELECT * RENAME <col_name> AS <col_alias> ...
    
    Copy
    SELECT * RENAME (<col_name> AS <col_alias>, <col_name> AS <col_alias>, ...) ...
    
    Copy

You can use EXCLUDE and RENAME in the same statement. If you do, you must specify EXCLUDE before RENAME, and you cannot specify the same column in both EXCLUDE and RENAME.

For example, to select all columns except the employee_id column from employee_table and rename the department_id column to department:

SELECT * EXCLUDE employee_id RENAME department_id as department FROM employee_table;
Copy

For more information, see SELECT.

New SQL Functions

The following function(s) were introduced in recent releases:

Function Category

New Function

Description

Semi-structured Data Functions (Array/Object)

ARRAY_EXCEPT

Returns a new ARRAY that contains the elements from one input ARRAY that are not in another input ARRAY.

Numeric

DIV0NULL

Performs division like the division operator (/), but returns 0 when the divisor is 0 or NULL (rather than reporting an error or returning NULL).

Semi-structured Data Functions (Array/Object)

ARRAY_DISTINCT

Returns a new ARRAY that contains only the distinct elements from the input ARRAY.

New System Stored Procedure for Sending Email Notifications — Preview

We are pleased to announce a preview of the SYSTEM$SEND_EMAIL() system stored procedure for sending email notifications. You can call this stored procedure to send an email notification from a task, your own stored procedure, or an interactive session.

For more information, see Sending Email Notifications.

New Information Schema Table Function: NOTIFICATION_HISTORY

With this release, a new table function, NOTIFICATION_HISTORY, has been added to the Snowflake Information Schema.

This table function returns the history of notifications sent through Snowflake, including:

Note: This function only returns information about notifications that have been processed (notifications that were either sent out or have failed). Notifications in the queue will not be shown in the history.

For more information on this table function, see NOTIFICATION_HISTORY.

New Account Usage View: LOCK_WAIT_HISTORY

With this release, a new view, LOCK_WAIT_HISTORY, has been added to the Account Usage schema in the Snowflake database.

The LOCK_WAIT_HISTORY View returns transaction details that can be useful in analyzing blocked transactions. Each row in the output includes the details of a transaction that is waiting on a lock and the details of transactions that are holding that lock or waiting ahead for that lock.

For more information, see Analyzing Blocked Transactions with the LOCK_WAIT_HISTORY View.

Virtual Warehouse Updates

Snowpark-optimized Warehouses — Preview

We are pleased to announce a preview of Snowpark-optimized warehouses in Amazon Web Services (AWS), Microsoft Azure, and Google Cloud regions.

For more information, see Snowpark-optimized warehouses.

Extensibility Updates

Request and Response Translators in External Functions — General Availability

We are pleased to announce the general availability of request and response translators. This feature makes it easier to change the format of data sent to, and received from, remote services used by external functions.

This feature allows you to conveniently:

  • Convert data from Snowflake’s format to the remote service’s native input format (request translator).

  • Convert data from the remote service’s native output format to Snowflake’s format (response translator).

For more information, see Using Request and Response Translators with Data for a Remote Service.

Data Governance Updates

Access History: Support Added for UDFs & Stored Procedures

With this release, Snowflake is pleased to announce support for UDFs, UDTFs, external functions, and stored procedures in the Account Usage ACCESS_HISTORY View.

For details, see: