0/1 generally works in Python but won't convert to formats with native boolean values correctly, in my case JSON.
Just a note, your suggestion works for me but will fail for any unsigned columns. I have a working solution so I'm fine with moving on from the issue, Overall however, with MySQL's lack of a true boolean data type this change leaves MySQL users with no particularly clean way to represent true boolean types. Just my two cents. Thanks for the help. On May 4, 2:06 pm, Michael Bayer <[email protected]> wrote: > On May 4, 2010, at 1:22 PM, Brad Wells wrote: > > > The docs for the MySQL dialect need to be updated to reflect this > > change. > > Seehttp://www.sqlalchemy.org/docs/reference/dialects/mysql.html#sqlalche... > > > For what it's worth I'd really like to see this remain as an optional > > behavior. The BOOL/BOOLEN column types in MySQL are synonyms for > > TINYINT(1). Someone creating columns using BOOLs might reasonably > > expect to reflect that intention when autoloading. Really though, I > > just want a way to avoid manually overriding 200 column definitions. > > Is there a reasonable way to do that as is? > > if you reflect as TINYINT you still get a 0/1 back in results and it still > accepts True/False. You really need it to give you the "True"/ "False" > tokens ? > > this is not entirely "de facto" in its methodology but this should work for > now: > > # before create_engine is called > > from sqlalchemy.dialects.mysql import base > base.ischema_names['tinyint'] = base.BOOLEAN > > > > > > > On Mar 27, 5:29 pm, Michael Bayer <[email protected]> wrote: > >> On Mar 27, 2010, at 5:17 PM, Michael Bayer wrote: > > >>> On Mar 27, 2010, at 4:16 PM, Lloyd Kvam wrote: > > >>>> I've just discovered that some tinyint (8-bit) fields have had their > >>>> values limited to 0 and 1 regardless of actual value supplied. Digging > >>>> through the documentation, I've learned that when MySQL tables are > >>>> reflected, tinyint(1) fields are processed as booleans. > > >>>> I did not find emails from others howling in pain, so I suppose most > >>>> people are either happy with this behavior or unaffected. I understand > >>>> why a bool column definition would be mapped to tinyint(1). However, > >>>> doing the reverse, mapping tinyint(1) to bool, discards bits that MySQL > >>>> would not discard. > > >>>> For me this was a misfeature. I would think that supplying bools to an > >>>> integer field would work OK. In python 2 + True == 3. So people using > >>>> booleans should not have too much difficulty, would they? Is there any > >>>> chance you'd consider autoloading tinyint(1) as an integer field? > > >>> sure i will remove this behavior today. > > >> it is out in r95ac46ca88ee. > > >>>> -- > >>>> You received this message because you are subscribed to the Google > >>>> Groups "sqlalchemy" group. > >>>> To post to this group, send email to [email protected]. > >>>> To unsubscribe from this group, send email to > >>>> [email protected]. > >>>> For more options, visit this group > >>>> athttp://groups.google.com/group/sqlalchemy?hl=en. > > >>> -- > >>> You received this message because you are subscribed to the Google Groups > >>> "sqlalchemy" group. > >>> To post to this group, send email to [email protected]. > >>> To unsubscribe from this group, send email to > >>> [email protected]. > >>> For more options, visit this group > >>> athttp://groups.google.com/group/sqlalchemy?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
