Skip to content

Releases: snowflakedb/snowflake-connector-python

3.8.1

09 Apr 18:24
86ba28a
Compare
Choose a tag to compare
  • v3.8.1(April 09, 2024)

    • Reverted the change "Updated write_pandas to skip TABLE IF NOT EXISTS in truncate mode." introduced in v3.8.0 (yanked) as it's a breaking change. write_pandas will be fixed in the future in a non-breaking way.
  • v3.8.0(April 04,2024)

    • Improved externalbrowser auth in containerized environments
      • Instruct browser to not fetch /favicon on success page
      • Simple retry strategy on empty socket.recv
      • Add SNOWFLAKE_AUTH_SOCKET_REUSE_PORT flag (usage: SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true) to set the underlying socket's SO_REUSEPORT flag (described in the socket man page)
        • Useful when the randomized port used in the localhost callback url is being followed before the container engine completes port forwarding to host
        • Statically map a port between your host and container and allow that port to be reused in rapid succession with:
          SF_AUTH_SOCKET_PORT=3037 SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true poetry run python somescript.py
      • Add SNOWFLAKE_AUTH_SOCKET_MSG_DONTWAIT flag (usage: SNOWFLAKE_AUTH_SOCKET_MSG_DONTWAIT=true) to make a non-blocking socket.recv call and retry on Error
        • Consider using this if running in a containerized environment and externalbrowser auth frequently hangs while waiting for callback
        • NOTE: this has not been tested extensively, but has been shown to improve the experience when using WSL
    • 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 of system$whitelist.
    • Updated write_pandas to skip TABLE IF NOT EXISTS in truncate mode.
    • Improved cleanup logic for connection to rely on interpreter shutdown instead of the __del__ method.
    • Updated the logging level from INFO to DEBUG when logging the executed query using SnowflakeCursor.execute.
    • Fixed a bug that the truncated password in log is not masked.

3.7.1

22 Feb 23:54
7b7bbeb
Compare
Choose a tag to compare
  • v3.7.1(February 21, 2024)

    • Bumped pandas dependency from >=1.0.0,<2.2.0 to >=1.0.0,<3.0.0.
    • Bumped cryptography dependency from <42.0.0,>=3.1.0 to >=3.1.0,<43.0.0.
    • Bumped pyOpenSSL dependency from >=16.2.0,<24.0.0 to >=16.2.0,<25.0.0.
    • Fixed a memory leak in decimal data conversion.
    • Fixed a bug where write_pandas wasn't truncating the target table.
    • Bumped keyring dependency lower bound to 23.1.0 to address security vulnerability.

3.7.0

26 Jan 01:26
3cced62
Compare
Choose a tag to compare
  • v3.7.0(January 25,2024)

    • Added a new boolean parameter force_return_table to SnowflakeCursor.fetch_arrow_all to force returning pyarrow.Table in case of zero rows.
    • Cleanup some C++ code warnings and performance issues.
    • Added support for Python 3.12
    • Make local testing more robust against implicit assumptions.
    • Fixed PyArrow Table type hinting
    • 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 external browser.
    • Fixed compilation issue due to missing cstdint header on gcc13.
    • Improved config permissions warning message.

3.6.0

07 Dec 20:32
7bd365c
Compare
Choose a tag to compare
  • v3.6.0(December 09,2023)

    • Added support for Vector types
    • Changed urllib3 version pin to only affect Python versions < 3.10.
    • Support for private_key_file and private_key_file_pwd connection parameters
    • Added a new flag expired to SnowflakeConnection class, that keeps track of whether the connection's master token has expired.
    • Fixed a bug where date insertion failed when date format is set and qmark style binding is used.

3.5.0

13 Nov 20:48
7d83846
Compare
Choose a tag to compare
  • v3.5.0(November 13,2023)

    • Version 3.5.0 is the snowflake-connector-python purely built upon apache arrow-nanoarrow project.
      • Reduced the wheel size to ~1MB and installation size to ~5MB.
      • Removed a hard dependency on a specific version of pyarrow.
    • Deprecated the usage of the following class/variable/environment variable for the sake of pure nanoarrow converter:
      • Deprecated class snowflake.connector.cursor.NanoarrowUsage.
      • Deprecated environment variable NANOARROW_USAGE.
      • Deprecated module variable snowflake.connector.cursor.NANOARROW_USAGE.

3.4.1

10 Nov 00:14
ac34fd2
Compare
Choose a tag to compare
  • v3.4.1(November 08, 2023)

    • Bumped vendored urllib3 to 1.26.18
    • Bumped vendored requests to 2.31.0

3.4.0

02 Nov 23:25
bbf8aac
Compare
Choose a tag to compare
  • v3.4.0(November 03,2023)

    • Added support for use_logical_type in write_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 to snowflake.connector.connect allowing for configurable backoff policy between retries of failed requests. See available implementations in the backoff_policies module.
    • Added the socket_timeout argument to snowflake.connector.connect specifying socket read and connect timeout.
    • Fixed login_timeout and network_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.

3.3.1

18 Oct 21:48
5b61af7
Compare
Choose a tag to compare
  • 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

12 Oct 22:30
4e29385
Compare
Choose a tag to compare
  • 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 the snowflake.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

03 Oct 17:58
246eb8f
Compare
Choose a tag to compare
  • 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.