Author: aadamchik
Date: Tue Aug 29 23:35:46 2006
New Revision: 438394

URL: http://svn.apache.org/viewvc?rev=438394&view=rev
Log:
CAY-639 2.0

Modified:
    
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
    
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/types.xml

Modified: 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java?rev=438394&r1=438393&r2=438394&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
 Tue Aug 29 23:35:46 2006
@@ -106,33 +106,49 @@
             int precision,
             boolean allowNulls) {
 
+        if (typeName != null) {
+            typeName = typeName.toLowerCase();
+        }
+
         // all LOB types are returned by the driver as OTHER... must remap 
them manually
         // (at least on MySQL 3.23)
         if (type == Types.OTHER) {
-            if ("longblob".equalsIgnoreCase(typeName)) {
+            if ("longblob".equals(typeName)) {
                 type = Types.BLOB;
             }
-            else if ("mediumblob".equalsIgnoreCase(typeName)) {
+            else if ("mediumblob".equals(typeName)) {
                 type = Types.BLOB;
             }
-            else if ("blob".equalsIgnoreCase(typeName)) {
+            else if ("blob".equals(typeName)) {
                 type = Types.BLOB;
             }
-            else if ("tinyblob".equalsIgnoreCase(typeName)) {
+            else if ("tinyblob".equals(typeName)) {
                 type = Types.VARBINARY;
             }
-            else if ("longtext".equalsIgnoreCase(typeName)) {
+            else if ("longtext".equals(typeName)) {
                 type = Types.CLOB;
             }
-            else if ("mediumtext".equalsIgnoreCase(typeName)) {
+            else if ("mediumtext".equals(typeName)) {
                 type = Types.CLOB;
             }
-            else if ("text".equalsIgnoreCase(typeName)) {
+            else if ("text".equals(typeName)) {
                 type = Types.CLOB;
             }
-            else if ("tinytext".equalsIgnoreCase(typeName)) {
+            else if ("tinytext".equals(typeName)) {
                 type = Types.VARCHAR;
             }
+        }
+        // types like "int unsigned" map to Long
+        else if (typeName != null && typeName.endsWith(" unsigned")) {
+            // per
+            // 
http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-conversions.html
+            if (typeName.equals("int unsigned")
+                    || typeName.equals("integer unsigned")
+                    || typeName.equals("mediumint unsigned")) {
+                type = Types.BIGINT;
+            }
+            // BIGINT UNSIGNED maps to BigInteger according to MySQL docs, but 
there is no
+            // JDBC mapping for BigInteger
         }
 
         return super.buildAttribute(name, typeName, type, size, precision, 
allowNulls);

Modified: 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/types.xml
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/types.xml?rev=438394&r1=438393&r2=438394&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/types.xml
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/dba/mysql/types.xml
 Tue Aug 29 23:35:46 2006
@@ -27,6 +27,9 @@
    <jdbc-type name="ARRAY"/>
    <jdbc-type name="BIGINT">
        <db-type name="BIGINT"/>
+       <db-type name="INT UNSIGNED"/>
+       <db-type name="INTEGER UNSIGNED"/>
+       <db-type name="MEDIUMINT UNSIGNED"/>
    </jdbc-type>
    <jdbc-type name="BINARY">
        <db-type name="BINARY"/>


Reply via email to