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