Releases: snowflakedb/snowflake-connector-python
3.4.0
- 
v3.4.0(November 03,2023) - Added support for use_logical_typeinwrite_pandas.
- Removed dependencies on pycryptodomex and oscrypto. All connections now go through OpenSSL via the cryptography library, which was already a dependency.
- Fixed issue with ingesting files over 80 GB to S3.
- Added the backoff_policyargument tosnowflake.connector.connectallowing for configurable backoff policy between retries of failed requests. See available implementations in thebackoff_policiesmodule.
- Added the socket_timeoutargument tosnowflake.connector.connectspecifying socket read and connect timeout.
- Fixed login_timeoutandnetwork_timeoutbehaviour. Retries of login and network requests are now properly halted after these timeouts expire.
- Fixed bug for issue urllib3/urllib3#1878 in vendored urllib.
 
- Added support for 
3.3.1
- 
v3.3.1(October 18, 2023) - Added for non-Windows platforms command suggestions (chown/chmod) for insufficient file permissions of config files.
- Fixed issue with connection diagnostics failing to complete certificate checks.
- Fixed issue that arrow iterator causes ImportErrorwhen the c extensions are not compiled.
 
3.3.0
- 
v3.3.0(October 10,2023) - Updated to Apache arrow-nanoarrow project for result arrow data conversion.
- Introduced the NANOARROW_USAGEenvironment variable to allows switching between the nanoarrow converter and the arrow converter. Valid values include:- FOLLOW_SESSION_PARAMETER, which uses the converter configured in the server.
- DISABLE_NANOARROW, which uses arrow converter, overriding the server setting.
- ENABLE_NANOARROW, which uses the nanoarrow converter, overriding the server setting.
 
- Introduced the snowflake.connector.cursor.NanoarrowUsageenum, whose members include:- NanoarrowUsage.FOLLOW_SESSION_PARAMETER, which uses the converter configured in the server.
- NanoarrowUsage.DISABLE_NANOARROW, which uses arrow converter, overriding the server setting.
- NanoarrowUsage.ENABLE_NANOARROW, which uses the nanoarrow converter, overriding the server setting.
 
- Introduced the snowflake.connector.cursor.NANOARROW_USAGEmodule variable to allow switching between the nanoarrow converter and the arrow converter. It works in conjunction with thesnowflake.connector.cursor.NanoarrowUsageenum.
- The newly-introduced environment variable, enum, and module variable are temporary. They will be removed in a future release when switch from arrow to nanoarrow for data conversion is complete.
 
Release
- 
v3.2.1(September 26,2023) - Fixed a bug where url port and path were ignored in private link oscp retry.
- Added thread safety in telemetry when instantiating multiple connections concurrently.
- Bumped platformdirs dependency from >=2.6.0,<3.9.0 to >=2.6.0,<4.0.0.0 and made necessary changes to allow this.
- Removed the deprecation warning from the vendored urllib3 about urllib3.contrib.pyopenssl deprecation.
- Improved robustness in handling authentication response.
 
v3.3.0b1
- Version 3.3.0b1 is the snowflake-connector-python based on apache nanoarrow project, which
 reduces the package size as well as removes a hard dependency on a specific version of pyarrow.
 This version is built on top of v3.2.0, and it includes the following nanoarrow related improvements:- Updated arrow-nanoarrow dependency which improved error handling.
- Aligned error experience of handling corrupted arrow data with the GA versions.
 
Release
- 
v3.2.0(September 06,2023) - Made the parser->managerrenaming more consistent insnowflake.connector.config_managermodule.
- Added support for default values for ConfigOptions
- Added default_connection_name to config.toml file
 
