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 2007/01/08 06:27:18 UTC

svn commit: r493956 - /db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java

Author: tomdz
Date: Sun Jan  7 21:27:17 2007
New Revision: 493956

URL: http://svn.apache.org/viewvc?view=rev&rev=493956
Log:
Fixed a bug in the alteration algorithm

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java?view=diff&rev=493956&r1=493955&r2=493956
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java Sun Jan  7 21:27:17 2007
@@ -356,11 +356,17 @@
             changes.add(new ColumnDataTypeChange(sourceTable, sourceColumn, targetColumn.getTypeCode()));
         }
 
-        boolean sizeMatters = _platformInfo.hasSize(sourceColumn.getTypeCode());
+        boolean sizeMatters  = _platformInfo.hasSize(sourceColumn.getTypeCode());
+        boolean scaleMatters = _platformInfo.hasPrecisionAndScale(sourceColumn.getTypeCode());
 
-        if ((sizeMatters &&
-            (!StringUtils.equals(sourceColumn.getSize(), targetColumn.getSize())) ||
-             sourceColumn.getScale() != targetColumn.getScale()))
+        if (sizeMatters &&
+            !StringUtils.equals(sourceColumn.getSize(), targetColumn.getSize()))
+        {
+            changes.add(new ColumnSizeChange(sourceTable, sourceColumn, targetColumn.getSizeAsInt(), targetColumn.getScale()));
+        }
+        else if (scaleMatters &&
+            (!StringUtils.equals(sourceColumn.getSize(), targetColumn.getSize()) ||
+             (sourceColumn.getScale() != targetColumn.getScale())))
         {
             changes.add(new ColumnSizeChange(sourceTable, sourceColumn, targetColumn.getSizeAsInt(), targetColumn.getScale()));
         }