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/08 00:05:32 UTC
svn commit: r1511516 - in
/cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration:
MigrationGenerator.java MigrationTable.java
Author: johnthuss
Date: Wed Aug 7 22:05:32 2013
New Revision: 1511516
URL: http://svn.apache.org/r1511516
Log:
Allow specifying a length for Timestamp, Time, Blob, and Clob columns since some DBs support it
Modified:
cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationGenerator.java
cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationTable.java
Modified: cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationGenerator.java?rev=1511516&r1=1511515&r2=1511516&view=diff
==============================================================================
--- cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationGenerator.java (original)
+++ cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationGenerator.java Wed Aug 7 22:05:32 2013
@@ -24,6 +24,7 @@ import java.io.Writer;
import java.sql.Types;
import org.apache.cayenne.configuration.server.ServerRuntime;
+import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -235,8 +236,11 @@ public class MigrationGenerator {
}
protected boolean hasLength(int type) {
- return type == Types.BINARY || type == Types.CHAR ||
- type == Types.VARBINARY || type == Types.VARCHAR;
+ return TypesMapping.supportsLength(type)
+ || type == Types.BLOB // for Derby
+ || type == Types.CLOB // for Derby
+ || type == Types.TIMESTAMP // for MySQL
+ || type == Types.TIME; // for MySQL
}
}
Modified: cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationTable.java
URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationTable.java?rev=1511516&r1=1511515&r2=1511516&view=diff
==============================================================================
--- cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationTable.java (original)
+++ cayenne/sandbox/cayenne-migrations/src/main/java/org/apache/cayenne/migration/MigrationTable.java Wed Aug 7 22:05:32 2013
@@ -125,10 +125,16 @@ public abstract class MigrationTable {
}
public MigrationColumnNew addBlobColumn(String columnName) {
- return addBlobColumn(columnName, false, null);
+ return addBlobColumn(columnName, 0, false, null);
+ }
+ public MigrationColumnNew addBlobColumn(String columnName, int maxLength) {
+ return addBlobColumn(columnName, maxLength, false, null);
}
public MigrationColumnNew addBlobColumn(String columnName, boolean isMandatory, Object defaultValue) {
- return addColumn(columnName, Types.BLOB, isMandatory, defaultValue);
+ return addBlobColumn(columnName, 0, isMandatory, defaultValue);
+ }
+ public MigrationColumnNew addBlobColumn(String columnName, int maxLength, boolean isMandatory, Object defaultValue) {
+ return addColumn(columnName, Types.BLOB, maxLength, isMandatory, defaultValue);
}
public MigrationColumnNew addCharColumn(String columnName, int maxLength) {
@@ -148,8 +154,14 @@ public abstract class MigrationTable {
public MigrationColumnNew addClobColumn(String columnName) {
return addClobColumn(columnName, false, null);
}
+ public MigrationColumnNew addClobColumn(String columnName, int maxLength) {
+ return addClobColumn(columnName, maxLength, false, null);
+ }
public MigrationColumnNew addClobColumn(String columnName, boolean isMandatory, Object defaultValue) {
- return addColumn(columnName, Types.CLOB, isMandatory, defaultValue);
+ return addClobColumn(columnName, 0, false, null);
+ }
+ public MigrationColumnNew addClobColumn(String columnName, int maxLength, boolean isMandatory, Object defaultValue) {
+ return addColumn(columnName, Types.CLOB, maxLength, isMandatory, defaultValue);
}
public MigrationColumnNew addDateColumn(String columnName) {
@@ -223,17 +235,29 @@ public abstract class MigrationTable {
}
public MigrationColumnNew addTimeColumn(String columnName) {
- return addTimeColumn(columnName, false, null);
+ return addTimeColumn(columnName, 0, false, null);
}
- public MigrationColumnNew addTimeColumn(String columnName, boolean isMandatory, Object defaultValue) {
- return addColumn(columnName, Types.TIME, isMandatory, defaultValue);
+ public MigrationColumnNew addTimeColumn(String columnName, boolean isMandatory, Object defaultValue) {
+ return addTimeColumn(columnName, 0, isMandatory, defaultValue);
+ }
+ public MigrationColumnNew addTimeColumn(String columnName, int maxLength) {
+ return addTimeColumn(columnName, maxLength, false, null);
+ }
+ public MigrationColumnNew addTimeColumn(String columnName, int maxLength, boolean isMandatory, Object defaultValue) {
+ return addColumn(columnName, Types.TIME, maxLength, isMandatory, defaultValue);
}
public MigrationColumnNew addTimestampColumn(String columnName) {
- return addTimestampColumn(columnName, false, null);
+ return addTimestampColumn(columnName, 0, false, null);
}
- public MigrationColumnNew addTimestampColumn(String columnName, boolean isMandatory, Object defaultValue) {
- return addColumn(columnName, Types.TIMESTAMP, isMandatory, defaultValue);
+ public MigrationColumnNew addTimestampColumn(String columnName, boolean isMandatory, Object defaultValue) {
+ return addTimestampColumn(columnName, 0, isMandatory, defaultValue);
+ }
+ public MigrationColumnNew addTimestampColumn(String columnName, int maxLength) {
+ return addTimestampColumn(columnName, maxLength, false, null);
+ }
+ public MigrationColumnNew addTimestampColumn(String columnName, int maxLength, boolean isMandatory, Object defaultValue) {
+ return addColumn(columnName, Types.TIMESTAMP, maxLength, isMandatory, defaultValue);
}
public MigrationColumnNew addTinyIntColumn(String columnName) {