From: Hajime Nakagami Date: Sat, 2 Mar 2013 04:37:00 +0000 (+0900) Subject: is_disconnect() in cymysql dialect X-Git-Tag: rel_0_8_0~8^2~1^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68c7827d695d1243a2344f450fc7762ba2faea57;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git is_disconnect() in cymysql dialect --- diff --git a/lib/sqlalchemy/dialects/mysql/cymysql.py b/lib/sqlalchemy/dialects/mysql/cymysql.py index ddd9ac3223..d9b43869c4 100644 --- a/lib/sqlalchemy/dialects/mysql/cymysql.py +++ b/lib/sqlalchemy/dialects/mysql/cymysql.py @@ -58,4 +58,15 @@ class MySQLDialect_cymysql(MySQLDialect_mysqldb): def _extract_error_code(self, exception): return exception.errno + def is_disconnect(self, e, connection, cursor): + if isinstance(e, self.dbapi.OperationalError): + return self._extract_error_code(e) in \ + (2006, 2013, 2014, 2045, 2055) + elif isinstance(e, self.dbapi.InterfaceError): + # if underlying connection is closed, + # this is the error you get + return True + else: + return False + dialect = MySQLDialect_cymysql