One other method that you'll need to add similar logic as you did with dropTables is dropColumn (which BTW should take a list of columns now just like with your addColumns change - maybe you can do this change in a follow up pull?).

For dropColumn, if you're dropping an indexed column, then we drop the index automatically. So in this case, you'd want to populate the deletedTables list in the MetaDataMutationResult returned from MetaDataEndPointImpl.dropColumn. And in ConnectionQueryServicesImpl, you'd want to call your dropTables method passing through this list. And finally, you'd want to not do the PostDDLCompiler stuff in MetaDataClient.dropColumn unless DROP_METADATA_ATTRIB is  false.

Makes sense?