summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-02-10 23:53:02 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-02-10 23:53:02 +0000
commit92171b08593e17f50d1e69a32dca0dbc7cb7fbc7 (patch)
treeb0364a10c52630ba34ab9273e68c29641ea8f0ba
parent570b4ac485ed19a92cc48bd0ad3629b36367ee81 (diff)
downloadsqlalchemy-92171b08593e17f50d1e69a32dca0dbc7cb7fbc7.tar.gz
- backported collate reflection fix from [ticket:1655]
-rw-r--r--CHANGES7
-rw-r--r--lib/sqlalchemy/databases/mysql.py4
-rw-r--r--test/dialect/test_mysql.py5
3 files changed, 9 insertions, 7 deletions
diff --git a/CHANGES b/CHANGES
index 55ac86349..5fc1a5366 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,9 +8,10 @@ CHANGES
- sql
- Fixed erroneous self_group() call in expression package.
[ticket:1661]
-
-0.5.9
-=====
+
+- mysql
+ - backported collate reflection fix from [ticket:1655]
+
- firebird
- Fix reflection of default values with spurious spaces
(backport of r6257 and r6699). [ticket:1582 and ticket:1663]
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index ba6b026ea..da3337af2 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -2415,8 +2415,8 @@ class MySQLSchemaReflector(object):
r'(?:\x27(?:\x27\x27|[^\x27])*\x27,?)+))\))?'
r'(?: +(?P<unsigned>UNSIGNED))?'
r'(?: +(?P<zerofill>ZEROFILL))?'
- r'(?: +CHARACTER SET +(?P<charset>\w+))?'
- r'(?: +COLLATE +(P<collate>\w+))?'
+ r'(?: +CHARACTER SET +(?P<charset>[\w_]+))?'
+ r'(?: +COLLATE +(?P<collate>[\w_]+))?'
r'(?: +(?P<notnull>NOT NULL))?'
r'(?: +DEFAULT +(?P<default>'
r'(?:NULL|\x27(?:\x27\x27|[^\x27])*\x27|\w+)'
diff --git a/test/dialect/test_mysql.py b/test/dialect/test_mysql.py
index 8adb2d71c..d207cba2e 100644
--- a/test/dialect/test_mysql.py
+++ b/test/dialect/test_mysql.py
@@ -639,9 +639,10 @@ class TypesTest(TestBase, AssertsExecutionResults):
def test_default_reflection(self):
"""Test reflection of column defaults."""
-
+ from sqlalchemy.databases.mysql import MSString
+
def_table = Table('mysql_def', MetaData(testing.db),
- Column('c1', String(10), DefaultClause('')),
+ Column('c1', MSString(10, collation='utf8_unicode_ci'), DefaultClause(''), nullable=False),
Column('c2', String(10), DefaultClause('0')),
Column('c3', String(10), DefaultClause('abc')))