not part of the FunctionElement base class, allowing
a "type" to be handled in a custom constructor or
class-level variable.
+
+- mysql
+ - Fixed reflection bug whereby when COLLATE was present,
+ nullable flag and server defaults would not be reflected.
+ [ticket:1655]
- mssql
- Re-established initial support for pymssql.
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+)'
def test_default_reflection(self):
"""Test reflection of column defaults."""
-
+ from sqlalchemy.dialects.mysql import VARCHAR
+
def_table = Table('mysql_def', MetaData(testing.db),
- Column('c1', String(10), DefaultClause('')),
+ Column('c1', VARCHAR(10, collation='utf8_unicode_ci'), DefaultClause(''), nullable=False),
Column('c2', String(10), DefaultClause('0')),
Column('c3', String(10), DefaultClause('abc')),
Column('c4', TIMESTAMP, DefaultClause('2009-04-05 12:00:00')),
Column('c5', TIMESTAMP),
-
)
def_table.create()