At this point, I think we have agreed on the facts about how JDBC and various SQL databases treat the TINYINT type. I think I would not be going out on a limb if I said that there is no industry-wide consensus about whether TINYINT is a signed or unsigned quantity.

I logged this enhancment request because it seemed that re-enabling TINYINT would be low hanging fruit. Furthermore, to me TINYINT should be a signed integer just like its bigger sisters SMALLINT, INTEGER, and LONG. It makes sense to me that the premier Java database should have datatypes which correspond as exactly as possible with the Java datatypes. This would be the most natural fit for persisting the data from Java applications, whether flattened by hand or by off-the-shelf O-R mapping technologies.

Currently, we are missing two of these Java datatypes: boolean (java.sql.BOOLEAN) and byte (java.sql.TINYINT).

Exposing a signed TINYINT does not violate any standard we care about: ANSI is silent on the matter, and JDBC is compatible with this interpretation. A signed TINYINT would be an easy, natural, and useful addition for the Java applications which are our bread-and-butter customers.

I agree that in the future, to support migration from MySQL, we should consider implementing the UNSIGNED keyword, allowing all of our integer datatypes to support their unsigned ranges. That, however, is some other itch to scratch.

Cheers,
-Rick

Reply via email to