/** * Class constructor. * * @param index The name of the index. * @param ifExists Whether it should be removed only if exists. */ public DropIndexStatement(IndexMetadata index, boolean ifExists) { if (index.getColumns() != null && !index.getColumns().isEmpty()) { this.catalogInc = true; this.catalog = index.getName().getTableName().getCatalogName().getName(); } else { String[] indexQ = index.getName().getQualifiedName().split("\\."); if (indexQ.length > 1) { this.catalog = indexQ[0]; catalogInc = true; } else { catalogInc = false; } } this.indexName = index.getName().getName(); this.ifExists = ifExists; }
/** * Drop Index that was created previously. * * @param targetCluster The target cluster. * @param indexMetadata The IndexName of the index. * @throws ConnectorException */ @Override public void dropIndex(ClusterName targetCluster, IndexMetadata indexMetadata) throws ConnectorException { String remove; session = sessions.get(targetCluster.getName()); DropIndexStatement indexStatement = new DropIndexStatement(indexMetadata, false); //remove de column create for the index and automatically delete the index too String tableName = Utils.toCaseSensitive(indexMetadata.getName().getTableName().getName()); String catalog = Utils.toCaseSensitive(indexMetadata.getName().getTableName().getCatalogName().getName()); if (indexMetadata.getType() == IndexType.FULL_TEXT) { remove = "ALTER TABLE " + catalog + "." + tableName + " DROP " + Utils.toCaseSensitive(indexMetadata.getName().getName()); CassandraExecutor.execute(remove, session); } else { remove = "DROP INDEX " + catalog + "." + Utils.toCaseSensitive(indexMetadata.getName().getName()); /* String removeColumn = "ALTER TABLE " + catalog + "." + tableName + " DROP " + Utils.toCaseSensitive (indexMetadata .getName().getName());*/ CassandraExecutor.execute(remove, session); //CassandraExecutor.execute(removeColumn, session); } }
String catalog = Utils.toCaseSensitive(indexMetadata.getName().getTableName().getCatalogName().getName()); String remove = "ALTER TABLE " + catalog + "." + tableName + " DROP " + indexMetadata .getName().getName(); CassandraExecutor.execute(remove, session);