June 07-08, 2023 — 7.19 Release Notes (with behavior changes)

The following new features, behavior changes, and updates (enhancements, fixes, etc.) have been introduced in this release. 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.

Behavior Changes Bundles

This release contains the following behavior change bundles:

Bundle Name

Status in this Release

Previous Status

2023_04

Disabled by default; admins can enable for testing

N/A (introduced in this release)

2023_03

Enabled by default; admins can disable for opt-out

Disabled by default

2023_02

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

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

New Features

Anonymous Procedures — General Availability

With this release, we are pleased to announce the general availability of support for creating anonymous procedures. An anonymous procedure is similar to a stored procedure, but not stored for later use.

You can create an anonymous procedure using the WITH…CALL syntax. With this command, you both create an anonymous procedure defined by parameters in the WITH clause and call that procedure. You do not need to have a role with CREATE PROCEDURE schema privileges for this command.

Reading Files With a Java Function or Procedure Handler — General Availability

With this release, we are pleased to announce the general availability of support for reading staged files with a UDF or procedure handler code written in Java.

For more information, refer to Reading a File with a Java UDF and Reading a File with a Java Procedure.

Reading Files With a Scala Function or Procedure Handler — Preview

With this release, we are pleased to announce a preview of support for reading staged files with a UDF or procedure handler code written in Scala.

For more information, refer to Reading a File with a Scala UDF and Reading a File with a Scala Procedure.

Reading Files With a Python Function or Procedure — Preview

With this release, we are pleased to announce a preview of Python support for reading files with the SnowflakeFile class.

SnowflakeFile is a new class in the snowflake.snowpark.files module that provides dynamic read access for files on an internal or external stage. With SnowflakeFile, you can stream files to accomplish tasks such as reading unstructured data or using your own machine learning model in a user-defined function (UDF), user-defined table function (UDTF), or stored procedure.

For more information, refer to:

Schema Detection for JSON and CSV — Preview

With this release, we are pleased to announce a preview of the schema detection feature for JSON and CSV. The schema detection feature uses the INFER_SCHEMA function to automatically detect the schema in a set of staged data files and retrieve the column definitions. The generally available INFER_SCHEMA function applies to Apache Parquet, Apache Avro, and ORC files. This preview function expands support to include JSON and CSV files.

For more information, refer to Schema detection of column definitions from staged semi-structured data files.

Table Schema Evolution — Preview

With this release, we are pleased to announce a preview of the table schema evolution feature. The structure of tables in Snowflake can now evolve automatically to support the structure of new data received from the data sources. Snowflake allows adding new columns or dropping the NOT NULL constraint from columns missing in new data files, and supports dropping columns or changing the data type, length, or precision of existing columns.

To enable table schema evolution, you can set the ENABLE_SCHEMA_EVOLUTION parameter to TRUE when you create or alter a table.

For more information, refer to Table schema evolution.

SQL Updates

Support for Python 3.9 in Snowpark, UDFs, and Stored Procedures — Preview

With this release, we are pleased to announce support for Python 3.9 in Snowpark Python, Python UDFs and Python stored procedures as a preview feature to all accounts.

For more information, refer to:

UDFs, UDTFs, and Stored Procedures Support Passing Arguments by Name

When calling a UDF, UDTF, or stored procedure, you can now pass arguments by name, in addition to by position.

For example, suppose that you created a UDF with the following statement:

CREATE OR REPLACE FUNCTION add_numbers (n1 NUMBER, n2 NUMBER)
  RETURNS NUMBER
  AS 'n1 + n2';
Copy

To pass the arguments by name, specify the argument name followed by => and the argument value. For example:

SELECT add_numbers(n1 => 10, n2 => 5);
Copy

You can pass the arguments in any order:

SELECT add_numbers(n2 => 5, n1 => 10);
Copy

For more information, refer to:

If there are multiple functions or procedures with the same name, the same number of arguments, and different data types for the arguments, you can specify the argument names in the call to indicate which function or procedure to execute. The argument names that you specify in the call take precedence over the argument positions. For more information, refer to Overloading procedures and functions.

Finally, the following built-in functions support passing arguments by name:

Data Science Updates

Work With Snowflake’s Upcoming ML features

This release introduces a new schema, “ML”, to the Snowflake database, along with an ML_USER SNOWFLAKE database role, which is granted to the PUBLIC role in all Snowflake accounts containing a shared SNOWFLAKE database.

For more information, refer to:

The schema, roles, and privileges support features that will be made available in Public Preview at Snowflake Summit 2023.

Organization Updates

ACCOUNTS View (Organization Usage) — Preview

With this release, we are pleased to announce the preview of the ACCOUNTS view in the ORGANIZATION_USAGE schema. The ACCOUNTS view allows an organization administrator to obtain details about the accounts in an organization, including accounts deleted within the last year.

For more information, refer to ACCOUNTS View.

Web Interface Updates

New Organizations Only Have Snowsight Access

Starting May 30, 2023, new Snowflake organizations only have access to Snowsight and no longer have access to Classic Console.

For more information, refer to About the Snowsight upgrade.