db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "CG Monroe (JIRA)" <j...@apache.org>
Subject [jira] Commented: (TORQUE-106) Use "boolean" sql type not "bit" sql type with MySQL
Date Fri, 26 Oct 2007 18:43:50 GMT

    [ 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).
>       A very small integer. The signed range is -128 to 127. The unsigned range is 0
to 255.
>       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

View raw message