diff options
| author | Hajime Nakagami <nakagami@gmail.com> | 2013-04-20 17:10:23 +0900 |
|---|---|---|
| committer | Hajime Nakagami <nakagami@gmail.com> | 2013-04-20 17:10:23 +0900 |
| commit | fbcdba12f88d88c509fc34eb8aab3f501d1b705b (patch) | |
| tree | f1ca2029cfd147478447d3cb98bae587a8ccb3c2 /lib/sqlalchemy/dialects | |
| parent | af9ed1ff16fce148af46fbff33286fc30e33773d (diff) | |
| parent | 7f0ee900b6c35a9bff214f9ebb02c3fb98d1f7e1 (diff) | |
| download | sqlalchemy-fbcdba12f88d88c509fc34eb8aab3f501d1b705b.tar.gz | |
merge from default
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/information_schema.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/gaerdbms.py | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/information_schema.py b/lib/sqlalchemy/dialects/mssql/information_schema.py index 35ce2450e..80e59d323 100644 --- a/lib/sqlalchemy/dialects/mssql/information_schema.py +++ b/lib/sqlalchemy/dialects/mssql/information_schema.py @@ -8,6 +8,7 @@ from ... import Table, MetaData, Column from ...types import String, Unicode, Integer, TypeDecorator +from ... import cast ischema = MetaData() @@ -22,6 +23,9 @@ class CoerceUnicode(TypeDecorator): # end Py2K return value + def bind_expression(self, bindvalue): + return cast(bindvalue, Unicode) + schemata = Table("SCHEMATA", ischema, Column("CATALOG_NAME", CoerceUnicode, key="catalog_name"), Column("SCHEMA_NAME", CoerceUnicode, key="schema_name"), diff --git a/lib/sqlalchemy/dialects/mysql/gaerdbms.py b/lib/sqlalchemy/dialects/mysql/gaerdbms.py index a93a78b73..ad0ce7638 100644 --- a/lib/sqlalchemy/dialects/mysql/gaerdbms.py +++ b/lib/sqlalchemy/dialects/mysql/gaerdbms.py @@ -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) |
