diff options
| author | Daniel Thorell <(none)> | 2017-10-20 12:59:55 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-10-23 18:29:23 -0400 |
| commit | 41cfe44b5e5806b3d3b13949e41dbb347bfa29e1 (patch) | |
| tree | 70ef2944828e76163f64b0d929991c9586d01ec4 | |
| parent | 55b511c3960cad636ff1e512594368a36a85ce5c (diff) | |
| download | sqlalchemy-41cfe44b5e5806b3d3b13949e41dbb347bfa29e1.tar.gz | |
Remove deprecation warnings mysql5 7 20
MySQL 5.7.20 now warns for use of the @tx_isolation variable; a version
check is now performed and uses @transaction_isolation instead
to prevent this warning.
Co-authored by: Mike Bayer <mike_mp@zzzcomputing.com>
Fixes: #4120
Change-Id: I4d2e04df760c5351a71dde8b32145cdc69fa6115
Pull-request: https://github.com/zzzeek/sqlalchemy/pull/391
| -rw-r--r-- | doc/build/changelog/unreleased_11/4120.rst | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/doc/build/changelog/unreleased_11/4120.rst b/doc/build/changelog/unreleased_11/4120.rst new file mode 100644 index 000000000..e84c1ac19 --- /dev/null +++ b/doc/build/changelog/unreleased_11/4120.rst @@ -0,0 +1,8 @@ +.. change:: + :tags: bug, mysql + :tickets: 4120 + :versions: 1.2.0b4 + + MySQL 5.7.20 now warns for use of the @tx_isolation variable; a version + check is now performed and uses @transaction_isolation instead + to prevent this warning. diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 5f0b45a45..188276b6a 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1720,7 +1720,10 @@ class MySQLDialect(default.DefaultDialect): def get_isolation_level(self, connection): cursor = connection.cursor() - cursor.execute('SELECT @@tx_isolation') + if self._is_mysql and self.server_version_info >= (5, 7, 20): + cursor.execute('SELECT @@transaction_isolation') + else: + cursor.execute('SELECT @@tx_isolation') val = cursor.fetchone()[0] cursor.close() if util.py3k and isinstance(val, bytes): @@ -1888,6 +1891,10 @@ class MySQLDialect(default.DefaultDialect): return 'MariaDB' in self.server_version_info @property + def _is_mysql(self): + return 'MariaDB' not in self.server_version_info + + @property def _is_mariadb_102(self): return self._is_mariadb and \ self._mariadb_normalized_version_info > (10, 2) |
