@Override public void beforeRegistration(final ODatabaseObject db, final SchemeDescriptor descriptor, final DropIndexes annotation) { for (String index : annotation.value()) { final OIndexManager indexManager = db.getMetadata().getIndexManager(); if (indexManager.existsIndex(index)) { SchemeUtils.dropIndex(db, index); logger.info("Index '{}' dropped for type {}", index, descriptor.schemeClass); } } }
Object execute(OCommandContext ctx) { final ODatabase database = ctx.getDatabase(); if (database.getMetadata().getIndexManager().existsIndex(name.getValue())) { if (ifNotExists) { return null;
@Override public OResultSet executeDDL(OCommandContext ctx) { OInternalResultSet rs = new OInternalResultSet(); ODatabase db = ctx.getDatabase(); OIndexManager idxMgr = db.getMetadata().getIndexManager(); if (all) { for (OIndex<?> idx : idxMgr.getIndexes()) { db.getMetadata().getIndexManager().dropIndex(idx.getName()); OResultInternal result = new OResultInternal(); result.setProperty("operation", "drop index"); result.setProperty("clusterName", idx.getName()); rs.add(result); } } else { if (!idxMgr.existsIndex(name.getValue()) && !ifExists) { throw new OCommandExecutionException("Index not found: " + name.getValue()); } idxMgr.dropIndex(name.getValue()); OResultInternal result = new OResultInternal(); result.setProperty("operation", "drop index"); result.setProperty("indexName", name.getValue()); rs.add(result); } return rs; }