summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thorell <(none)>2017-10-20 12:59:55 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2017-10-23 18:29:23 -0400
commit41cfe44b5e5806b3d3b13949e41dbb347bfa29e1 (patch)
tree70ef2944828e76163f64b0d929991c9586d01ec4
parent55b511c3960cad636ff1e512594368a36a85ce5c (diff)
downloadsqlalchemy-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.rst8
-rw-r--r--lib/sqlalchemy/dialects/mysql/base.py9
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)