You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by jo...@apache.org on 2013/08/07 23:39:22 UTC

svn commit: r1511508 - in /cayenne/main/trunk: docs/doc/src/main/resources/RELEASE-NOTES.txt framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java

Author: johnthuss
Date: Wed Aug  7 21:39:22 2013
New Revision: 1511508

URL: http://svn.apache.org/r1511508
Log:
CAY-1862 MySQL - allow specifying a length for TIMESTAMP and TIME columns

Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
    cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java

Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1511508&r1=1511507&r2=1511508&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Wed Aug  7 21:39:22 2013
@@ -86,6 +86,7 @@ CAY-1836 Firebird Adapter 
 CAY-1838 Deprecate EntityResolver.indexedByClassProperty
 CAY-1840 Conditionally log slow / long-running queries
 CAY-1844 Configuration for maximum time to wait for an available DB connection
+CAY-1862 MySQL - allow specifying a length for TIMESTAMP and TIME columns
 
 Bug Fixes:
 

Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java?rev=1511508&r1=1511507&r2=1511508&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java Wed Aug  7 21:39:22 2013
@@ -315,7 +315,7 @@ public class MySQLAdapter extends JdbcAd
         sqlBuffer.append(' ').append(type);
 
         // append size and precision (if applicable)s
-        if (TypesMapping.supportsLength(column.getType())) {
+        if (typeSupportsLength(column.getType())) {
             int len = column.getMaxLength();
 
             int scale = TypesMapping.isDecimal(column.getType()) ? column.getScale() : -1;
@@ -343,6 +343,18 @@ public class MySQLAdapter extends JdbcAd
         }
     }
 
+    private boolean typeSupportsLength(int type) {
+    	// As of MySQL 5.6.4 the "TIMESTAMP" and "TIME" types support length, which is the number of decimal places for fractional seconds
+    	// http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html
+    	switch (type) {
+	    	case Types.TIMESTAMP:
+	    	case Types.TIME:
+	    		return true;
+	    	default:
+	    		return TypesMapping.supportsLength(type);
+    	}
+    }
+    
     @Override
     public MergerFactory mergerFactory() {
         return new MySQLMergerFactory();