- Made the 
Release
v3.1.1(August 28,2023)
- Fixed a bug in retry logic for okta authentication to refresh token.
- Support RSAPublicKeywhen constructingAuthByKeyPairin addition to raw bytes.
- Fixed a bug when connecting through SOCKS5 proxy, the attribute proxy_headeris missing onSOCKSProxyManager.
- Cherry-picked urllib3/urllib3@fd2759a onto vendored urllib3 (v1.26.15) to enable enforce_content_length by default.
- Fixed a bug in tag generation of OOB telemetry event.
Release
Version 3.1.0a2 is built on top of 3.1.0a1, including all the latest changes in the released GA version 3.1.0.
Release
v3.1.0(July 31,2023)
- 
Added a feature that lets you add connection definitions to the connections.tomlconfiguration file. A connection definition refers to a collection of connection parameters, for example, if you wanted to define a connection named `prod``:[prod] account = "my_account" user = "my_user" password = "my_password" By default, we look for the connections.tomlfile in the location specified in theSNOWFLAKE_HOMEenvironment variable (default:~/.snowflake). If this folder does not exist, the Python connector looks for the file in the platformdirs location, as follows:- On Linux: ~/.config/snowflake/, but follows XDG settings
- On Mac: ~/Library/Application Support/snowflake/
- On Windows: %USERPROFILE%\AppData\Local\snowflake\
 You can determine which file is used by running the following command: python -c "from snowflake.connector.constants import CONNECTIONS_FILE; print(str(CONNECTIONS_FILE))"- Bumped cryptography dependency from <41.0.0,>=3.1.0 to >=3.1.0,<42.0.0.
- Improved OCSP response caching to remove tmp cache files on Windows.
- Improved OCSP response caching to reduce the times of disk writing.
- Added a parameter server_session_keep_aliveinSnowflakeConnectionthat skips session deletion when client connection closes.
- Tightened our pinning of platformdirs, to prevent their new releases breaking us.
- Fixed a bug where SFPlatformDirs would incorrectly append application_name/version to its path.
- Added retry reason for queries that are retried by the client.
- Fixed a bug where write_pandasfails when user does not have the privilege to create stage or file format in the target schema, but has the right privilege for the current schema.
- Remove Python 3.7 support.
- Worked around a segfault which sometimes occurred during cache serialization in multi-threaded scenarios.
- Improved error handling of connection reset error.
- Fixed a bug about deleting the temporary files happened when running PUT command.
- Allowed to pass type_mappertofetch_pandas_batches()andfetch_pandas_all().
- Fixed a bug where pickle.dump segfaults during cache serialization in multi-threaded scenarios.
- Improved retry logic for okta authentication to refresh token if authentication gets throttled.
- Note that this release does not include the changes introduced in the previous 3.1.0a1 release. Those will be released at a later time.
 
- On Linux: 
Please check our community page for release notes.
Release
Version 3.1.0a1 is our first efforts to build snowflake-connector-python based on apache nanoarrow project, which reduces the package size as well as removes a hard dependency on a specific version of pyarrow. This version also includes the following features and bug fixes from the unreleased v3.0.5:
New Features and Improvements
- 
Added a feature that lets you add connection definitions to the config.tomlconfiguration file. A connection definition refers to a collection of connection parameters. The connection configuration name must begin with connections, similar to the following that defines the parameters for theprodconnection:[connections.prod] account = "my_account" user = "my_user" password = "my_password" By default, we look for the config.tomlfile in the location specified in theSNOWFLAKE_HOMEenvironment variable (default:~/.snowflake). If this folder does not exist, the Python connector looks for the file in theplatformdirslocation, as follows:- On Linux: ~/.config/snowflake/, but follows XDG settings
- On Mac: ~/Library/Application Support/snowflake/
- On Windows: %USERPROFILE%\AppData\Local\snowflake\
 You can determine which file is used by running the following command: python -c "from snowflake.connector.constants import CONFIG_FILE; print(str(CONFIG_FILE))"
- On Linux: 
- 
Bumped cryptography dependency from <41.0.0,>=3.1.0 to >=3.1.0,<42.0.0. 
- 
Allowed to pass type_mappertofetch_pandas_batches()andfetch_pandas_all().
- 
Added a parameter server_session_keep_aliveinSnowflakeConnectionthat skips session deletion when client connection closes.
- 
Added retry reason for queries that are retried by the client. 
- 
Improved error handling of connection reset error. 
- 
Improved OCSP response caching to remove tmp cache files on Windows. 
- 
Improved OCSP response caching to reduce the times of disk writing. 
- 
Tightened our pinning of platformdirs, to prevent their new releases breaking us. 
- 
Remove Python 3.7 support. 
Bug Fixes
- Fixed a bug where SFPlatformDirs would incorrectly append application_name/version to its path.
- Fixed a bug where write_pandasfails when user does not have the privilege to create stage or file format in the target schema, but has the right privilege for the current schema.
- Fixed a bug about deleting the temporary files happened when running PUT command.
- Fixed a bug where pickle.dump segfaults during cache serialization in multi-threaded scenarios.
- Worked around a segfault which sometimes occurred during cache serialization in multi-threaded scenarios.