/** * 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; }
this.createIfNotExists = createIfNotExists; this.type = indexMetadata.getType(); this.tableName = indexMetadata.getName().getTableName().getName(); this.keyspace = indexMetadata.getName().getTableName().getCatalogName().getName(); if (keyspace != null) { this.keyspaceIncluded = true; String catalog= Utils.toCaseSensitive(indexMetadata.getName().getTableName().getCatalogName() .getName()); String table=Utils.toCaseSensitive(indexMetadata.getName().getTableName().getName()); session.execute( "ALTER TABLE " + catalog + '.' + table + " ADD "
if(indexMetadata.getType() == IndexType.FULL_TEXT){ String tableName = Utils.toCaseSensitive(indexMetadata.getName().getTableName().getName()); String catalog = Utils.toCaseSensitive(indexMetadata.getName().getTableName().getCatalogName().getName()); String remove = "ALTER TABLE " + catalog + "." + tableName + " DROP " + indexMetadata .getName().getName();
/** * 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); } }