{
// Any GroupIndex changes are entirely derived, ignore any that happen to be passed.
if(newDefinition.getGroup() != null) {
newDefinition.getGroup().removeIndexes(newDefinition.getGroup().getIndexes());
}
TableChangeValidator v = new TableChangeValidator(origTable, newDefinition, columnChanges, tableIndexChanges);
v.compare();
TableChangeValidatorState changeState = v.getState();
dropGroupIndexDefinitions(session, origTable, changeState.droppedGI);
Table newTable = schemaManager().getOnlineAIS(session).getTable(origTable.getTableId());
dropGroupIndexDefinitions(session, newTable, changeState.affectedGI.keySet());
schemaManager().alterTableDefinitions(session, changeState.descriptions);
newTable = schemaManager().getOnlineAIS(session).getTable(origTable.getTableId());