Releases: snowflakedb/snowflake-connector-python
Releases · snowflakedb/snowflake-connector-python
Release
New Features and Improvements
- Added the json_result_force_utf8_decoding connection parameter to force decoding JSON content in utf-8 when the result format is JSON.
- Bumped vendored library urllib3 to 1.26.15
- Bumped vendored library requests to 2.29.0
- Bumped pandas dependency from <1.6.0,>=1.0.0 to >=1.0.0,<2.1.0
- Add support for Geometry types.
Bug Fixes
- Fixed a bug in which cursor.execute() could modify the argument statement_params dictionary object when executing a multistatement query.
- Fixed a bug in which we cannot call SnowflakeCursor.nextset before fetching the result of the first query if the cursor runs an async multistatement query.
- Fixed a bug when _prefetch_hook() was not called before yielding results of execute_async().
- Fixed a bug where some ResultMetadata fields were marked as required when they were optional.
- Fixed a bug where bulk insert converts date incorrectly.
Please check our community page for release notes.
Release
New Features and Improvements
- Added a parameter that allows users to skip file uploads to stage if file exists on stage and contents of the file match.
- Improved type hint of SnowflakeCursor.executemethod.
- Improved GET logging to warn when downloading multiple files with the same name.
Bug Fixes
- Fixed a bug that prints error in logs for GET command on GCS.
- Fixed a bug that occurred when writing a Pandas DataFrame with non-default index in snowflake.connector.pandas_tool.write_pandas.
- Fixed a bug that occurred when writing a Pandas DataFrame with column names containing double quotes in snowflake.connector.pandas_tool.write_pandas.
- Fixed a bug that occurred when writing a Pandas DataFrame with binary data in snowflake.connector.pandas_tool.write_pandas.
Please check our community page for release notes.
Release
New Features
- Improved logging to mask tokens in case of errors.
- Validate SSO URL before opening it in the browser for External browser authenticator.
Bug Fixes
- Fixed a memory leak in the logging module of the Cython extension.
- Fixed a bug where the put command on AWS raised AttributeError when uploading file composed of multiple parts.
- Fixed a bug of incorrect type hints of SnowflakeCursor.fetch_arrow_all and SnowflakeCursor.fetchall.
- Fixed a bug where snowflake.connector.util_text.split_statements swallows the final line break in the case when there are no space between lines.
Please check our community page for release notes.
Release
New Features
- Improved the robustness of OCSP response caching to handle errors in cases of serialization and deserialization.
- Replaced the dependency on setuptools in favor of packaging.
- Updated async_executes method's doc-string.
- Errors raised now have a query field that contains the SQL query that caused them when available.
Bug Fixes
- Fixed a bug where AuthByKeyPair.handle_timeout should pass keyword arguments instead of positional arguments when calling AuthByKeyPair.prepare.
- Fixed a bug where MFA token caching would refuse to work until restarted instead of reauthenticating.
 Please check our community page for release notes.
Release
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
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.
 
 
- 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.
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
- 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
- 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
- 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
- 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