You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2008/11/06 20:02:00 UTC

svn commit: r711944 - in /db/ddlutils/trunk/src: main/java/org/apache/ddlutils/platform/db2/Db2Platform.java test/java/org/apache/ddlutils/io/TestInsertColumn.java

Author: tomdz
Date: Thu Nov  6 11:01:53 2008
New Revision: 711944

URL: http://svn.apache.org/viewvc?rev=711944&view=rev
Log:
Fixed DB2 platform

Modified:
    db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/db2/Db2Platform.java
    db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestInsertColumn.java

Modified: db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/db2/Db2Platform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/db2/Db2Platform.java?rev=711944&r1=711943&r2=711944&view=diff
==============================================================================
--- db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/db2/Db2Platform.java (original)
+++ db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/db2/Db2Platform.java Thu Nov  6 11:01:53 2008
@@ -30,6 +30,7 @@
 import org.apache.ddlutils.alteration.RemovePrimaryKeyChange;
 import org.apache.ddlutils.alteration.TableChange;
 import org.apache.ddlutils.alteration.TableDefinitionChangesPredicate;
+import org.apache.ddlutils.model.CascadeActionEnum;
 import org.apache.ddlutils.model.Column;
 import org.apache.ddlutils.model.Database;
 import org.apache.ddlutils.model.Table;
@@ -75,6 +76,8 @@
         info.setIdentityColumnAutomaticallyRequired(true);
         info.setPrimaryKeyColumnsHaveToBeRequired(true);
         info.setMultipleIdentityColumnsSupported(false);
+        info.setSupportedOnUpdateActions(new CascadeActionEnum[] { CascadeActionEnum.RESTRICT, CascadeActionEnum.NONE });
+        info.setSupportedOnDeleteActions(new CascadeActionEnum[] { CascadeActionEnum.RESTRICT, CascadeActionEnum.CASCADE, CascadeActionEnum.SET_NULL, CascadeActionEnum.NONE });
 
         // the BINARY types are also handled by Db2Builder.getSqlType(Column)
         info.addNativeTypeMapping(Types.ARRAY,         "BLOB",                      Types.BLOB);
@@ -141,7 +144,8 @@
                     AddColumnChange addColumnChange = (AddColumnChange)change;
 
                     // DB2 cannot add IDENTITY columns, and required columns need a default value
-                    return !addColumnChange.getNewColumn().isAutoIncrement() &&
+                    return (addColumnChange.getNextColumn() == null) &&
+                           !addColumnChange.getNewColumn().isAutoIncrement() &&
                            (!addColumnChange.getNewColumn().isRequired() || !StringUtilsExt.isEmpty(addColumnChange.getNewColumn().getDefaultValue()));
                 }
                 else

Modified: db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestInsertColumn.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestInsertColumn.java?rev=711944&r1=711943&r2=711944&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestInsertColumn.java (original)
+++ db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestInsertColumn.java Thu Nov  6 11:01:53 2008
@@ -2473,7 +2473,7 @@
             "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
             "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n"+
             "  <table name='roundtrip1'>\n"+
-            "    <column name='pk2' type='VARCHAR' size='32' primaryKey='true'/>\n"+
+            "    <column name='pk2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
             "    <column name='pk1' type='INTEGER' primaryKey='true' required='true'/>\n"+
             "  </table>\n"+
             "  <table name='roundtrip2'>\n"+
@@ -2607,6 +2607,11 @@
      */
     public void testInsertColumnsWithDefaultsIntoFK()
     {
+        if (getPlatformInfo().isPrimaryKeyColumnsHaveToBeRequired())
+        {
+            return;
+        }
+
         final String model1Xml = 
             "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
             "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n"+
@@ -2810,7 +2815,7 @@
             "  <table name='roundtrip1'>\n"+
             "    <column name='pk3' type='DOUBLE' primaryKey='true' required='true'/>\n"+
             "    <column name='pk1' type='INTEGER' primaryKey='true' required='true'/>\n"+
-            "    <column name='pk2' type='INTEGER' primaryKey='true' default='1'/>\n"+
+            "    <column name='pk2' type='INTEGER' primaryKey='true' default='1' required='true'/>\n"+
             "  </table>\n"+
             "  <table name='roundtrip2'>\n"+
             "    <column name='avalue3' type='DOUBLE' required='true'/>\n"+