diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-27 17:27:28 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-27 17:27:28 -0400 |
commit | 7535e19feca1c25a13e463fb0a5db6db17bda096 (patch) | |
tree | d54e1c7387603422784435a1f97a7efbe68124d8 | |
parent | 36047e9bb28501477b1403059087cccc120be2b6 (diff) | |
download | sqlalchemy-7535e19feca1c25a13e463fb0a5db6db17bda096.tar.gz |
- No longer guessing that TINYINT(1) should be BOOLEAN
when reflecting - TINYINT(1) is returned. Use Boolean/
BOOLEAN in table definition to get boolean conversion
behavior. [ticket:1752]
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 7 | ||||
-rw-r--r-- | test/dialect/test_mysql.py | 11 |
3 files changed, 16 insertions, 8 deletions
@@ -87,6 +87,12 @@ CHANGES argument 'precision' to both. 'precision' and 'timezone' are correctly reflected for both TIME and TIMEZONE types. [ticket:997] + +- mysql + - No longer guessing that TINYINT(1) should be BOOLEAN + when reflecting - TINYINT(1) is returned. Use Boolean/ + BOOLEAN in table definition to get boolean conversion + behavior. [ticket:1752] - oracle - The Oracle dialect will issue VARCHAR type definitions diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index f9bb48235..6650b8388 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -2207,13 +2207,6 @@ class MySQLTableDefinitionParser(object): name, type_, args, notnull = \ spec['name'], spec['coltype'], spec['arg'], spec['notnull'] - # Convention says that TINYINT(1) columns == BOOLEAN - if type_ == 'tinyint' and args == '1': - type_ = 'boolean' - args = None - spec['unsigned'] = None - spec['zerofill'] = None - try: col_type = self.dialect.ischema_names[type_] except KeyError: diff --git a/test/dialect/test_mysql.py b/test/dialect/test_mysql.py index 23a85b6bb..b0859210d 100644 --- a/test/dialect/test_mysql.py +++ b/test/dialect/test_mysql.py @@ -399,8 +399,17 @@ class TypesTest(TestBase, AssertsExecutionResults, AssertsCompiledSQL): roundtrip([False, False, 0, 0, 0], [False, False, 0, 0, 0]) meta2 = MetaData(testing.db) - # replace with reflected table = Table('mysql_bool', meta2, autoload=True) + eq_(colspec(table.c.b3), 'b3 TINYINT(1)') + eq_(colspec(table.c.b4), 'b4 TINYINT(1) UNSIGNED') + + meta2 = MetaData(testing.db) + table = Table('mysql_bool', meta2, + Column('b1', BOOLEAN), + Column('b2', Boolean), + Column('b3', BOOLEAN), + Column('b4', BOOLEAN), + autoload=True) eq_(colspec(table.c.b3), 'b3 BOOL') eq_(colspec(table.c.b4), 'b4 BOOL') |