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.HTableDescriptor;
24 import org.apache.hadoop.hbase.hbql.client.ExecutionResults;
25 import org.apache.hadoop.hbase.hbql.client.HBqlException;
26 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
27 import org.apache.hadoop.hbase.hbql.mapping.FamilyDefinition;
28
29 import java.util.List;
30
31 public class CreateTableStatement extends GenericStatement implements ConnectionStatement {
32
33 private final String tableName;
34 private final List<FamilyDefinition> familyList;
35
36 public CreateTableStatement(final StatementPredicate predicate,
37 final String tableName,
38 final List<FamilyDefinition> familyList) {
39 super(predicate);
40 this.tableName = tableName;
41 this.familyList = familyList;
42 }
43
44 protected ExecutionResults execute(final HConnectionImpl conn) throws HBqlException {
45
46 final HTableDescriptor tableDesc = new HTableDescriptor(this.tableName);
47
48 for (final FamilyDefinition familyDefintion : this.familyList)
49 tableDesc.addFamily(familyDefintion.getColumnDescription());
50
51 conn.createTable(tableDesc);
52
53 return new ExecutionResults("Table " + tableDesc.getNameAsString() + " created.");
54 }
55
56 public static String usage() {
57 return "CREATE TABLE table_name (family_definition_list) [IF bool_expr]";
58 }
59 }