Snowflake Connector for Python release notes for 2024¶
This article contains the release notes for the Snowflake Connector for Python, including the following when applicable:
Behavior changes
New features
Customer-facing bug fixes
Snowflake uses semantic versioning for Snowflake Connector for Python updates.
Version 3.10.0 (April 29, 2024)¶
New features and updates¶
Added support for structured types to
fetch_pandas_all
.
Bug fixes¶
Fixed an issue relating to incorrectly formed China S3 endpoints.
Version 3.9.1 (April 22, 2024)¶
New features and updates¶
Fixed an issue that caused a HTTP 400 error when connecting to a China endpoint.
Bug fixes¶
None.
Version 3.9.0 (April 18, 2024)¶
New features and updates¶
Added support for log settings in a logging configuration file.
Improved S3 acceleration logic when connecting to a China endpoint.
Bug fixes¶
None.
Version 3.8.1 (April 09, 2024)¶
New features and updates¶
Improved
externalbrowser
authentication in containerized environments:Instructs the browser to not fetch
/favicon
on a success page.Uses a simple retry strategy for an empty
socket.recv
call.Adds a
SNOWFLAKE_AUTH_SOCKET_REUSE_PORT
flag (SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true
) to set the underlying socket’sSO_REUSEPORT
flag (as described in the socket man page).Setting this flag can be useful when the randomized port used in the localhost callback url is being followed before the container engine completes port forwarding to host.
You can then statically map a port between your host and container and allow that port to be reused in rapid succession with a command similar to the following:
SF_AUTH_SOCKET_PORT=3037 SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true poetry run python somescript.py
Adds a
SNOWFLAKE_AUTH_SOCKET_MSG_DONTWAIT
flag (SNOWFLAKE_AUTH_SOCKET_MSG_DONTWAIT=true
) to make a non-blockingsocket.recv
call and retry on an error.
Added support for parsing structured type information in schema queries.
Bumped
platformdirs
from >=2.6.0,<4.0.0 to >=2.6.0,<5.0.0.Updated diagnostics to use
system$allowlist
instead ofsystem$whitelist
.Improved the cleanup logic so connections now rely on an interpreter shutdown instead of the
__del__
method.Updated the logging level from INFO to DEBUG when logging the executed query using
SnowflakeCursor.execute
.
Bug fixes¶
Fixed a bug that the truncated password in log is not masked.
Version 3.7.1 (February 22, 2024)¶
New features and updates¶
Bumped the following dependencies:
pandas from version >=1.0.0,<2.2.0 to >=1.0.0,<3.0.0
cryptography from version <42.0.0,>=3.1.0 to >=3.1.0,<43.0.0
pyOpenSSL from version >=16.2.0,<24.0.0 to >=16.2.0,<25.0.0
Bumped the keyring dependency lower bound to version 23.1.0 to address a security vulnerability.
Bug fixes¶
Fixed a memory leak in decimal data conversion.
Fixed a bug where
write_pandas
wasn’t truncating the target table.
Version 3.7.0 (January 26, 2024)¶
New features and updates¶
Added support for Python 3.12.
Added a new Boolean
force_return_table
parameter toSnowflakeCursor.fetch_arrow_all
to force returningpyarrow.Table
in case of zero rows.Cleanup some C++ code warnings and performance issues.
Made local testing more robust against implicit assumptions.
Added support for connecting using an existing connection via the session and master token.
Added support for connecting to Snowflake by authenticating with multiple SAML IDP using an external browser.
Improved configuration permissions warning message.
Bug fixes¶
Fixed an issue with PyArrow Table type hinting.
Fixed a compilation issue due to a missing
cstdint
header on gcc13.