=======
CHANGES
=======
+
0.4.2c
------
+- dialects
+ - Fixed reflection of mysql empty string column defaults.
+
0.4.2b
------
- sql
when no length is present is also deprecated until 0.5; will issue a
warning when used for CREATE TABLE statements (String with no length
for SQL expression purposes is still fine) [ticket:912]
-
+
- generative select.order_by(None) / group_by(None) was not managing to
reset order by/group by criterion, fixed [ticket:924]
-
+
- orm
- suppressing *all* errors in InstanceState.__cleanup() now.
r'(?: +COLLATE +(P<collate>\w+))?'
r'(?: +(?P<notnull>NOT NULL))?'
r'(?: +DEFAULT +(?P<default>'
- r'(?:NULL|\x27(?:\x27\x27|[^\x27])+\x27|\w+)'
+ r'(?:NULL|\x27(?:\x27\x27|[^\x27])*\x27|\w+)'
r'(?:ON UPDATE \w+)?'
r'))?'
r'(?: +(?P<autoincr>AUTO_INCREMENT))?'
# MySQL 3.23 can't handle an ENUM of ''....
- db = testbase.db
enum_table = Table('mysql_enum', MetaData(testbase.db),
Column('e1', mysql.MSEnum("'a'")),
Column('e2', mysql.MSEnum("''")),
finally:
enum_table.drop()
+ def test_default_reflection(self):
+ """Test reflection of column defaults."""
+
+ def_table = Table('mysql_def', MetaData(testbase.db),
+ Column('c1', String(10), PassiveDefault('')),
+ Column('c2', String(10), PassiveDefault('0')),
+ Column('c3', String(10), PassiveDefault('abc')))
+
+ try:
+ def_table.create()
+ reflected = Table('mysql_def', MetaData(testbase.db),
+ autoload=True)
+ for t in def_table, reflected:
+ assert t.c.c1.default.arg == ''
+ assert t.c.c2.default.arg == '0'
+ assert t.c.c3.default.arg == 'abc'
+ finally:
+ def_table.drop()
+
@testing.exclude('mysql', '<', (5, 0, 0))
def test_type_reflection(self):
# (ask_for, roundtripped_as_if_different)