LocalStack LogoLocalStack Icon

Announcing the LocalStack for Snowflake 1.3 Release

LocalStack for Snowflake 1.3 expands Snowflake Scripting capabilities, while delivering enhanced parity improvements for query execution, SHOW commands, and view operations for high-fidelity local Snowflake development.

Announcing the LocalStack for Snowflake 1.3 Release

Introduction

LocalStack for Snowflake 1.3 delivers focused improvements to Snowflake Scripting and core compatibility. This release extends support for procedural SQL by enabling RESULTSET variables, Python-only queries within procedures, and dynamic SQL execution via EXECUTE IMMEDIATE. These additions enable more comprehensive testing of stored procedures and complex scripting workflows in your local environment.

Beyond scripting enhancements, version 1.3 includes numerous parity improvements that refine query execution behavior, enhance SHOW command functionality, and strengthen compatibility with Snowflake’s view operations. These incremental updates continue to improve the accuracy and reliability of local Snowflake development workflows.

Get your free LocalStack trial to access the latest features in LocalStack for Snowflake 1.3!

How to upgrade?

To upgrade to LocalStack for Snowflake 1.3 using the LocalStack CLI, run:

Terminal window
docker pull localstack/snowflake:1.3.0
localstack start --stack snowflake

If you’re using LocalStack for Snowflake with Docker CLI or Docker Compose, you can pin the image version in your docker run command or Docker Compose file to 1.3.0.

What’s new in LocalStack for Snowflake 1.3?

Expanded Snowflake Scripting Features

The Snowflake emulator now provides extended support for Snowflake Scripting by executing Snowflake SQL procedures directly as PostgreSQL functions, allowing developers to write, execute, and test advanced procedural logic locally.

This update brings the emulator closer to full Snowflake scripting parity with the following key additions:

  • Support for RESULTSET type: Enables the use of RESULTSET variables to store query outputs, feed cursors, and return table-like results, replicating session-specific behaviors from Snowflake.
  • Support for Python-only queries: Allows execution of embedded Python queries within SQL procedures, wrapping them automatically for evaluation with correct type inference.
  • Support for EXECUTE IMMEDIATE: Adds the ability to dynamically construct and execute SQL commands at runtime inside procedures, improving flexibility for data-driven workflows. These enhancements greatly expand the scripting capabilities of the Snowflake emulator, enabling developers to test complex stored procedures and dynamic SQL logic directly within LocalStack.

Improved parity with Snowflake

We have made several enhancements to LocalStack for Snowflake to improve compatibility with the Snowflake service. These include:

  • Improved consistency and reliability of query execution by ensuring a fixed, predictable processing order across all Snowflake queries.
  • Enhanced SHOW OBJECTS to correctly parse database and schema scopes, include both tables and views, and align returned columns with Snowflake’s latest schema by adding is_hybrid and is_iceberg fields.
  • Improved handling of cross-database references in the information_schema.tables view by correctly processing both quoted and unquoted database names.
  • Enhanced support for procedures containing INSERT statements by improving SQL transformation logic to handle RETURNING clauses correctly within procedural code blocks.
  • Enhanced parity for SHOW VIEWS by including view definitions in the result set, adding support for LIKE clauses, and returning the view definition string in the text column for improved compatibility with Snowflake clients.
  • Enhanced parity for SHOW VIEWS ... IN ... queries by properly accepting database and schema scopes, adding validation for non-existent targets, and improving error handling for improved Snowflake compatibility.
  • Added support for the TIMELIMIT parameter in the GENERATOR(...) function and improved error handling by preventing null values for errorCode and errorMessage.
  • Improved handling of column aliases in SQL queries, ensuring simpler execution of statements that reference aliases and better alignment with Snowflake query behavior.
  • Enhanced support for GRANT statements involving APPLICATION ROLE, extending coverage for various role combinations, and improving compatibility with Snowflake native app scenarios.
  • Enhanced parity for DESCRIBE VIEW queries by returning accurate Snowflake-compatible column types, removing deprecated fields, and improving exception handling for better alignment with Snowflake behavior.
  • Added resultSetMetaData support for v2 Statement API responses, improving compatibility with Snowflake’s v2 API and enhancing result structure consistency.
  • Improved reliability of database operations by automatically retrying recoverable connection errors and enhancing transaction handling, resulting in more stable and consistent emulation during query execution.

Conclusion

LocalStack for Snowflake 1.3 expands the emulator’s Snowflake Scripting capabilities and refines compatibility with Snowflake’s native behavior. The enhanced Snowflake Scripting support enables more sophisticated stored procedure testing, while the extensive parity improvements ensure smoother integration with existing Snowflake workflows and tools.

Sign up for a free trial or upgrade to LocalStack for Snowflake 1.3 to leverage these improvements in your local development environment.


Harsh Mishra
Harsh Mishra
Engineer at LocalStack
Harsh Mishra is an Engineer at LocalStack and AWS Community Builder. Harsh has previously worked at HackerRank, Red Hat, and Quansight, and specialized in DevOps, Platform Engineering, and CI/CD pipelines.