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