This article provides a brief overview of the new features, enhancements, and other important changes introduced in this scheduled release of Snowflake. For more detailed information, see the Snowflake documentation.
Important: These changes may take 24 hours or more (after the completion of the release) to become available.
If you have any questions, please email firstname.lastname@example.org.
Federated Authentication: Support for ADFS and SAML 2.0-compliant Identity Providers
Prior to this release, Snowflake supported Okta as the only identity provider for federated authentication and single sign-on (SSO) for an account. In addition, only Snowflake could perform the configuration tasks required to enable federated authentication for an account.
With this release:
- Snowflake adds native support for Microsoft Active Directory Federation Services (ADFS) as the identity provider for an account.
In addition, Snowflake allows most SAML 2.0-compliant vendors to be used as the identity provider for an account, including (but not limited to):
- Microsoft Azure Active Directory (AD)
- The configuration tasks for enabling federated authentication no longer need to be performed by Snowflake. Using the new account parameter, SAML_IDENTITY_PROVIDER, account administrators can now enable/configure federated authentication themselves.
- Snowflake has added a preview mode for testing federated authentication and Snowflake-initiated SSO before rolling it out account-wide. The preview mode is enabled by default. To disable it (after testing has been completed), use the new account parameter, SSO_LOGIN_PAGE.
Querying Data in Table Staging Locations: Data Returned as Strings
With this release, the data type returned when querying data files stored in table staging locations has changed:
- Previous behavior: Query results were implicitly cast to match the data types of the corresponding columns in the table. For example, suppose the following query was executed on a file named
mydata.csv.gzstored in the table staging location for
SELECT t.$1, t.$2, t.$4, t.$6
FROM @%mytable/mydata.csv.gz t;
t.$1 corresponded to a TIMESTAMP_NTZ column and
t.$4 corresponded to a NUMBER column, the query returned those data types.
- New behavior: All column values are returned as strings.
This behavior change applies only when querying data files stored in table staging locations. The change makes querying table staging locations consistent with querying user staging locations or named stages, which already return string values.
Note: You can always explicitly cast a column value from a string to the desired data type. For example:
SELECT t.$1::timestamp_ntz, t.$2, t.$4::number, t.$6
FROM @%mytable/mydata.csv.gz t;
Snowflake JDBC Driver 3.0.12: Support for Binding Timestamps to TIMESTAMP_NTZ Data Type
Version 3.0.12 of the Snowflake JDBC driver adds support for binding timestamp variables as TIMESTAMP_NTZ for applications that use the bind API to load data. The new CLIENT_TIMESTAMP_TYPE_MAPPING parameter allows timestamp variables to be bound to either the TIMESTAMP_LTZ (default) or TIMESTAMP_NTZ data type.
Snowflake ODBC Driver v2.12.94: Support for New Session Parameters
Version 2.12.94 of the Snowflake ODBC driver includes support for the following new session parameters:
- CLIENT_SESSION_KEEP_ALIVE: Specifying
CLIENT_SESSION_KEEP_ALIVE=TRUEinstructs Snowflake to keep the current session active indefinitely, even if there is no activity. By default, the parameter value is FALSE, which requires the user to log in again after four hours of inactivity.
Currently, to prevent sessions initiated by the ODBC driver from expiring, the parameter must be set as a connection parameter. If the parameter is set within a session, it has no effect.
- CLIENT_TIMESTAMP_TYPE_MAPPING: Adds support for binding timestamp variables as TIMESTAMP_NTZ for applications that use the bind API to load data. The CLIENT_TIMESTAMP_TYPE_MAPPING parameter allows timestamp variables to be bound to either the TIMESTAMP_LTZ (default) or TIMESTAMP_NTZ data type.
Snowflake Node.js Driver: Change in npm Package Name
With this release, the package name for the Snowflake Node.js driver on npm has changed to be more consistent with naming conventions:
- Previous name:
- New name:
COPY command: Fix for Inconsistent Behavior for Escape Character
This release fixes an inconsistency with the COPY INTO location behavior when handling escape characters in table data:
- Previous behavior: A COPY INTO location statement that enclosed string data fields inside quotes using the FIELD_OPTIONALLY_ENCLOSED_BY file format option did not escape instances of a specified escape character in the table data. The escape character is specified using the ESCAPE option in a statement.
If a statement did not include the FIELD_OPTIONALLY_ENCLOSED_BY option, instances of the escape character were escaped.
- New behavior: If a COPY INTO location statement encloses string data fields inside quotes using the FIELD_OPTIONALLY_ENCLOSED_BY file format option, any instances of the escape character in the table data are escaped.
History Page: Support for Additional Filters
With this release, the History page supports filtering on the SQL Text and Query ID columns.
- The SQL Text column filter includes a Contains mode that matches any SQL statements that contain the filter input. For example, the input
redwould match statements that contain text such as:
- red rose
This filter does not support wildcards. There is no list of reserved keywords. The filter input can include SQL command or function names.
- The Query ID column filter requires you to enter a query ID.
In addition to viewing query IDs in either the Worksheet or History page in the interface, you can look up query IDs using the
!queriescommand in SnowSQL or the
QUERY_HISTORY , QUERY_HISTORY_BY_*table function in the Information Schema.