Fix mysql+gaerdbms dialect for changed exception format

googleappengine v1.7.5 changed the exception format to be
incompatible with MySQLDialect_gaerdbms#_extract_error_code

This fix works for both old- and new-style exceptions.

Changes causing the breakage:
/trunk/python/google/storage/speckle/python/api/rdbms.py
at
https://code.google.com/p/googleappengine/source/detail?r=318
This commit is contained in:
Dan Ring
2013-04-19 18:01:39 -07:00
parent b6bf8c2a30
commit d657cf0600
+2 -2
View File
@@ -65,10 +65,10 @@ class MySQLDialect_gaerdbms(MySQLDialect_mysqldb):
return [], opts
def _extract_error_code(self, exception):
match = re.compile(r"^(\d+):").match(str(exception))
match = re.compile(r"^(\d+):|^\((\d+),").match(str(exception))
# The rdbms api will wrap then re-raise some types of errors
# making this regex return no matches.
code = match.group(1) if match else None
code = match.group(1) or match.group(2) if match else None
if code:
return int(code)