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
27 import java.io.IOException;
28
29 public class CompactTableStatement extends TableStatement {
30
31 final boolean isMajor;
32
33 public CompactTableStatement(final StatementPredicate predicate, final boolean isMajor, final String tableName) {
34 super(predicate, tableName);
35 this.isMajor = isMajor;
36 }
37
38 protected ExecutionResults execute(final HConnectionImpl conn) throws HBqlException {
39
40 try {
41 if (isMajor)
42 conn.getHBaseAdmin().majorCompact(this.getTableName());
43 else
44 conn.getHBaseAdmin().compact(this.getTableName());
45 }
46 catch (IOException e) {
47 throw new HBqlException(e);
48 }
49
50 return new ExecutionResults("Table " + this.getTableName() + (isMajor ? " major" : "") + " compacted.");
51 }
52
53 public static String usage() {
54 return "[MAJOR] COMPACT TABLE table_name [IF bool_expr]";
55 }
56 }