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()));
}