- Fixed bug which prevented "domain" built from a
custom type such as "enum" from being reflected.
[ticket:1933]
+
+- mysql
+ - Fixed bug involving reflection of CURRENT_TIMESTAMP
+ default used with ON UPDATE clause, thanks to
+ Taavi Burns [ticket:1940]
- mssql
- Fixed reflection bug which did not properly handle
r'(?: +COLLATE +(?P<collate>[\w_]+))?'
r'(?: +(?P<notnull>NOT NULL))?'
r'(?: +DEFAULT +(?P<default>'
- r'(?:NULL|\x27(?:\x27\x27|[^\x27])*\x27|\w+)'
- r'(?:ON UPDATE \w+)?'
+ r'(?:NULL|\x27(?:\x27\x27|[^\x27])*\x27|\w+'
+ r'(?: +ON UPDATE \w+)?)'
r'))?'
r'(?: +(?P<autoincr>AUTO_INCREMENT))?'
r'(?: +COMMENT +(P<comment>(?:\x27\x27|[^\x27])+))?'
Column('c4', TIMESTAMP, DefaultClause('2009-04-05 12:00:00'
)),
Column('c5', TIMESTAMP),
+ Column('c6', TIMESTAMP,
+ DefaultClause(sql.text("CURRENT_TIMESTAMP "
+ "ON UPDATE CURRENT_TIMESTAMP"))),
)
def_table.create()
try:
assert str(reflected.c.c3.server_default.arg) == "'abc'"
assert str(reflected.c.c4.server_default.arg) \
== "'2009-04-05 12:00:00'"
+ assert reflected.c.c5.default is None
+ assert reflected.c.c5.server_default is None
+ assert reflected.c.c6.default is None
+ eq_(
+ str(reflected.c.c6.server_default.arg).upper(),
+ "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"
+ )
reflected.create()
try:
reflected2 = Table('mysql_def', MetaData(testing.db),
assert str(reflected2.c.c3.server_default.arg) == "'abc'"
assert str(reflected2.c.c4.server_default.arg) \
== "'2009-04-05 12:00:00'"
+ assert reflected.c.c5.default is None
+ assert reflected.c.c5.server_default is None
+ assert reflected.c.c6.default is None
+ eq_(
+ str(reflected.c.c6.server_default.arg).upper(),
+ "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"
+ )
def test_reflection_with_table_options(self):
comment = r"""Comment types type speedily ' " \ '' Fun!"""