- v2.0.0rc2 (Sep 29, 2026)
- Pin
SQLAlchemy<2.1(floor remains>=2.0.44). SQLAlchemy 2.1.0 removedsqlalchemy.orm.context.ORMSelectCompileStateand changed other APIs the dialect and async shim import at module load time, which brokeimport snowflake.sqlalchemyoutright under the previously unbounded dependency range. - Improve stage reference handling in compiled
COPY INTOand staged-file SQL (CWE-89):ExternalStagepaths, including sub-paths created withfrom_parent_stage, are rendered safely with escaping when quoting is required. Ordinary bare-path values retain their existing rendering (SNOW-4134196). - Fix NULL_IF backslash breakout in COPY FILE_FORMAT options (SNOW-4134195).
- Support UUID and DECFLOAT values inside
VARIANTand structured types. Structured type compilers now compile their inner types against the Snowflake dialect, soARRAY/MAP/OBJECTelement, key and field types render consistently with standalone columns. The semi-structured JSON write path serializesdecimal.Decimalas a JSON string (preserving all 38 DECFLOAT digits, which a JSON number would truncate); reading one back requires an intermediate::VARCHARcast, since Snowflake rejects a directTEXT->DECFLOATcast onPARSE_JSONoutput. New opt-inenable_native_uuiddialect flag (URL parameter orcreate_engine(..., enable_native_uuid=True)) renders SQLAlchemy's genericUuidandMapped[uuid.UUID]as native SnowflakeUUIDinstead ofCHAR(32), and allowsuuid.UUIDinside semi-structured payloads. Off by default, since enabling it changes the DDL of existingUuidcolumns (SNOW-4081644).
- Pin