Skip to content

Commit

Permalink
0001375: DB2 dropping column that is part of a composite primary key …
Browse files Browse the repository at this point in the history
…on a table causes error
  • Loading branch information
chenson42 committed Aug 8, 2013
1 parent e29c9c7 commit 1108b28
Showing 1 changed file with 21 additions and 7 deletions.
Expand Up @@ -146,8 +146,10 @@ protected void writeCastExpression(Column sourceColumn, Column targetColumn, Str
@Override
protected void processTableStructureChanges(Database currentModel, Database desiredModel,
Table sourceTable, Table targetTable, List<TableChange> changes, StringBuilder ddl) {

// DB2 provides only limited ways to alter a column, so we don't use
// them

for (Iterator<TableChange> changeIt = changes.iterator(); changeIt.hasNext();) {
TableChange change = changeIt.next();

Expand All @@ -164,7 +166,25 @@ protected void processTableStructureChanges(Database currentModel, Database desi
} else {
return;
}
} else if (change instanceof RemoveColumnChange) {
}
}

for (Iterator<TableChange> changeIt = changes.iterator(); changeIt.hasNext();) {
TableChange change = changeIt.next();

if (change instanceof PrimaryKeyChange) {
processChange(currentModel, desiredModel, (PrimaryKeyChange) change, ddl);
changeIt.remove();
} else if (change instanceof RemovePrimaryKeyChange) {
processChange(currentModel, desiredModel, (RemovePrimaryKeyChange) change, ddl);
changeIt.remove();
}
}

for (Iterator<TableChange> changeIt = changes.iterator(); changeIt.hasNext();) {
TableChange change = changeIt.next();

if (change instanceof RemoveColumnChange) {
processChange(currentModel, desiredModel, (RemoveColumnChange)change, ddl);
changeIt.remove();
} else if (change instanceof CopyColumnValueChange) {
Expand All @@ -180,12 +200,6 @@ protected void processTableStructureChanges(Database currentModel, Database desi
if (change instanceof AddPrimaryKeyChange) {
processChange(currentModel, desiredModel, (AddPrimaryKeyChange) change, ddl);
changeIt.remove();
} else if (change instanceof PrimaryKeyChange) {
processChange(currentModel, desiredModel, (PrimaryKeyChange) change, ddl);
changeIt.remove();
} else if (change instanceof RemovePrimaryKeyChange) {
processChange(currentModel, desiredModel, (RemovePrimaryKeyChange) change, ddl);
changeIt.remove();
}
}

Expand Down

0 comments on commit 1108b28

Please sign in to comment.