DEV Community

augusto kiniama rosa
augusto kiniama rosa

Posted on • Originally published at blog.archetypeconsulting.com on

The Unofficial Snowflake Monthly Release Notes: June 2025

Monthly Snowflake Unofficial Release Notes #New features #Previews #Clients #Behavior Changes

Welcome to the Unofficial Release Notes for Snowflake for June 2025! 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 month, we provide coverage up to release 9.xx (General Availability — GA). I hope to eventually extend this 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 bundle 2025_02 is generally enabled for all customers, 2025_03 is enabled by default but can be opted out until next BCR deployment, and 2025_04 is disabled by default but may be opted in.

What’s New in Snowflake

New Features

  • New maximum size limits for database objects (GA), the new maximum allowed length for columns of type VARCHAR, VARIANT, ARRAY, and OBJECT is 128 MB, and the new maximum allowed length for columns of type BINARY, GEOGRAPHY, and GEOMETRY is 64 MB
  • Workspaces in Snowsight (Preview), Provides a unified editor for creating, organizing, and managing code across multiple file types to analyze data, develop models, and build pipelines
  • Budgets: Using tags to add objects, Add a tag to a custom budget to specify objects to monitor. When you add a tag/value pair, all objects with that pair are monitored
  • Premium views in the organization account (GA), The ORGANIZATION_USAGE schema in the organization account has premium views that aggregate account usage across accounts, not present in the schema of a regular ORGADMIN account, and cause extra storage and compute costs
  • Query insights, offer insights on conditions affecting query performance, including messages explaining potential impacts and recommended next steps
  • Defining semantic views (GA), ability to define semantic views, which Cortex Analyst can leverage the information in the semantic view definition and generate the SQL against the physical tables directly
  • Querying semantic views (GA), use a SELECT statement to query a semantic view by specifying the SEMANTIC_VIEW clause. In this clause, you specify the dimensions and metrics that you want to retrieve

, Snowsight Updates

  • Snowsight templates in trial accounts (GA), provide trial users with a series of interactive introductions where they can discover and test Snowflake features and use cases
  • Integrations in Snowsight Preview (Preview), manage all your integrations in the UI
  • Task Overview and Graph Run History updates (GA), Account level overview of all task graphs based on task monitoring privileges, See status and duration stats for recent runs, Manually run, retry, edit or suspend tasks in one place, and Access task graph run details from the overview or the task-level

AI Updates (Cortex, ML, DocumentAI)

  • Snowflake Multi-Node ML Jobs (Preview), enables you to run distributed machine learning (ML) workflows inside Snowflake ML container runtimes across multiple compute nodes
  • Snowflake Cortex AISQL (Preview), powerful AI capabilities directly into Snowflake’s SQL engine. Cortex AISQL helps build scalable AI pipelines across multimodal enterprise data with familiar SQL commands. You can now process text and images faster and more cost-effectively while gaining deeper insights from structured and unstructured data
  • AI_CLASSIFY supports up to 500 labels and multi-label classification
  • Snowflake Copilot inline (Preview), expansion of the existing Snowflake Copilot experience that gives you the ability to query Snowflake Copilot from within your SQL code

