- 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](https://man7.org/linux/man-pages/man7/socket.7.html))
- 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.