Releases: snowflakedb/snowflake-connector-python
3.4.0
-
v3.4.0(November 03,2023)
- Added support for
use_logical_type
inwrite_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_policy
argument tosnowflake.connector.connect
allowing for configurable backoff policy between retries of failed requests. See available implementations in thebackoff_policies
module. - Added the
socket_timeout
argument tosnowflake.connector.connect
specifying socket read and connect timeout. - Fixed
login_timeout
andnetwork_timeout
behaviour. 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
ImportError
when 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_USAGE
environment 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.NanoarrowUsage
enum, 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_USAGE
module variable to allow switching between the nanoarrow converter and the arrow converter. It works in conjunction with thesnowflake.connector.cursor.NanoarrowUsage
enum. - 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
->manager
renaming more consistent insnowflake.connector.config_manager
module. - 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
RSAPublicKey
when constructingAuthByKeyPair
in addition to raw bytes. - Fixed a bug when connecting through SOCKS5 proxy, the attribute
proxy_header
is 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.toml
configuration 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.toml
file in the location specified in theSNOWFLAKE_HOME
environment 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_alive
inSnowflakeConnection
that 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_pandas
fails 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_mapper
tofetch_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.toml
configuration 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 theprod
connection:[connections.prod] account = "my_account" user = "my_user" password = "my_password"
By default, we look for the
config.toml
file in the location specified in theSNOWFLAKE_HOME
environment variable (default:~/.snowflake
). If this folder does not exist, the Python connector looks for the file in theplatformdirs
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 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_mapper
tofetch_pandas_batches()
andfetch_pandas_all()
. -
Added a parameter
server_session_keep_alive
inSnowflakeConnection
that 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_pandas
fails 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.