2022_05 Bundle

This topic describes the following behavior changes (if any) for the month:

  • Features that were deprecated.

  • Bundled changes that were enabled.

  • Other, non-bundled changes that were implemented.

If you have any questions about these changes, please contact Snowflake Support.

For details about the new features, enhancements, and fixes introduced this month, see August 2022.

Important

Unless otherwise noted, these changes are in the 2022_05 bundle, which was enabled by default in the 6.29 release.

Security Changes

Key Pair Authentication: Issuance Time Must Be 1 Day Or Less

Key pair authentication with JSON web tokens (JWT) has changed as follows:

Previously:
  • JWT tokens allowed with issue time and expiration time to be submitted in seconds. If these values were submitted in milliseconds, Snowflake treated the millisecond value as if it were seconds.

  • JWT tokens allowed with issue times in the future.

Currently:
  • JWT tokens now allowed with issue time and expiration time in milliseconds or seconds.

  • JWT tokens no longer allowed with issue time in the future. If necessary, update your token-generating process to ensure that the issue time value is not in the future.

SQL Changes — General

Changes to Transaction IDs and Timestamps

Transaction IDs have increased in size and timestamps returned by select system functions have increased precision:

Previously:
  • Transaction ID values were approximately 13 digits long.

  • Timestamps had a millisecond precision.

Currently:
  • A transaction ID is now a signed 64-bit (long) integer. The range of values is -9,223,372,036,854,775,808 (-263) to 9,223,372,036,854,775,807 (263 1).

  • Timestamps are converted to nanosecond precision.

This change has the following impact:

SQL Changes — Commands & Functions

GET_DDL Function: Changes to Output for Identifiers Containing Double-quotes and Periods

The output of the GET_DDL function has changed as follows:

Previously:

GET_DDL did not correctly return object or column names if the strings contained double-quotes. If a name contained a double-quote, the double-quote must be preceded by another double-quote, resulting in the string containing a pair of double-quotes; however, the function only returned one of the double-quotes.

For example, a table was named "foo""one". Executing GET_DDL on the table incorrectly returned "foo"one" as the name of the table. As a result, the function output could not be used to recreate the table.

In addition, GET_DDL (and other functions that accept fully-qualified object names as strings) were unable to parse the specified name if a period was either at the beginning of the name or immediately following a double-quote in the string.

For example, the following strings were not supported as object names:

  • ".foo" (" parsed as the schema name and FOO" as the object name)

  • "public"".foo" (public" parsed as the schema name and FOO" as the object name)

Currently:

GET_DDL correctly and successfully returns object and column names that contain double quotes.

In addition, GET_DDL (and other functions that accept fully-qualified object names) are able to parse specified object names that contain periods either at the beginning of the name or immediately following a double-quote in the string.

SQL Changes — Usage Views & Information Schema Views/Table Functions

FUNCTIONS View (Information Schema): New Columns in View

The output of the Information Schema FUNCTIONS view now includes the following new columns:

Column Name

Data Type

Description

PACKAGES

STRING

Specifies the packages requested by the function.

RUNTIME_VERSION

STRING

Specifies the runtime version of the function. NULL if the function is SQL or Javascript

INSTALLED_PACKAGES

STRING

Lists all packages installed by the function. Output for Python functions only.

Data Pipeline Changes

DESCRIBE STREAM / SHOW STREAMS Commands: New INVALID_REASON Column in Output

The output of the DESCRIBE STREAM and SHOW STREAMS commands now includes the following column:

Column Name

Data Type

Description

INVALID_REASON

STRING

Specifies the reason when the contents of a stream cannot be queried successfully. This column has been introduced to support future functionality. When the column is introduced, the only value returned will be N/A.

To help limit the impact of this change, the column has been added as the last column in the output.

Data Lake Changes

SHOW EXTERNAL TABLES Command: LOCATION Column Returns NULL for Data Consumers

Providers can include external tables, among other database objects, in shares to consumer accounts via Snowflake Secure Data Sharing.

When a user in a consumer account executes the SHOW EXTERNAL TABLES command, the output for shared external tables has changed as follows:

Previously:

The LOCATION column showed the external stage and folder path in the external table definition for external tables in an imported share (i.e. the same information returned for external tables in the consumer account).

Currently:

The LOCATION column shows NULL for external tables in an imported share.

Snowflake CLI, Connectors, Drivers, and SQL API Changes

Snowflake SQL API: Removal of the Older Endpoints

The older, deprecated endpoints of the Snowflake SQL API are no longer available. This includes the following endpoints:

  • /api/statements/

  • /api/statements/<statementHandle>

  • /api/statements/<statementHandle>/cancel

Calls to these endpoints now return an HTTP 404 error code.

You must ensure that you are using the newer version of the SQL API. See About the SQL API Endpoints for more details.