Revision: 3544
Author: [email protected]
Date: Thu May 20 14:46:10 2010
Log: Fixed CompareSQL so that the source and target SQLTables are populated
before diffing them. This fixes the issue where Compare DM was generating
SQL statements to re-add primary keys.
http://code.google.com/p/power-architect/source/detail?r=3544
Modified:
/trunk/src/main/java/ca/sqlpower/architect/diff/CompareSQL.java
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/diff/CompareSQL.java Wed
May 5 12:48:15 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/diff/CompareSQL.java Thu May
20 14:46:10 2010
@@ -57,7 +57,7 @@
*/
final static Comparator<SQLObject> nameComparator = new
SQLObjectComparator();
- /*
+ /**
* A comparator that detects equality by comparing the UUID
*/
final static Comparator<SQLObject> uuidComparator = new
SQLObjectUUIDComparator();
@@ -185,6 +185,7 @@
sourceContinue = true;
sourceTable = sourceIter.next();
+ sourceTable.populate();
} else {
sourceContinue = false;
sourceTable = null;
@@ -193,6 +194,7 @@
if (targetIter.hasNext()) {
targetContinue = true;
targetTable = targetIter.next();
+ targetTable.populate();
} else {
targetContinue = false;
targetTable = null;
@@ -211,6 +213,7 @@
//results.addAll(generateColumnDiffs(sourceTable, null));
if (sourceIter.hasNext()) {
sourceTable = (SQLTable)
sourceIter.next();
+ sourceTable.populate();
} else {
sourceContinue = false;
@@ -225,6 +228,7 @@
//results.addAll(generateColumnDiffs(null, targetTable));
if (targetIter.hasNext()) {
targetTable = (SQLTable)
targetIter.next();
+ targetTable.populate();
} else {
targetContinue = false;
}
@@ -262,12 +266,14 @@
}
if (targetIter.hasNext()) {
targetTable = (SQLTable)
targetIter.next();
+ targetTable.populate();
} else {
targetContinue = false;
}
if (sourceIter.hasNext()) {
sourceTable = (SQLTable)
sourceIter.next();
+ sourceTable.populate();
}
else {
@@ -287,6 +293,7 @@
//results.addAll(generateColumnDiffs(sourceTable, null));
if (sourceIter.hasNext()) {
sourceTable = (SQLTable)
sourceIter.next();
+ sourceTable.populate();
} else {
sourceContinue = false;
}
@@ -301,6 +308,7 @@
//results.addAll(generateColumnDiffs(null,
targetTable));
if (targetIter.hasNext()) {
targetTable = (SQLTable)
targetIter.next();
+ targetTable.populate();
} else {
targetContinue = false;
}
@@ -774,7 +782,7 @@
}
}
- if ( keyChangeFlag ) {
+ if (keyChangeFlag) {
if (sourceTable.getPkSize() > 0) {
diffs.add(new DiffChunk<SQLObject>(sourceTable,
DiffType.DROP_KEY));
}