1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.hbql.statement;
22
23 import org.apache.hadoop.hbase.hbql.client.ExecutionResults;
24 import org.apache.hadoop.hbase.hbql.client.HBqlException;
25 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
26 import org.apache.hadoop.hbase.hbql.mapping.TableMapping;
27
28 public class DropIndexForMappingStatement extends StatementWithMapping implements ConnectionStatement {
29
30 private final String indexName;
31
32 public DropIndexForMappingStatement(final StatementPredicate predicate,
33 final String indexName,
34 final String mappingName) {
35 super(predicate, mappingName);
36 this.indexName = indexName;
37 }
38
39 private String getIndexName() {
40 return this.indexName;
41 }
42
43 protected ExecutionResults execute(final HConnectionImpl conn) throws HBqlException {
44 conn.dropIndexForMapping(this.getIndexName(), this.getMappingContext().getMappingName());
45 final TableMapping mapping = conn.getMapping(this.getMappingContext().getMappingName());
46 return new ExecutionResults("Index " + this.getIndexName() + " dropped for table " + mapping.getTableName());
47 }
48
49 public static String usage() {
50 return "DROP INDEX index_name ON [MAPPING] mapping_name [IF bool_expr]";
51 }
52 }