
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 snowflakeIf 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
- SQL function and expression compatibility updates
- Improved parity with Snowflake
- Security updates
- Miscellaneous
- Conclusion
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:
QUALIFYcolumn 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 ALLover a CTE combined withQUALIFYwould drop expected rows. - Nested
QUALIFYrewrites no longer create an ambiguous internal column, fixing a class of false ambiguous-column errors in layered queries. IS NULLnow evaluates correctly against a bareNULLvalue that is projected through a CTE or subquery.- Unaliased derived tables in a
JOINclause will no longer cause the query to fail. - Parenthesized queries of the form
(WITH ... SELECT ...)are no longer incorrectly rejected. WITH RECURSIVEwill 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
DECLAREblocks — includingOBJECT- andNUMBER-typed variables, and bodies containingUPDATE ... RETURNING— no longer fail to create. CREATE TASKnow supports multi-statementBEGIN ... ENDbodies.DROP STAGE IF EXISTSno 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-databindto2.18.8, addressing CVE-2026-54512 and CVE-2026-54513. - Bumped
dulwichandkclpy-extto 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.