Snowflake Applications (Container Services, Notebooks and Applications, Snowconvert)

  • Artifact Repository (GA), allows you to directly use Python packages from the Python Package Index (PyPI) within Snowpark Python user-defined functions (UDFs) and stored procedures
  • Snowflake Native App Framework updates, including features that help providers develop apps to create objects in consumer accounts and assist consumers in configuring apps during installation and upgrades
  • Automated granting of privileges (Preview), In the manifest file, providers can specify the privileges an app needs. When a user installs or upgrades the app, Snowflake automatically grants these privileges
  • Customized runtime environments in Warehouse notebooks (Preview), You can update the Python version in Warehouse notebooks via the Create Notebook or Settings dialog
  • Restricted caller’s rights (Preview), Snowflake Native App Framework supports using restricted caller’s rights in stored procedures and Snowpark Container Services service in an app
  • Feature policies(Preview), Snowflake Native App Framework allow consumers to restrict the types of objects an app can create
  • Support for Snowflake ML in Snowflake Native Apps(Preview), providers can include access to pre-trained models in an app or train a model after the app is installed
  • App specifications (Preview), allow providers to request consumer permission for external connections via external access or security integrations. Consumers must approve app specifications during configuration after installation or upgrade
  • SnowConvert 1.9 — New features: Hive SQL Support conversion of Tables and Views to Snowflake. This feature includes support for the following: Tables, Views, Types and Built-in Functions
  • SnowConvert 1.9 — New features: Vertica Support (supports the conversion of Tables and Views to Snowflake. This feature includes support for the following: Translation of Tables, Translation of Views, Translation of Data Types, Translation of Built-in Functions and Translation for common Language Elements), and Other Improvements: PostgreSQL Support (Support for ARRAY type in tables, Support for Timezone built-in function, Support for ANY & ALL array expression, Parsing support for Geometry data type), and SparkSQL-DatabricksSQL (support for External Tables)
  • SnowConvert 1.8 — new features: SparkSQL and DatabricksSQL (conversion of Tables and Views to Snowflake. This feature includes support for the following: Translation of Regular Tables, Translation of Views, Translation of SELECT, Translation of Data Types, and Translation of Built-in Functions)
  • SnowConvert 1.7.1 — general: Improvements to the UI source platform dropdown

Data Lake Updates

  • Support for streams on unmanaged Apache Iceberg™ tables with row-level deletes
  • Expands coverage of the Query Acceleration Service (QAS) to Apache Iceberg™ tables, QAS can now improve the performance of queries on Iceberg tables

Data Pipelines/Data Loading/Unloading Updates

  • Clone dynamic tables as tables (GA), Clone dynamic tables as regular tables; clones inherit column definitions and data but lack dynamic-specific properties
  • dbt Projects on Snowflake(Preview), lets you use familiar Snowflake features to create, edit, test, run, and manage dbt Core projects
  • Snowpipe Streaming with high-performance architecture (Preview), next-generation implementation delivers significantly enhanced throughput and optimized streaming performance with a predictable, throughput-based pricing model (credits per uncompressed GB)

Security, Privacy &Governance Updates

  • Malicious IP Protection, this service automatically protects all types of Snowflake accounts by blocking network access and login attempts that originate from known, malicious IP addresses, and It is enabled by default and does not require any configuration by administrators
  • Findings Lifecycle Management(FLM), a Trust Center feature that lets you manage, filter, and proactively respond to violations with auditable controls

SQL, Extensibility & Performance Updates

  • UNION BY NAME operator, Use this operator to combine rows by name rather than position. When combined with UNION BY NAME, missing columns are filled with NULL
  • Snowflake Scripting supports nested stored procedures (GA), define nested stored procedures in Snowflake Scripting anonymous blocks and stored procedures. A nested stored procedure only exists in the scope of its block and can be called in from any section of its block (DECLARE, BEGIN … END, and EXCEPTION)

Data Clean Rooms Updates

  • Analysis name and schedule run edit location update: Users can now find the element to run or edit an analysis at the top of the Analyses & Queries page. To edit the analysis name, hover over it and click the edit icon
  • Change in provider analysis flow: Previously, providers could submit requests before mounting logs, which queued the request. Now, they must mount logs first to submit analysis requests. This update speeds up provider-run analysis

