]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Remove deprecation warnings mysql5 7 20
authorDaniel Thorell <(none)>
Fri, 20 Oct 2017 16:59:55 +0000 (12:59 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 23 Oct 2017 22:29:23 +0000 (18:29 -0400)
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

doc/build/changelog/unreleased_11/4120.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/mysql/base.py

diff --git a/doc/build/changelog/unreleased_11/4120.rst b/doc/build/changelog/unreleased_11/4120.rst
new file mode 100644 (file)
index 0000000..e84c1ac
--- /dev/null
@@ -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.
index 5f0b45a45d99ff1e885dcd1ca148f1ed26ae544d..188276b6a395f353ffca5a662d272b6598bc990a 100644 (file)
@@ -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):
@@ -1887,6 +1890,10 @@ class MySQLDialect(default.DefaultDialect):
     def _is_mariadb(self):
         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 \