summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects
diff options
context:
space:
mode:
authorHajime Nakagami <nakagami@gmail.com>2013-04-20 17:10:23 +0900
committerHajime Nakagami <nakagami@gmail.com>2013-04-20 17:10:23 +0900
commitfbcdba12f88d88c509fc34eb8aab3f501d1b705b (patch)
treef1ca2029cfd147478447d3cb98bae587a8ccb3c2 /lib/sqlalchemy/dialects
parentaf9ed1ff16fce148af46fbff33286fc30e33773d (diff)
parent7f0ee900b6c35a9bff214f9ebb02c3fb98d1f7e1 (diff)
downloadsqlalchemy-fbcdba12f88d88c509fc34eb8aab3f501d1b705b.tar.gz
merge from default
Diffstat (limited to 'lib/sqlalchemy/dialects')
-rw-r--r--lib/sqlalchemy/dialects/mssql/information_schema.py4
-rw-r--r--lib/sqlalchemy/dialects/mysql/gaerdbms.py4
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)