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