Open-Source Updates

  • terraform-snowflake-provider 2.2.0 ( Compute Pools : Add Compute Pool resource, Add Compute Pools data source, Add Compute pools integration tests, Add Compute pools to SDK with support for tagging, Git Repositories : Add git repository data source, Add git repository definition, Add git repository resource, Add managing tags and integration tests for git repositories, Git repository code refactor, Image Repositories : Add Image Repository data source, Add Image Repository resource, Support managing tags for image repositories, Services & Jobs : Add service resource, Add services data source, Add services to SDK part 1, Add tag association support for services, Add templates support to services and job services, Add job service resource, Add EXECUTE JOB support to SDK, Recreate service objects on externally changed type, Cortex Search Service : Add embedding model support to Cortex Search Service, Allow granting privileges on future Cortex Search Services, Accounts : Add current account resource, Get data source tables on par with views, and others)
  • terraform-snowflake-provider 1.0.6 (bug fix Fix account parameter mapping)
  • terraform-snowflake-provider 1.1.1 (bug fix Fix account parameter mapping)
  • terraform-snowflake-provider 1.2.2 (bug fix Fix account parameter mapping)
  • terraform-snowflake-provider 2.0.1 (bug fix Fix account parameter mapping)
  • terraform-snowflake-provider 2.1.1 (bug fix account parameter mapping)
  • Modin 0.33.2 (Stability and Bugfixes: Preserve dtypes when inserting column to empty frame, Fix name ambiguity for value_counts() on Pandas backend, Log backend switching information with the modin logger, Update testing suite, Allow xgboost to log to root, Fix test_pickle by correctly using fixtures, Uncategorized improvements)
  • Snowflake VS Code Extension 1.14.1 ( Bug Fixes : SnowConvert Migration Assistant, EWI coverage improved for Redshift and Teradata, Prevent unexpected focus changes in the assistant view, Fix alignment of chat elements around scrollbar, Internals : Upgraded snowflake-sdk to 2.1.0)
  • Snowflake VS Code Extension 1.15.0 (Support username/password with MFA time-based one-time password (TOTP) for login, Support passcode field in connection configuration TOML files, SnowConvert Migration Assistant, EWI coverage improved for Informatica and SSIS)
  • Snowflake VS Code Extension 1.15.1 (Improved SnowConvert Migration Assistant execution telemetry)
  • Snowflake VS Code Extension 1.16.0 ( Bug Fixes: Fixed a statement boundary bug when executing BEGIN TRANSACTION containing the Snowflake flow operator pipel; Internals : Upgraded to use 1.3.0 of Snowflake SQL Language Server, Enhanced Cortex AI integration with REST API support for improved performance)
  • Snowflake VS Code Extension 1.16.1 (Reverts to v1.15.1 to temporarily address extension regression)
  • Streamlit 1.46.0 (Add stack trace info to missing label warning, added server.FolderWatchList to cli + LocalSourcesWatcher, [AdvancedLayouts] Adds a width parameter to st.code, [AdvancedLayouts] Adds a width parameter to st.json, [AdvancedLayouts] Adds a width parameter to st.help, [AdvancedLayouts] Adds a width parameter to st.progress, [AdvancedLayouts] Adds a width parameter to st.audio_inputm [AdvancedLayouts] Adds a width parameter to st.slider, st.select_slider, [AdvancedLayouts] Adds a width parameter to st.camera_input and st.file_uploader, [AdvancedLayouts] Adds a width parameter to st.text_input and st.text_area, [AdvancedLayouts] Adds a width parameter to st.number_input and st.selectbox , [AdvancedLayouts] Adds a width parameter to st.date_input and st.time_input, Allow nesting expander, columns, popover and chat_message, Fix #10475: Warn when modifying elements inside fragment callback, Make Carto the default map provider (like in PyDeck), Remove set_page_config restrictions, [AdvancedLayouts] Adds a width parameter to st.chat_input and st.chat_message,[AdvancedLayouts] Adds st.column(gap=”none”), [AdvancedLayouts] Adds a width parameter to st.video and st.audio, Add a new config option to configure a CORS allowlist by @vdonato in #11377 [AdvancedLayouts] Extend height param on code to support new options, Fix: StreamlitDuplicateElementId when same widget is both in the main and sidebar area, [AdvancedLayouts] Adds a width parameter to st.latex and st.divider, Serve manifest.json from static asset handler, Always show dataframe row selection checkboxes, [AdvancedLayouts] Adds a width parameter to st.tabs and st.expander, [AdvancedLayouts] Adds a width parameter to st.status, [AdvancedLayouts] Adds a width and height parameters to st.form, Add buttonRadius theming config option, Rename backend base url window variables to use __streamlit object, Small improvements to Streamlit Hello, [AdvancedLayouts] Change to use None instead of “none” for column gap size, Add dataframeBorderColor theming config option, Add support for config & secret files on main-script level, [AdvancedLayouts] Adds a width parameter to st.text, [AdvancedLayouts] Adds a width parameter to st.metric, [AdvancedLayouts] Adds a width parameter to st.color_picker, [AdvancedLayouts] Adds a width parameter to st.title, st.subheader, and st.header, [AdvancedLayouts] Adds a width parameter to st.toggle and st.checkbox, Add Button for Copying Exception Messages, [AdvancedLayouts] Adds a width parameter to st.radio, [AdvancedLayouts] Adds a width parameter to st.spinner, Fully support weight and unicode-range in, [feat] Add Japanese yen as a NumberColumn & ProgressColumn format option, [AdvancedLayouts] Adds a width parameter to st.caption, st.markdown and st.badge, st.navigation(position=’top’), Bug Fixes : Fix data editor when adding and deleting rows, Fix content alignment for dataframe columns, Ensure script lifecycle occurs for MPAv1 use case, Ensure filename extension check is normalized, Allow the ability to add case sensitive options to select and multiselect, Handle visual glitch for duplicated options, Provide more predictable fuzzy matching, Scroll long latex formulas horizontally, Add safeguard for cached messages cleanup, [Fix]: Update st.column_config “localized” option, [Fix] st.dataframe: clear row selections on dropdown sort, Exclude tornado 6.5.0 version, [Fix] Add rows preserves styling properties, Fix crash when editing df index with data editor, Tweak markdown styling for task lists & blockquote, Tighten up sidebar width (and therefore padding, scrollbars, popover widgets), [FIX] — Negative Values not displayed in ChartColumn, Altair chart left side cut off on initial load if legend, Allow usage of 3000 as app port, Fixed issue gh-11327: Plotly chart reset axes not working after reset, Fix number column rounding issue, Update vega interpreter dependency to fix datetime issue, Use private token in st.map, Fix watcher metaclass conflict with torch.classes, [Fix] Enum formatting not working with styled dataframes, Fix with date range selected in st.date_input, hovered dates should change color, Preserve leading whitespaces in markdown codeblock, Fixed bug 11330 st.context.timezone becomes empty, Scroll element into view race condition fix, Upgrade Source (Sans|Serif|Code) font versions)
  • Streamlit 1.46.1 (general fixes)

Client, Driver,s, Libraries and Connectors Updates

New features:

  • .NET driver 4.7.0 (Private Preview (PrPr) features: added support for Workflow Identity Federation in the AWS, Azure, GCP, and Kubernetes platforms)
  • .NET driver 4.6.0 (Added support for virtual style domains in Google Cloud Storage (GCS), Added a time duration to the logs for HTTPS calls, Added a cleaning query context cache before pooling a connection)
  • Ingest Java SDK 4.0.1 (Upgraded the JDBC version to 3.24.2)
  • ODBC 3.9.0 (Private Preview (PrPr) features Added support for Workflow Identity Federation in the AWS, Azure, GCP, and Kubernetes platforms, New features: Added the LOCAL_APPLICATION default for the oauth_client_id and oauth_client_secret OAUTH parameters, Extended the Windows UI of the ODBC driver with key-pair authentication parameters PRIV_KEY_FILE and PRIV_KEY_FILE_PWD, Added support virtual-style domains, Added the DriverManagerOverride configuration parameter, which allows specifying the driver manager on Linux and MacOS)
  • Snowflake CLI 3.9.1 (Added the --private-link option to snow spcs image-registry login command to log in using private link URLs)
  • Snowflake Connector for Spark 3.1.2 (Upgraded JDBC to version 3.24.2 to incorporate a bug fix for the Java TrustManager, Upgraded the parquet-avro library to mitigate security vulnerabilities)
  • Snowflake Python API 1.6.0 (Optionalized the query and column parameters in QueryRequest for the Cortex Search service API)
  • Snowpark Library for Python 1.33.0 ( New features : Added support for MySQL in DataFrameWriter.dbapi (Private Preview) for both Parquet and UDTF-based ingestion, added support for PostgreSQL in DataFrameReader.dbapi (Private Preview) for both Parquet and UDTF-based ingestion, added support for Databricks in DataFrameWriter.dbapi (Private Preview) for UDTF-based ingestion, consolidating with other mentions of Databricks support, dded support to DataFrameReader to enable use of PATTERN when reading files with INFER_SCHEMA enabled, added support for the following AI-powered functions in functions.py: ai_complete, ai_similarity, ai_summarize_agg (originally summarize_agg), different config options for ai_classify, added support for more options when reading XML files with a row tag using rowTag option: added support for removing namespace prefixes from column names using ignoreNamespace option, added support for specifying the prefix for the attribute column in the result table using attributePrefix option, added support for excluding attributes from the XML element using excludeAttributes option, added support for specifying the column name for the value when there are attributes in an element that has no child elements using valueTag option, added support for specifying the value to treat as a null value using nullValue option, added support for specifying the character encoding of the XML file using charset option, added support for ignoring surrounding whitespace in the XML element using ignoreSurroundingWhitespace option, added support for parameter return_dataframe in Session.call, which can be used to set the return type of the functions to a DataFrame object, added a new argument to Dataframe.describe called strings_include_math_stats that triggers stddev and mean to be calculated for String columns, added support for retrieving Edge.properties when retrieving lineage from DGQL in DataFrame.lineage.trace, added a parameter table_exists to DataFrameWriter.save_as_table that allows specifying if a table already exists. This allows skipping a table lookup that can be expensive, Snowpark Local testing Updates : Added support for snow URLs (snow://) in local file testing, Snowpark pandas API Dependency : Updated modin dependency constraint from 0.32.0 to >=0.32.0, <0.34.0. The latest version tested with Snowpark pandas is modin 0.33.1, Snowpark pandas API New features : Added support for Hybrid Execution (Private Preview). By running from modin.config import AutoSwitchBackend; AutoSwitchBackend.enable(), pandas on Snowflake automatically chooses whether to run certain pandas operations locally or on Snowflake. This feature is disabled by default, Snowpark pandas API Improvements : Set the default value of the index parameter to False for DataFrame.to_view, Series.to_view, DataFrame.to_dynamic_table, and Series.to_dynamic_table, Added iceberg_version option to table creation functions, Reduced query count for many operations, including insert, repr, and groupby, that previously issued a query to retrieve the input data’s size)
  • Snowpark Library for Scala and Java 1.16.0 (Improvements: Upgraded Snowflake JDBC to 3.24.2, Added support for empty input Seq in Column.in, Added support for creating views from Union results)
  • SQLAlchemy 1.7.4 (Updated README.md to include instructions on how to verify package signatures using cosign)
  • Snowflake Connector for ServiceNow® V2 5.23.0 (Behavior changes: For records in the sys_created_on or sys_updated_on columns with null values, the connector inserts an update event only when the record has changed since the last ingestion. Previously, the connector inserted an update event to the event log table during each ingestion cycle, regardless of whether the record changed. This behavior could cause the event log table to grow indefinitely, even if no changes were found in the table)

Bug fixes:

  • .NET Driver 4.7.0 (Set ConfigureAwait(false) for asynchronous Programmatic Access Token authentications, Fixed an issue with the missing OAuthClientSecret parameter provided externally to a connection string when creating sessions that use the MinPoolSize feature)
  • .NET Driver 4.6.0 (Enabled returning result sets for DML operations, Added refreshing of expired sessions when fetching operation results)
  • JDBC Driver 3.18.1 (Fixed an issue with initializing a trust manager with the default JVM algorithm for trust managers)
  • JDBC Driver 3.17.1 (Fixed an issue with initializing a trust manager with the default JVM algorithm for trust managers)
  • JDBC Driver 3.21.1 (Fixed an issue with initializing a trust manager with the default JVM algorithm for trust managers)
  • JDBC Driver 3.20.1 (Fixed an issue with initializing a trust manager with the default JVM algorithm for trust managers)
  • JDBC Driver 3.22.1 (Fixed an issue with initializing a trust manager with the default JVM algorithm for trust managers)
  • ODBC 3.9.0 (Fixed the incorrect error thrown by fetching the cancellation request, Fixed a possible crash triggered by using bulk fetching first (retrieve multiple rows per fetch call), then switching to single row mode, Fixed the issue when handling easy-logging configuration could break the connection, Fixed an OCSP validation issue on session resuming that could lead to out of memory problem)
  • Snowpark Library for Python 1.33.0 (Fixed a bug in DataFrameReader.dbapi (Private Preview) where the create_connection defined as local function was incompatible with multiprocessing, Fixed a bug in DataFrameReader.dbapi (Private Preview) where Databricks TIMESTAMP type was converted to Snowflake TIMESTAMP_NTZ type which should be TIMESTAMP_LTZ type, Fixed a bug in DataFrameReader.json where repeated reads with the same reader object would create incorrectly quoted columns, Fixed a bug in DataFrame.to_pandas() that would drop column names when converting a DataFrame that did not originate from a select statement, Fixed a bug where DataFrame.create_or_replace_dynamic_table raises an error when the DataFrame contains a UDTF and SELECT * in the UDTF is not parsed correctly, fixed a bug where casted columns could not be used in the values clause of functions, Improvements Improved the error message for Session.write_pandas() and Session.create_dataframe() when the input pandas DataFrame does not have a column, Improved: DataFrame.select when the arguments contain a table function with output columns that collide with columns of current DataFrame. With the improvement, if user provides non-colliding columns in df.select(“col1”, “col2”, table_func(…)) as string arguments, then the query generated by Snowpark client will not raise ambiguous column error, Improved DataFrameReader.dbapi (Private Preview) to use in-memory Parquet-based ingestion for better performance and security, Improved DataFrameReader.dbapi (Private Preview) to use MATCH_BY_COLUMN_NAME=CASE_SENSITIVE in copy into table operation, Snowpark Local testing Bug fixes: Fixed a bug in Column.isin that would cause incorrect filtering on joined or previously filtered data, Fixed a bug in snowflake.snowpark.functions.concat_ws that would cause results to have an incorrect index, )
  • Snowpark Library for Scala and Java 1.16.0 (Fixed a wrong order issue when merging a Dataframe)
  • SQLAlchemy 1.7.4 (Fixed a dependency on DESCRIBE TABLE columns quantity (differences in columns caused by Snowflake parameters), Fixed an unnecessary condition that caused issues when parsing StructuredTypes columns)
  • Snowflake Connector for ServiceNow® V2 5.24.0 (Fixed an issue that could cause the metadata tables to be ingested incorrectly during reload when the connector is globally configured to fetch display values. As a result of this issue, flattened views were not created for some tables. If this issue occurred, the following metadata tables had to be reloaded: sys_dictionary, sys_db_object and sys_glide_object)
  • Snowflake Connector for ServiceNow® V2 5.23.0 (Increased the range of page sizes that the connector tries during filtered ingestion. When fetching data, the connector should now be more resilient to timeout errors that come from the ServiceNow® API, fixed the internal cleanup job to retain internal connector information that is needed to perform ingestion. Previously, when this information was removed, it could cause ingestion failures, and fixed an error during the creation of flattened views. This error was caused by a missing column in the internal connector table)

Conclusion

June 2025 was the month of the Snowflake Summit, so many announcements happened during that week, while the week or two after go a little quiet after the party. Many of the releases work towards AI integration via Snowflake Cortex and Copilot simplifies building intelligent applications, while expanding the Native App Framework and Container Services helps developers build and deploy on the platform. Performance boosts like Snowpipe Streaming and query acceleration for Iceberg tables show its goal: offering a unified environment for data engineering, AI/ML, and application development.

This strategic evolution focuses on enhancing developer productivity and expanding interoperability within the broader data ecosystem. By improving tools like SnowConvert for easier migration and heavily investing in open-source connectors and libraries such as the Terraform provider and Streamlit, Snowflake is lowering the barrier to entry and fostering a more integrated experience. Most importantly, dbt inside Snowflake is a fantastic addition. For businesses, this translates into a more powerful, secure, and versatile platform capable of not only managing and governing data but also serving as the central engine for building the next generation of data-intensive applications and AI-driven insights.

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:


Top comments (0)