Announcing the LocalStack for Snowflake 2026.06.0 Release

Announcing the LocalStack for Snowflake 2026.06.0 Release

LocalStack for Snowflake 2026.06.0 is now available. The headline change in this release is that the Snowflake emulator now ships as its own standalone Docker image, making it faster to pull and start. In addition, this release adds new percentile aggregate functions and continues the steady stream of SQL parity improvements across QUALIFY, CTEs, joins, SQL procedures, and scripting tasks.

Get a free LocalStack trial to access the latest fixes in LocalStack for Snowflake 2026.06.0.

How to upgrade?

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

docker pull localstack/snowflake:2026.06.0
localstack start --stack snowflake

If you’re using the lstk CLI, the first run prompts you to select a default emulator. You can select and run the Snowflake emulator from that flow as well.

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 2026.06.0.

What’s new in LocalStack for Snowflake 2026.06.0?

Snowflake now ships as a self-contained image

LocalStack for Snowflake now ships as its own standalone Docker image, rather than being loaded as an add-on into the shared LocalStack Pro image at startup. For you, that means a simpler, more reliable experience day to day: a single docker pull gets you the full Snowflake emulator, the container starts faster since it no longer has to load the emulator into a separate runtime, and Snowflake releases are no longer tied to changes happening elsewhere in the shared base image.

There’s no change to the SQL surface, the Snowflake connector experience, or how you start and configure the emulator, so no migration steps are required — you’ll just notice a snappier startup and fewer incidental issues caused by version mismatches between the base image and the Snowflake emulator.

SQL function and expression compatibility updates

This release also includes several fixes and additions to SQL functions and expressions:

Function or expression Notes
PERCENTILE_CONT / PERCENTILE_DISC New: both percentile aggregate functions are now supported, commonly used for medians, quartiles, and other distribution cutoffs.
MEDIAN Fixed to return correct results, now that it shares its underlying implementation with PERCENTILE_CONT.
UNPIVOT UNPIVOT queries no longer crash with an unhandled Python IndexError in certain shapes; they now execute or return a proper error.
GREATEST / LEAST Both functions now preserve the input type instead of coercing to a generic type, and generic MIN/MAX resolution was fixed alongside them.
ROUND Precision derivation now accommodates an increased scale, fixing incorrect results for some decimal roundings.
CONVERT_TIMESTAMP Now handles NULL inputs correctly instead of failing.
DATEDIFF Fixed handling of an unquoted date part argument when DATEDIFF is used inside a window function’s ORDER BY.

Improved parity with Snowflake

We’ve made a number of additional fixes to improve compatibility with Snowflake, mostly concentrated around QUALIFY, CTEs, joins, and SQL procedures:

  • QUALIFY column resolution is now fixed for queries that cross-join a CTE and reference a column via its CTE alias, removing false ambiguous-column errors.
  • Table qualifiers added internally during alias expansion are now quoted correctly, fixing visibility issues where a UNION ALL over a CTE combined with QUALIFY would drop expected rows.
  • Nested QUALIFY rewrites no longer create an ambiguous internal column, fixing a class of false ambiguous-column errors in layered queries.
  • IS NULL now evaluates correctly against a bare NULL value that is projected through a CTE or subquery.
  • Unaliased derived tables in a JOIN clause will no longer cause the query to fail.
  • Parenthesized queries of the form (WITH ... SELECT ...) are no longer incorrectly rejected.
  • WITH RECURSIVE will now enable recursive CTEs to be properly recognized and executed as recursive..
  • Scripting keywords used as implicit table aliases (for example, reserved words that Snowflake Scripting treats specially) are no longer misinterpreted during table reference parsing.
  • SQL procedure bodies that use DECLARE blocks — including OBJECT- and NUMBER-typed variables, and bodies containing UPDATE ... RETURNING — no longer fail to create.
  • CREATE TASK now supports multi-statement BEGIN ... END bodies.
  • DROP STAGE IF EXISTS no longer raises an error when the referenced stage doesn’t exist.
  • Fixed handling of certain boolean comparison expressions that previously produced incorrect.
  • Fixed a bug affecting character/string conversion.

Security updates

  • Bumped jackson-databind to 2.18.8, addressing CVE-2026-54512 and CVE-2026-54513.
  • Bumped dulwich and kclpy-ext to patched versions, addressing three High-severity CVEs.

Miscellaneous

  • Bumped the bundled Apache NiFi (OpenFlow) component to version 2.10.0.

Conclusion

LocalStack for Snowflake 2026.06.0 ships as a faster-starting, standalone image, adds percentile aggregate support, and continues to close SQL parity gaps around QUALIFY, CTEs, joins, and SQL procedures. Existing migration suites and test fixtures should see improved reliability, with no changes required to adopt the new image.

Sign up for a free trial or upgrade to LocalStack for Snowflake 2026.06.0 to use these fixes in your local development environment.