You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by "CG Monroe (JIRA)" <ji...@apache.org> on 2007/10/26 20:43:50 UTC

[jira] Commented: (TORQUE-106) Use "boolean" sql type not "bit" sql type with MySQL

    [ https://issues.apache.org/jira/browse/TORQUE-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538052 ] 

CG Monroe commented on TORQUE-106:
----------------------------------

Torque is designed to work across a wide variety of SQL servers and versions.  IMHO, this means there are a lot of "compromises" that go into Torque's design.  One of these is to try to limit the number of DB adapter variations.  I.e., we try not to have subversions of the major types of adapters, e.g MySQL5 and MySQL or MSSQL7, MSSQL2000, and MSSQL2005.  The main reason for this is that keeping track of all the little quirks and foibles of server versions, adds a LOT of effort to the release and maintenance testing.  

AFAIK, this change can't be implemented without either breaking compatibility with older version of MySQL or creating a new version-ed MySQL adapter.  I'm not sure the added benefit of a little bit of storage space saved is worth it.  Especially, since (AFAIK) the generated runtime code will still work with both a field generated from Torque's SQL and a "manually" generate new field.  (JDBC driver should interprate boolean, int 1/0, and the like correctly).

That said, if you have an application/site specific need for this level of support, Torque now allows for the easy creation of custom adapters and template files.  

There may be other issues here I'm not seeing and other folks may have different ideas... but this is my initial take on this.

> Use "boolean" sql type not "bit" sql type with MySQL
> ----------------------------------------------------
>
>                 Key: TORQUE-106
>                 URL: https://issues.apache.org/jira/browse/TORQUE-106
>             Project: Torque
>          Issue Type: Bug
>    Affects Versions: 3.2
>            Reporter: Will Glass-Husain
>         Attachments: mysqlpatch.patch
>
>
> In MySQL 5.0.3 the meaning of the BIT data type changed.  It used to be equivalent to tinyint(1) but now it is a new bitwise datatype.  This means that when Torque generates SQL files with a "bit" data type (mapped to the Java boolean) it is incorrect.
> I suggest that Torque map the Torque "bit" type to the MySQL "Boolean" type instead when generating SQL.  See the reference from the MySQL manual below.
> http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
> * BIT[(M)]
>       A bit-field type. M indicates the number of bits per value, from 1 to 64. The default is 1 if M is omitted.
>       This data type was added in MySQL 5.0.3 for MyISAM, and extended in 5.0.5 to MEMORY, InnoDB, and BDB. Before 5.0.3, BIT is a synonym for TINYINT(1).
>     
> *  TINYINT[(M)] [UNSIGNED] [ZEROFILL]
>       A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.
>    
> * BOOL, BOOLEAN
>       These types are synonyms for TINYINT(1). A value of zero is considered false. Non-zero values are considered true: 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org