]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- MySQL error 2014 "commands out of sync" appears to be raised as a
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 27 Jun 2014 19:52:40 +0000 (15:52 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 27 Jun 2014 19:53:05 +0000 (15:53 -0400)
ProgrammingError, not OperationalError, in modern MySQL-Python versions;
all MySQL error codes that are tested for "is disconnect" are now
checked within OperationalError and ProgrammingError regardless.
fixes #3101

doc/build/changelog/changelog_08.rst
lib/sqlalchemy/dialects/mysql/base.py

index 5a32b21e50170af28a4b2b0b1a683fb284de086e..45bd851acc2c760d1abf7944f6bd8eace52219dd 100644 (file)
 .. changelog::
     :version: 0.8.7
 
+    .. change::
+        :tags: bug, mysql
+        :versions: 1.0.0, 0.9.5
+        :tickets: 3101
+
+        MySQL error 2014 "commands out of sync" appears to be raised as a
+        ProgrammingError, not OperationalError, in modern MySQL-Python versions;
+        all MySQL error codes that are tested for "is disconnect" are now
+        checked within OperationalError and ProgrammingError regardless.
+
     .. change::
         :tags: bug, mysql
         :versions: 1.0.0, 0.9.5
index a0a97ba8144b4dc268701ba637a03456493d2b83..92b0c4930fdd955b23932c71ef1a757db0cfe80f 100644 (file)
@@ -2165,7 +2165,7 @@ class MySQLDialect(default.DefaultDialect):
         return [row['data'][0:row['gtrid_length']] for row in resultset]
 
     def is_disconnect(self, e, connection, cursor):
-        if isinstance(e, self.dbapi.OperationalError):
+        if isinstance(e, (self.dbapi.OperationalError, self.dbapi.ProgrammingError)):
             return self._extract_error_code(e) in \
                         (2006, 2013, 2014, 2045, 2055)
         elif isinstance(e, self.dbapi.InterfaceError):