Monthly Snowflake Unofficial Release Notes #New features #Previews #Behavior Changes
Welcome to the fantastic Unofficial Release Notes for Snowflake for February 2024! You’ll find all the latest features, drivers, and more in one convenient place.
As an unofficial source, I am excited to share my insights and thoughts. Let’s dive in! You can also find all of Snowflake’s releases here.
This February, we provide coverage up to release 9.4. I hope to extend this eventually to private preview notices as well.
I would appreciate your suggestions on continuing to combine these monthly release notes. Feel free to comment below or chat with me on LinkedIn.
Behavior change bundles 2024_07 are active by default, 2024_08 is enabled by default but can be disabled, and 2025_01 can be enabled. See 2025_01 changes session when I discuss the effects of it.
What’s New in Snowflake
New Features
- Data lineage (GA), automatically tracks the flow of data between Snowflake objects in real-time, for example, from a table to a view, and track the lineage of table-like objects, columns, and stages as well as the lineage between data objects and machine learning objects like datasets, feature views, and models
- Support for a wildcard character in network rule network identifiers — General availability (GA), support for using an asterisk as a wildcard character when specifying a network identifier for a network rule in its VALUE_LIST parameter is generally available
- Automatic propagation of user-defined tags (GA), configure an object tag so it is automatically propagated from a source object to target objects, which streamlines tag management across objects and ensures that data protection policies associated with tags get consistently applied to target objects
- Support for associating an event table with a database (GA), when you assign an event table to a database, the scope of objects for which events are collected in the event table is limited to objects in the database
Snowsight Updates
- Support for telemetry metrics and custom spans, with visualizations in Snowsight (GA), support for collecting metrics data, implementing custom spans, and viewing log, trace, and metric data in Snowsight
- Generating connection settings for a client, driver, library, or third-party application, use Snowsight to generate the connection settings for a client, driver, library, or third-party application, and generate a connection string for the ODBC or JDBC driver or settings in TOML file format for Snowflake CLI, Snowflake Python APIs, or the Snowflake Connector for Python
Snowflake Applications
- Snowflake Native Apps release channels (Preview), support for release channels. Release channels allow providers to publish apps preview versions of the app to consumers
- Snowflake Native Apps with Snowpark Container Services support for Azure (GA), providers can now build container apps on Azure that are deployed and monetized for Snowflake customers through the Snowflake Marketplace. Using Snowpark Container Services, existing containerized workloads can be leveraged in an accelerated development cycle
Data Lake Updates
- Cloning support for Snowflake-managed Apache Iceberg™ tables (GA)
- CATALOG_NAMESPACE parameter for catalog integrations is now optional, if you create a catalog integration to sync a Snowflake-managed Iceberg table with Snowflake Open Catalog, you no longer need to specify the CATALOG_NAMESPACE parameter. Snowflake syncs the Apache Iceberg™ table to the external catalog in Open Catalog that you specify in the catalog integration, and if you create a catalog integration for unmanaged Iceberg tables and you don’t specify a CATALOG_NAMESPACE with the catalog integration, you must specify it at the table level. You can alternatively specify it with the catalog integration and then override it at the table level
Streamlit Updates
- Support for st.file_uploader (Preview), use st.file_uploader in Streamlit in Snowflake.
- Support for material icons (GA), use material icons in Streamlit in Snowflake.
SQL Updates
- SEARCH function: Support for conjunctive semantics, supports conjunctive (AND) semantics. Before this release, the function only supported disjunctive (OR) semantics, for example, specify the semantics for a full-text search using the function, set the new SEARCH_MODE argument to ‘AND’ or ‘OR’
- CREATE OR ALTER (Preview), supports TAGs, AUTHENTICATION POLICY, and FILE FORMAT
- Viewing Snowpipe in Snowsight (Preview), view the detailed status and copy history for Snowpipe
AI Updates (Cortex, ML, DocumentAI)
- Snowflake ML Model Serving Automatic Suspension (Preview), model inference services created by Snowflake ML Model Serving now automatically suspend after thirty minutes of inactivity and restarted when needed while automatic suspension is disabled for services with HTTP ingress enabled
- Document AI improvements: Arctic-TILT model improved checkbox identification, Answers to yes/no questions, and overall model quality across internal and external question-answering benchmarks
- Snowpark Container Services (SPCS) Model Serving on Azure (Preview) Snowflake is pleased to announce that Snowpark Container Services (SPCS) Model Serving is now available in Azure commercial regions in addition to AWS commercial regions, which lets you deploy machine learning models to a SPCS compute pool, providing scalable high-performance inference on CPU or GPU
- Snowflake Cortex COMPLETE Structured Outputs (Preview), support for structured outputs in the Snowflake Cortex COMPLETE function, which forces completion results to conform to a user-specified JSON schema
- Snowflake Cortex Fine-tuning (GA), a fully managed service that lets you fine-tune popular large language models using your data all within Snowflake in both AWS and Azure
- Cortex Agents (Preview), Cortex Agents orchestrate across both structured and unstructured data sources to deliver insights
Data Clean Rooms Updates
- UI loading improvements, load times have been improved in key user flows in clean room and analysis listing pages as well as when navigating across steps within the clean room creation and installation flows
- External and Apache Iceberg™ table support in SQL templates, privacy policies used in the SQL template within the UI are now supported on external and Apache Iceberg tables
- Data Clean Rooms available with data sharing terms, customers can onboard and use Snowflake Data Clean Rooms under our Customer-Controlled Data Sharing Functionality Terms, which are included within our standard Service terms
- Improvements to provider-linked views in the API, reference usage grants are applied automatically to underlying referenced objects when linking a view and note that the underlying object must still be registered for usage in clean rooms
- Multi-template approval, providers can approve multiple templates in a single request with the provider.approve_multiple_template_requests procedure
- Change in UI form handling with custom templates, if you providing a custom web form, any UI elements that have a references field that returns column names auto-populated by Snowflake will now return properly P/C aliased column names. Values accessed in the template should either be processed by IDENTIFIER or the sqlsafe filter in the template, and should not be aliased explicitly in the template
Data Pipelines/Data Loading/Unloading Updates
- Tasks now support lower scheduling intervals (GA), support lower scheduling executions as frequent as every 10 seconds
- Dynamic tables: Support for UNION ALL (GA), support the following use cases for UNION ALL for both full and incremental refresh: UNION ALL of a table and itself or a clone of itself, and UNION ALL between a GROUP BY or DISTINCT and another GROUP BY or DISTINCT
Open-Source Updates
- terraform-snowflake-provider 1.0.3 (improved documentation with new guides to common cases, Add basic performance tests, Resolve issues and document account resource, Upgrade tfplugindocs, Bug fixes: change EnforceNetworkRulesForInternalStages ddl to parameter)
- terraform-snowflake-provider 1.0.4 (Add GA scope to the roadmap, Adjust saml2_integration documentation, Remove hardcoded values from documentation, Update user docs, Upgrades: Go version / Code dependencies, Provider version for tracking wrapper)
- Snowflake VS Code Extension 1.12.0 (Public Preview release of Snowpark Checkpoints: Added Snowpark checkpoints support, Enable this in settings with snowflake.snowparkCheckpoints.enabled, Panel provides easy access to checkpoints in the current workspace, Added commands to add, clear, restore, run checkpoints, and view results, Upgraded glide-data-grid to 6.0.3)
- Streamlit 1.42.1 (Update hashlib usage for FIPS compliance, Fix: st.logo unmounts with use of st.fragment, Fix the usage of dataframe column menu in dialog)
- Streamlit 1.42.2 (Prevent showing tooltips on trailing dataframe row, [Fix] Reuse event loop logic)
Client, Drivers, Libraries and Connectors Updates
New features:
- Ingest Java SDK 3.1.1 (Made updates to silence the exception log in the JDBC driver)
- Ingest Java SDK 3.1.0 (behavior change any duplicate keys in variant columns result in client-side errors with the INVALID_VALUE_ROW error code, upgraded the JDBC version to 3.22.0, upgraded the Netty version to 4.1.118.)
- JDBC Driver 3.23.0 (support for PAT, OAuth 2.0 Authorization Code Flow, OAuth 2.0 Client Credentials Flow, and OAuth Token caching in Private Preview- can only be accessed by setting SF_ENABLE_EXPERIMENTAL_AUTHENTICATION environment variable to true, Improved the exception message when getting query metadata, added the ENABLE_EXACT_SCHEMA_SEARCH_ENABLED parameter to enable exact schema searches in some DatabaseMetaData methods, added more explicit error messages when a username or password is missing in the DataSource, bumped the following dependencies: netty to version 4.1.118.Final, json-smart to version 2.5.2, asm to version 9.7.1, added the ability to convert the CLIENT_REQUEST_MFA_TOKEN flag from string to boolean,added the ability to set the query timeout for the server side or client side, not both)
- Snowflake CLI 3.4.0 (Added the optional stage_subdirectory field to the application package entity. When this value is specified, application artifacts are uploaded to this subdirectory instead of to the root of the application package’s stage, added the following snow spcs service commands: snow spcs service events retrieves service-specific events, snow spcs service metrics fetches service metrics, added the following snow app release-directive commands: snow app release-directive add-accounts adds accounts to a release directive, snow app release-directive remove-accounts removes accounts from a release directive, added the snow app release-channel set-accounts command to set accounts for release channels, added the — force-replace option to the snow snowpark deploy command to replace entities even if no changes are detected, added the following notebook functionality: added the snow notebook deploy command that allows the creation of a notebook using a local file, added support for containerized notebooks, added notebook to the supported object types for the snow object commands, added support for glob patterns (except **) in artifacts paths in Streamlit and Snowpark snowflake.yyml files, Note: Using glob patterns in Snowpark snowflake.yml files requires enabling the ENABLE_SNOWPARK_GLOB_SUPPORT feature flag, added support for the Mac OS x86_64 architecture)
- Snowflake Python API 1.0.4 (support for the Cortex Agent resource)
- Snowflake Python API 1.0.3 (support for the Cortex Embed resource)
- Snowpark Library for Python 1.27.0 (support for the following functions in functions.py: array_reverse, divnull, map_cat, map_contains_key, map_keys, nullifzero, snowflake_cortex_sentiment, acosh, asinh, atanh, bit_length, bitmap_bit_position, bitmap_bucket_number, bitmap_construct_agg, cbrt, equal_null, from_json, ifnull, localtimestamp, max_by, min_by, nth_value, nvl, octet_length, position, regr_avgx, regr_avgy, regr_count, regr_intercept, regr_r2, regr_slope, regr_sxx, regr_sxy,, regr_syy, try_to_binary, base64, base64_decode_string, base64_encode, editdistance, hex, hex_encode, instr, log1p, log2, log10, percentile_approx, unbase64, added support for specifying a schema string (including implicit struct syntax) when calling DataFrame.create_dataframe, added support for DataFrameWriter.insert_into/insertInto. This method also supports local testing mode, added support for DataFrame.create_temp_view to create a temporary view. It will fail if the view already exists, added support for multiple columns in the functions map_cat and map_concat, added an option keep_column_order for keeping original column order in DataFrame.with_column and DataFrame.with_columns, added options to column casts that allow renaming or adding fields in StructType columns, added support for contains_null parameter to ArrayType, added support for creating a temporary view via DataFrame.create_or_replace_temp_view from a DataFrame created by reading a file from a stage, added support for value_contains_null parameter to MapType, added interactive to telemetry that indicates whether the current environment is an interactive one, allow session.file.get in a Native App to read file paths starting with / from the current version, added support for multiple aggregation functions after DataFrame.pivot, Experimental features : added Session.catalog class to manage Snowflake objects. It can be accessed via Session.catalog, snowflake.core is a dependency required for this feature, allow user input schema or user input schemas when reading JSON file on stage, added support for specifying a schema string (including implicit struct syntax) when calling DataFrame.create_dataframe, Improvemed README.md to include instructions on how to verify package signatures using cosign)
- Snowpark Library for Python 1.28.0 (Added support for the following functions in functions.py: normal, randn, added support for allow_missing_columns parameter to Dataframe.union_by_name and Dataframe.union_all_by_name, improved random object name generation to avoid collisions, improved query generation for Dataframe.distinct to generate SELECT DISTINCT instead of SELECT with GROUP BY all columns. To disable this feature, set session.conf.set("use_simplified_query_generation", False),Experimental Features: Added support for writing pyarrow Tables to Snowflake tables, Snowpark pandas API updates: added support for applying Snowflake Cortex functions Summarize and Sentiment, added support for list values in Series.str.get, Snowpark local testing updates: added support for the following functions hour, minute, added support for NULL_IF parameter to CSV reader, added support for date_format, datetime_format, and timestamp_format options when loading CSVs)
- SnowSQL 1.3.3 (Improved inference of top-level domains for accounts specifying a region in China, now defaulting to snowflakecomputing.cn with new snowflake-conenctor-python 3.13.2, Bumped pycryptodomex to version 3.21.0, Updated the build system with latest openssl 1.1.1w version)
Bug fixes:
- Ingest Java SDK 3.1.1 (Fixed issues with the Jenkins job to push artifacts to Maven, fixed the proxy settings for the OAuth HTTP client, fixed a Java formatter script and its dependencies)
- JDBC Driver 3.23.0 (Fixed wrong behavior of setting proxy in global request configurations, fixed non-empty logs when the log level is set to OFF, fixed file paths allowing triple slash file prefix (file:///) in the PUT command, exceptions thrown by uploadFileCallable are now propagated to the main thread instead of failing silently)
- Snowflake CLI 3.4.0 (fixed an MFA caching issue in the Snowflake CLI binary installation files, fixed an auto-completion issue in the Snowflake CLI binary installation files)
- Snowpark Library for Python 1.27.0 (Fixed a bug in local testing mode that caused a column to contain None when it should contain 0, Fixed a bug in StructField.from_json that prevented TimestampTypes with tzinfo from being parsed correctly, Fixed a bug in function date_format that caused an error when the input column was date type or timestamp type, Fixed a bug in DataFrame that allowed null values to be inserted in a non-nullable column, Fixed a bug in functions replace and lit which raised type hint assertion error when passing Column expression objects, Fixed a bug in pandas_udf and pandas_udtf where session parameters were erroneously ignored, Fixed a bug that raised an incorrect type conversion error for system function called through session.call)
- Snowpark Library for Python 1.28.0 (Fixed a bug where session-level query tag was overwritten by a stack trace for DataFrames that generate multiple queries. Now, the query tag will only be set to the stacktrace if session.conf.set(“collect_stacktrace_in_query_tag”, True), fixed a bug in Session._write_pandas where it was erroneously passing use_logical_type parameter to Session._write_modin_pandas_helper when writing a Snowpark pandas object, fixed a bug in options SQL generation that could cause multiple values to be formatted incorrectly, fixed a bug in Session.catalog where empty strings for database or schema were not handled correctly and were generating erroneous SQL statements, Fixed a bug in DataFrame.join that caused columns to have incorrect typing, Fixed a bug in when statements that caused incorrect results in the otherwise clause)
- SnowSQL 1.3.3 (Fixed an issue with the snowsql --version command failing when automatic upgrades are disabled (noup=False))
- Snowflake Connector for Google Analytics Raw Data 1.7.2 ()
- Snowflake Connector for ServiceNow® V2 5.17.1 (Fixed an issue where the reference columns in flattened views displayed incomplete data when the view contained data from a table with fetch_display_values enabled)
Behavior Change: 2025_01 Bundle (Disabled by Default)
Snowflake’s 2025_01 bundle includes numerous significant changes that aim to improve performance and optimize operations. The upgrade improves SQL parser and query optimization to optimize execution plans, provides more descriptive error messages to aid troubleshooting, and modifies session and transaction management to accommodate increased concurrency and improved resource handling. Changes to caching techniques and default settings, including the deprecation of legacy functionality, aim to promote current practices and reduce query latency. These advances offer huge efficiency savings but also require rigorous testing and possible tweaks to current systems to ensure smooth integration.
Conclusion
The February 2024 updates are back at a higher pace than in January, which means all teams are back from vacation. This month offers important universal availability elements, including the automated propagation of user-defined tags, data lineage tracking, and wildcard support for network policies. Today, Snowsight provides telemetry measurements, bespoke spans, and simpler connection settings generation. New preview release channels and expanded Azure native app support help Snowflake Apps. Data lake integrations, SQL functions, and AI-powered applications also clearly show notable benefits in both performance and usability. Data pipelines and rooms for data cleansing get enhancements that simplify execution and management. Client drivers and open-source tools have been revised to offer improved integration and performance. Additionally included in the update is a thorough collection of bug repairs that guarantees platform stability.
All things considered, these improvements suggest better efficiency and user experience and encourage community comments for the next iterations.
Enjoy the reading.
I am Augusto Rosa, a Snowflake Data Superhero and Snowflake SME. I am also the Head of Data, Cloud, & Security Architecture at Archetype Consulting. You can follow me on LinkedIn.
Subscribe to my Medium blog https://blog.augustorosa.com for the most interesting Data Engineering and Snowflake news.
Sources:
- https://docs.snowflake.com/en/release-notes/preview-features
- https://docs.snowflake.com/en/release-notes/new-features
- https://docs.snowflake.com/en/release-notes/sql-improvements
- https://docs.snowflake.com/en/release-notes/performance-improvements-2024
- https://docs.snowflake.com/en/release-notes/clients-drivers/monthly-releases
- https://docs.snowflake.com/en/release-notes/connectors/
- https://marketplace.visualstudio.com/items?itemName=snowflake.snowflake-vsc