In Moodle 2.0 we have introduced field dependencies checking, so some actions, like dropping a field, now detect if there are some dependency (index using that field) and throws an exception if necessary.
Make the XMLDB PHP generator able to find such dependencies (in the xmldb model, not in real db) and provide with the needed PHP code needed to avoid that exception, normally:
- dropping the index/es before dropping the field for non unique indexes/keys
- re-adding the index - with the dropped field out for non unique indexes/keys
- BIG WARN if the dependent indexes/keys are defined as UNIQUE. Only drop is safe for 1-column indexes. Everything else, isn't because can lead to errors.