Skip to content

Releases: snowflakedb/snowflake-connector-python

Release

27 Jan 21:10
1885b3e
Compare
Choose a tag to compare

Behavior Changes

  • Fixed a bug where write_pandas did not use user-specified schemas and databases to create intermediate objects

New Features and Updates

  • Bumped pyarrow dependency from >=8.0.0,<8.1.0 to >=10.0.1,<10.1.0
  • Bumped pyOpenSSL dependency from <23.0.0 to <24.0.0
  • During browser-based authentication, the SSO url is now printed before opening it in the browser
  • Increased the level of a log for when ArrowResult cannot be imported
  • Added a minimum MacOS version check when compiling C-extensions

Bug Fixes

  • Fixed a bug where the HTTP 429 response code was not retried
  • Fixed a bug where MFA token caching was not working

Please check our community page for release notes.

Release

21 Dec 19:07
580c0ae
Compare
Choose a tag to compare

New Features

  • Reworked authentication internals to allow users to plug custom key-pair authenticators.
  • Multi-statement query execution is now supported through cursor.execute and cursor.executemany.
    • The Snowflake parameter MULTI_STATEMENT_COUNT can be altered at the account, session, or statement level. An additional argument, num_statements, can be provided to execute to use this parameter at the statement level. It must be provided to executemany to submit a multi-statement query through the method. Note that bulk insert optimizations available through executemany are not available when submitting multi-statement queries.
      • By default the parameter is 1, meaning only a single query can be submitted at a time.
      • Set to 0 to submit any number of statements in a multi-statement query.
      • Set to >1 to submit the specified exact number of statements in a multi-statement query.
    • Bindings are accepted in the same way for multi-statements as they are for single statement queries.
    • Asynchronous multi-statement query execution is supported. Users should still use get_results_from_sfqid to retrieve results.
    • To access the results of each query, users can call SnowflakeCursor.nextset() as specified in the DB 2.0 API (PEP-249), to iterate through each statements results.
      • The first statement's results are accessible immediately after calling execute (or get_results_from_sfqid if asynchronous) through the existing fetch*() methods.

Bug Fixes

  • Fixed a bug where the permission of the file downloaded via GET command is changed.

Released to PyPI on December 14, 2022

Release

29 Nov 00:48
abdd6b9
Compare
Choose a tag to compare
  • Bumped cryptography dependency from <39.0.0 to <41.0.0
  • Fixed a bug where expired OCSP response cache caused infinite recursion during cache loading

Release

19 Nov 01:34
d016d81
Compare
Choose a tag to compare
  • Improved performance of OCSP response caching
  • During the execution of GET commands we no longer resolve target location on the local machine
  • Improved performance of regexes used for PUT/GET SQL statement detection. CVE-2022-42965

Release

02 Nov 19:30
88843f8
Compare
Choose a tag to compare
  • Bumped cryptography dependency from <37.0.0 to <39.0.0
  • Bumped pandas dependency from <1.5.0 to <1.6.0
  • Fixed a bug where write_pandas wouldn't write an empty DataFrame to Snowflake
  • When closing connection async query status checking is now parallelized
  • Fixed a bug where test logging would be enabled on Jenkins workers in non-Snowflake Jenkins machines
  • Enhanced the atomicity of write_pandas when overwrite is set to True

Release

27 Sep 22:39
530d441
Compare
Choose a tag to compare
  • Fixed a bug where rowcount was deleted when the cursor was closed
  • Fixed a bug where extTypeName was used even when it was empty
  • Updated how telemetry entries are constructed
  • Added telemetry for imported root packages during run-time
  • Added telemetry for using write_pandas
  • Fixed missing dtypes when calling fetch_pandas_all() on empty result
  • The write_pandas function now supports providing additional arguments to be used by DataFrame.to_parquet
  • All optional parameters of write_pandas can now be provided to pd_writer and make_pd_writer to be used with DataFrame.to_sql

Release

25 Aug 00:45
e145e62
Compare
Choose a tag to compare
  • Fixed a bug where timestamps fetched as pandas.DataFrame or pyarrow.Table would overflow for the sake of unnecessary precision. In the case where an overflow cannot be prevented a clear error will be raised now.
  • Added in-file caching for OCSP response caching
  • The write_pandas function now supports transient tables through the new table_type argument which supersedes create_temp_table argument
  • Fixed a bug where calling fetch_pandas_batches incorrectly raised NotSupportedError after an async query was executed

Release

28 Jul 19:07
253b2ce
Compare
Choose a tag to compare
  • Added minimum version pin to typing_extensions

Release

25 Jul 21:28
Compare
Choose a tag to compare
  • Release wheels are now built on manylinux2014
  • Bumped supported pyarrow version to >=8.0.0,<8.1.0
  • Updated vendored library versions requests to 2.28.1 and urllib3 to 1.26.10
  • Added in-memory cache to OCSP requests
  • Added overwrite option to write_pandas
  • Added attribute lastrowid to SnowflakeCursor in compliance with PEP249.
  • Fixed a bug where gzip compressed http requests might be garbled by an unflushed buffer
  • Added new connection diagnostics capabilities to snowflake-connector-python
  • Bumped numpy dependency from <1.23.0 to <1.24.0

Release

11 Jul 17:26
efeaeb1
Compare
Choose a tag to compare
  • Fixed a bug where errors raised during get_results_from_sfqid() were missing errno
  • Fixed a bug where empty results containing GEOGRAPHY type raised IndexError