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 2006/05/18 16:20:31 UTC
svn commit: r407558 - in /db/ddlutils/trunk/src:
java/org/apache/ddlutils/alteration/ModelComparator.java
java/org/apache/ddlutils/platform/SqlBuilder.java
test/org/apache/ddlutils/io/TestAlteration.java
Author: tomdz
Date: Thu May 18 07:20:30 2006
New Revision: 407558
URL: http://svn.apache.org/viewvc?rev=407558&view=rev
Log:
Addec new change object for the change of the column order
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.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?rev=407558&r1=407557&r2=407558&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java Thu May 18 07:20:30 2006
@@ -298,6 +298,8 @@
}
}
+ HashMap columnPosChanges = new HashMap();
+
for (int columnIdx = 0; columnIdx < sourceTable.getColumnCount(); columnIdx++)
{
Column sourceColumn = sourceTable.getColumn(columnIdx);
@@ -311,6 +313,19 @@
}
changes.add(new RemoveColumnChange(sourceTable, sourceColumn));
}
+ else
+ {
+ int targetColumnIdx = targetTable.getColumnIndex(targetColumn);
+
+ if (targetColumnIdx != columnIdx)
+ {
+ columnPosChanges.put(sourceColumn, new Integer(targetColumnIdx));
+ }
+ }
+ }
+ if (!columnPosChanges.isEmpty())
+ {
+ changes.add(new ColumnOrderChange(sourceTable, columnPosChanges));
}
return changes;
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java?rev=407558&r1=407557&r2=407558&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java Thu May 18 07:20:30 2006
@@ -48,6 +48,7 @@
import org.apache.ddlutils.alteration.ColumnAutoIncrementChange;
import org.apache.ddlutils.alteration.ColumnDataTypeChange;
import org.apache.ddlutils.alteration.ColumnDefaultValueChange;
+import org.apache.ddlutils.alteration.ColumnOrderChange;
import org.apache.ddlutils.alteration.ColumnRequiredChange;
import org.apache.ddlutils.alteration.ColumnSizeChange;
import org.apache.ddlutils.alteration.ModelChange;
@@ -453,6 +454,7 @@
PrimaryKeyChange.class,
RemoveColumnChange.class,
AddColumnChange.class,
+ ColumnOrderChange.class,
ColumnAutoIncrementChange.class,
ColumnDefaultValueChange.class,
ColumnRequiredChange.class,
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java?rev=407558&r1=407557&r2=407558&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java Thu May 18 07:20:30 2006
@@ -492,8 +492,8 @@
/**
* Tests the addition of several columns at the end of the table. This test
- * is known to fail on MaxDB where a DEFAULT specification is applied to existing
- * rows even if they are not defined as NOT NULL (column 'avalue3' in the
+ * is known to fail on MaxDB and Oracle where a DEFAULT specification is applied to
+ * existing rows even if they are not defined as NOT NULL (column 'avalue3' in the
* target schema).
*/
public void testAddColumnsAtTheEnd()
@@ -617,7 +617,7 @@
" <table name='roundtrip'>\n"+
" <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
" <column name='avalue1' type='VARCHAR' size='32'/>\n"+
- " <column name='avalue4' type='CHAR' size='16'/>\n"+
+ " <column name='avalue4' type='CHAR' size='5'/>\n"+
" <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
" <column name='avalue2' type='INTEGER'/>\n"+
" </table>\n"+
@@ -630,7 +630,7 @@
" <column name='avalue1' type='VARCHAR' size='32'/>\n"+
" <column name='avalue2' type='INTEGER'/>\n"+
" <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
- " <column name='avalue4' type='CHAR' size='16'/>\n"+
+ " <column name='avalue4' type='CHAR' size='5'/>\n"+
" </table>\n"+
"</database>";