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

Reply via email to