You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2017/08/11 20:08:24 UTC

[2/4] hive git commit: HIVE-17224 Move JDO classes to standalone metastore (Alan Gates, reviewed by Vihang Karajgaonkar)

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDBPrivilege.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDBPrivilege.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDBPrivilege.java
new file mode 100644
index 0000000..4550fb2
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDBPrivilege.java
@@ -0,0 +1,132 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MDBPrivilege {
+
+  private String principalName;
+
+  private String principalType;
+
+  private MDatabase database;
+
+  private int createTime;
+
+  private String privilege;
+
+  private String grantor;
+
+  private String grantorType;
+
+  private boolean grantOption;
+
+  public MDBPrivilege() {
+  }
+
+  public MDBPrivilege(String principalName, String principalType,
+      MDatabase database, String dbPrivileges, int createTime, String grantor,
+      String grantorType, boolean grantOption) {
+    super();
+    this.principalName = principalName;
+    this.principalType = principalType;
+    this.database = database;
+    this.privilege = dbPrivileges;
+    this.createTime = createTime;
+    this.grantorType = grantorType;
+    this.grantOption = grantOption;
+    this.grantor = grantor;
+  }
+
+  /**
+   * @return user name, role name, or group name
+   */
+  public String getPrincipalName() {
+    return principalName;
+  }
+
+  /**
+   * @param userName user/role/group name
+   */
+  public void setPrincipalName(String userName) {
+    this.principalName = userName;
+  }
+
+  /**
+   * @return a set of privileges this user/role/group has
+   */
+  public String getPrivilege() {
+    return privilege;
+  }
+
+  /**
+   * @param dbPrivilege a set of privileges this user/role/group has
+   */
+  public void setPrivilege(String dbPrivilege) {
+    this.privilege = dbPrivilege;
+  }
+
+  public MDatabase getDatabase() {
+    return database;
+  }
+
+  public void setDatabase(MDatabase database) {
+    this.database = database;
+  }
+
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  public String getGrantor() {
+    return grantor;
+  }
+
+  public void setGrantor(String grantor) {
+    this.grantor = grantor;
+  }
+
+  public String getGrantorType() {
+    return grantorType;
+  }
+
+  public void setGrantorType(String grantorType) {
+    this.grantorType = grantorType;
+  }
+
+  public boolean getGrantOption() {
+    return grantOption;
+  }
+
+  public void setGrantOption(boolean grantOption) {
+    this.grantOption = grantOption;
+  }
+
+  public String getPrincipalType() {
+    return principalType;
+  }
+
+  public void setPrincipalType(String principalType) {
+    this.principalType = principalType;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDatabase.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDatabase.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDatabase.java
new file mode 100644
index 0000000..c5169f2
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDatabase.java
@@ -0,0 +1,128 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.Map;
+
+/**
+ * Storage Class representing the Hive MDatabase in a rdbms
+ *
+ */
+public class MDatabase {
+  private String name;
+  private String locationUri;
+  private String description;
+  private Map<String, String> parameters;
+  private String ownerName;
+  private String ownerType;
+
+  /**
+   * Default construction to keep jpox/jdo happy
+   */
+  public MDatabase() {}
+
+  /**
+   * To create a database object
+   * @param name of the database
+   * @param locationUri Location of the database in the warehouse
+   * @param description Comment describing the database
+   */
+  public MDatabase(String name, String locationUri, String description,
+      Map<String, String> parameters) {
+    this.name = name;
+    this.locationUri = locationUri;
+    this.description = description;
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return the name
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * @param name the name to set
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  /**
+   * @return the location_uri
+   */
+  public String getLocationUri() {
+    return locationUri;
+  }
+
+  /**
+   * @param locationUri the locationUri to set
+   */
+  public void setLocationUri(String locationUri) {
+    this.locationUri = locationUri;
+  }
+
+  /**
+   * @return the description
+   */
+  public String getDescription() {
+    return description;
+  }
+
+  /**
+   * @param description the description to set
+   */
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  /**
+   * @return the parameters mapping.
+   */
+  public Map<String, String> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * @param parameters the parameters mapping.
+   */
+  public void setParameters(Map<String, String> parameters) {
+    this.parameters = parameters;
+  }
+
+  public String getOwnerName() {
+    return ownerName;
+  }
+
+  public void setOwnerName(String ownerName) {
+    this.ownerName = ownerName;
+  }
+
+  public String getOwnerType() {
+    return ownerType;
+  }
+
+  public void setOwnerType(String ownerType) {
+    this.ownerType = ownerType;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDelegationToken.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDelegationToken.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDelegationToken.java
new file mode 100644
index 0000000..613469c
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MDelegationToken.java
@@ -0,0 +1,45 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MDelegationToken {
+
+  private String tokenStr;
+  private String tokenIdentifier;
+
+  public MDelegationToken(String tokenIdentifier, String tokenStr) {
+    super();
+    this.tokenStr = tokenStr;
+    this.tokenIdentifier = tokenIdentifier;
+  }
+
+  public String getTokenStr() {
+    return tokenStr;
+  }
+  public void setTokenStr(String tokenStr) {
+    this.tokenStr = tokenStr;
+  }
+  public String getTokenIdentifier() {
+    return tokenIdentifier;
+  }
+  public void setTokenIdentifier(String tokenIdentifier) {
+    this.tokenIdentifier = tokenIdentifier;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFieldSchema.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFieldSchema.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFieldSchema.java
new file mode 100644
index 0000000..bb64dc1
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFieldSchema.java
@@ -0,0 +1,80 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * 
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+/**
+ * Represent a column or a type of a table or object
+ */
+public class MFieldSchema {
+  private String name;
+  private String type;
+  private String comment;
+  public MFieldSchema() {}
+
+  /**
+   * @param comment
+   * @param name
+   * @param type
+   */
+  public MFieldSchema(String name, String type, String comment) {
+    this.comment = comment;
+    this.name = name;
+    this.type = type;
+  }
+  /**
+   * @return the name
+   */
+  public String getName() {
+    return name;
+  }
+  /**
+   * @param name the name to set
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+  /**
+   * @return the comment
+   */
+  public String getComment() {
+    return comment;
+  }
+  /**
+   * @param comment the comment to set
+   */
+  public void setComment(String comment) {
+    this.comment = comment;
+  }
+  /**
+   * @return the type
+   */
+  public String getType() {
+    return type;
+  }
+  /**
+   * @param field the type to set
+   */
+  public void setType(String field) {
+    this.type = field;
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFunction.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFunction.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFunction.java
new file mode 100644
index 0000000..59dbc49
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MFunction.java
@@ -0,0 +1,119 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+import org.apache.hadoop.hive.metastore.api.PrincipalType;
+import java.util.List;
+
+public class MFunction {
+
+  private String functionName;
+  private MDatabase database;
+  private String className;
+  private String ownerName;
+  private String ownerType;
+  private int createTime;
+  private int functionType;
+  private List<MResourceUri> resourceUris;
+
+  public MFunction() {
+  }
+
+  public MFunction(String functionName,
+      MDatabase database,
+      String className,
+      String ownerName,
+      String ownerType,
+      int createTime,
+      int functionType,
+      List<MResourceUri> resourceUris) {
+    this.setFunctionName(functionName);
+    this.setDatabase(database);
+    this.setFunctionType(functionType);
+    this.setClassName(className);
+    this.setOwnerName(ownerName);
+    this.setOwnerType(ownerType);
+    this.setCreateTime(createTime);
+    this.setResourceUris(resourceUris);
+  }
+
+  public String getFunctionName() {
+    return functionName;
+  }
+
+  public void setFunctionName(String functionName) {
+    this.functionName = functionName;
+  }
+
+  public MDatabase getDatabase() {
+    return database;
+  }
+
+  public void setDatabase(MDatabase database) {
+    this.database = database;
+  }
+
+  public String getClassName() {
+    return className;
+  }
+
+  public void setClassName(String className) {
+    this.className = className;
+  }
+
+  public String getOwnerName() {
+    return ownerName;
+  }
+
+  public void setOwnerName(String owner) {
+    this.ownerName = owner;
+  }
+
+  public String getOwnerType() {
+    return ownerType;
+  }
+
+  public void setOwnerType(String ownerType) {
+    this.ownerType = ownerType;
+  }
+
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  public int getFunctionType() {
+    return functionType;
+  }
+
+  public void setFunctionType(int functionType) {
+    this.functionType = functionType;
+  }
+
+  public List<MResourceUri> getResourceUris() {
+    return resourceUris;
+  }
+
+  public void setResourceUris(List<MResourceUri> resourceUris) {
+    this.resourceUris = resourceUris;
+  }  
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MGlobalPrivilege.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MGlobalPrivilege.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MGlobalPrivilege.java
new file mode 100644
index 0000000..1dbe3a4
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MGlobalPrivilege.java
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+/**
+ * User global level privileges
+ */
+public class MGlobalPrivilege {
+
+  //principal name, can be a user, group, or role
+  private String principalName;
+
+  private String principalType;
+
+  private String privilege;
+
+  private int createTime;
+
+  private String grantor;
+
+  private String grantorType;
+
+  private boolean grantOption;
+
+  public MGlobalPrivilege() {
+    super();
+  }
+
+  public MGlobalPrivilege(String userName, String principalType,
+      String dbPrivilege, int createTime, String grantor, String grantorType,
+      boolean grantOption) {
+    super();
+    this.principalName = userName;
+    this.principalType = principalType;
+    this.privilege = dbPrivilege;
+    this.createTime = createTime;
+    this.grantor = grantor;
+    this.grantorType = grantorType;
+    this.grantOption = grantOption;
+  }
+
+  /**
+   * @return a set of global privileges granted to this user
+   */
+  public String getPrivilege() {
+    return privilege;
+  }
+
+  /**
+   * @param dbPrivilege set of global privileges to user
+   */
+  public void setPrivilege(String dbPrivilege) {
+    this.privilege = dbPrivilege;
+  }
+
+  public String getPrincipalName() {
+    return principalName;
+  }
+
+  public void setPrincipalName(String principalName) {
+    this.principalName = principalName;
+  }
+
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  public String getGrantor() {
+    return grantor;
+  }
+
+  public void setGrantor(String grantor) {
+    this.grantor = grantor;
+  }
+
+  public boolean getGrantOption() {
+    return grantOption;
+  }
+
+  public void setGrantOption(boolean grantOption) {
+    this.grantOption = grantOption;
+  }
+
+  public String getPrincipalType() {
+    return principalType;
+  }
+
+  public void setPrincipalType(String principalType) {
+    this.principalType = principalType;
+  }
+
+  public String getGrantorType() {
+    return grantorType;
+  }
+
+  public void setGrantorType(String grantorType) {
+    this.grantorType = grantorType;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MIndex.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MIndex.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MIndex.java
new file mode 100644
index 0000000..c9f1149
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MIndex.java
@@ -0,0 +1,200 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.Map;
+
+/**
+ * Represents hive's index definition.
+ */
+public class MIndex {
+
+  private String indexName;
+  private MTable origTable;
+  private int createTime;
+  private int lastAccessTime;
+  private Map<String, String> parameters;
+  private MTable indexTable;
+  private MStorageDescriptor sd;
+  private String indexHandlerClass;
+  private boolean deferredRebuild;
+
+  public MIndex() {}
+
+/**
+ * @param indexName
+ * @param baseTable
+ * @param createTime
+ * @param lastAccessTime
+ * @param parameters
+ * @param indexTable
+ * @param sd
+ * @param indexHandlerClass
+ * @param deferredRebuild
+ */
+  public MIndex(String indexName, MTable baseTable, int createTime,
+      int lastAccessTime, Map<String, String> parameters, MTable indexTable,
+      MStorageDescriptor sd, String indexHandlerClass, boolean deferredRebuild) {
+    super();
+    this.indexName = indexName;
+    this.origTable = baseTable;
+    this.createTime = createTime;
+    this.lastAccessTime = lastAccessTime;
+    this.parameters = parameters;
+    this.indexTable = indexTable;
+    this.sd = sd;
+    this.indexHandlerClass = indexHandlerClass;
+    this.deferredRebuild = deferredRebuild;
+  }
+
+
+
+  /**
+   * @return index name
+   */
+  public String getIndexName() {
+    return indexName;
+  }
+
+  /**
+   * @param indexName index name
+   */
+  public void setIndexName(String indexName) {
+    this.indexName = indexName;
+  }
+
+  /**
+   * @return create time
+   */
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  /**
+   * @param createTime create time
+   */
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  /**
+   * @return last access time
+   */
+  public int getLastAccessTime() {
+    return lastAccessTime;
+  }
+
+  /**
+   * @param lastAccessTime last access time
+   */
+  public void setLastAccessTime(int lastAccessTime) {
+    this.lastAccessTime = lastAccessTime;
+  }
+
+  /**
+   * @return parameters
+   */
+  public Map<String, String> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * @param parameters parameters
+   */
+  public void setParameters(Map<String, String> parameters) {
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return original table
+   */
+  public MTable getOrigTable() {
+    return origTable;
+  }
+
+  /**
+   * @param origTable
+   */
+  public void setOrigTable(MTable origTable) {
+    this.origTable = origTable;
+  }
+
+  /**
+   * @return index table
+   */
+  public MTable getIndexTable() {
+    return indexTable;
+  }
+
+  /**
+   * @param indexTable
+   */
+  public void setIndexTable(MTable indexTable) {
+    this.indexTable = indexTable;
+  }
+
+  /**
+   * @return storage descriptor
+   */
+  public MStorageDescriptor getSd() {
+    return sd;
+  }
+
+  /**
+   * @param sd
+   */
+  public void setSd(MStorageDescriptor sd) {
+    this.sd = sd;
+  }
+
+  /**
+   * @return indexHandlerClass
+   */
+  public String getIndexHandlerClass() {
+    return indexHandlerClass;
+  }
+
+  /**
+   * @param indexHandlerClass
+   */
+  public void setIndexHandlerClass(String indexHandlerClass) {
+    this.indexHandlerClass = indexHandlerClass;
+  }
+
+  /**
+   * @return auto rebuild
+   */
+  public boolean isDeferredRebuild() {
+    return deferredRebuild;
+  }
+
+  /**
+   * @return auto rebuild
+   */
+  public boolean getDeferredRebuild() {
+    return deferredRebuild;
+  }
+
+  /**
+   * @param deferredRebuild
+   */
+  public void setDeferredRebuild(boolean deferredRebuild) {
+    this.deferredRebuild = deferredRebuild;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMasterKey.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMasterKey.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMasterKey.java
new file mode 100644
index 0000000..6b5c221
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMasterKey.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MMasterKey {
+
+  public MMasterKey(int keyId, String masterKey) {
+    this.keyId = keyId;
+    this.masterKey = masterKey;
+  }
+
+  private int keyId;
+  private String masterKey;
+
+  public MMasterKey(String masterKey) {
+    this.masterKey = masterKey;
+  }
+
+  public MMasterKey(int keyId) {
+    this.keyId = keyId;
+  }
+
+  public String getMasterKey() {
+    return masterKey;
+  }
+
+  public void setMasterKey(String masterKey) {
+    this.masterKey = masterKey;
+  }
+
+  public int getKeyId() {
+    return keyId;
+  }
+
+  public void setKeyId(int keyId) {
+    this.keyId = keyId;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMetastoreDBProperties.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMetastoreDBProperties.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMetastoreDBProperties.java
new file mode 100644
index 0000000..c0a2485
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MMetastoreDBProperties.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+public class MMetastoreDBProperties {
+  private String propertyKey;
+  private String propertyValue;
+  private String description;
+
+  public MMetastoreDBProperties() {}
+
+  public MMetastoreDBProperties(String propertykey, String propertyValue, String description) {
+    this.propertyKey = propertykey;
+    this.propertyValue = propertyValue;
+    this.description = description;
+  }
+
+  public String getPropertykey() {
+    return propertyKey;
+  }
+
+  public void setPropertykey(String propertykey) {
+    this.propertyKey = propertykey;
+  }
+
+  public String getPropertyValue() {
+    return propertyValue;
+  }
+
+  public void setPropertyValue(String propertyValue) {
+    this.propertyValue = propertyValue;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationLog.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationLog.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationLog.java
new file mode 100644
index 0000000..d3a166f
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationLog.java
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+public class MNotificationLog {
+
+  private long eventId; // This is not the datanucleus id, but the id assigned by the sequence
+  private int eventTime;
+  private String eventType;
+  private String dbName;
+  private String tableName;
+  private String message;
+  private String messageFormat;
+
+  public MNotificationLog() {
+  }
+
+  public MNotificationLog(int eventId, String eventType, String dbName, String tableName,
+                          String message) {
+    this.eventId = eventId;
+    this.eventType = eventType;
+    this.dbName = dbName;
+    this.tableName = tableName;
+    this.message = message;
+  }
+
+  public void setEventId(long eventId) {
+    this.eventId = eventId;
+  }
+
+  public long getEventId() {
+    return eventId;
+
+  }
+
+  public int getEventTime() {
+    return eventTime;
+  }
+
+  public void setEventTime(int eventTime) {
+    this.eventTime = eventTime;
+  }
+
+  public String getEventType() {
+    return eventType;
+  }
+
+  public void setEventType(String eventType) {
+    this.eventType = eventType;
+  }
+
+  public String getDbName() {
+    return dbName;
+  }
+
+  public void setDbName(String dbName) {
+    this.dbName = dbName;
+  }
+
+  public String getTableName() {
+    return tableName;
+  }
+
+  public void setTableName(String tableName) {
+    this.tableName = tableName;
+  }
+
+  public String getMessage() {
+    return message;
+  }
+
+  public void setMessage(String message) {
+    this.message = message;
+  }
+
+  public String getMessageFormat() {
+    return messageFormat;
+  }
+
+  public void setMessageFormat(String messageFormat) {
+    this.messageFormat = messageFormat;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java
new file mode 100644
index 0000000..ef15848
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+public class MNotificationNextId {
+
+  private long nextEventId;
+
+  public MNotificationNextId() {
+  }
+
+  public MNotificationNextId(long nextEventId) {
+    this.nextEventId = nextEventId;
+  }
+
+  public long getNextEventId() {
+    return nextEventId;
+  }
+
+  public void setNextEventId(long nextEventId) {
+    this.nextEventId = nextEventId;
+  }
+
+  public void incrementEventId() {
+    nextEventId++;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MOrder.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MOrder.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MOrder.java
new file mode 100644
index 0000000..732c278
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MOrder.java
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MOrder {
+  private String col;
+  private int order;
+
+  /**
+   * @param col
+   * @param order
+   */
+  public MOrder(String col, int order) {
+    this.col = col;
+    this.order = order;
+  }
+
+  /**
+   * @return the col
+   */
+  public String getCol() {
+    return col;
+  }
+
+  /**
+   * @param col the col to set
+   */
+  public void setCol(String col) {
+    this.col = col;
+  }
+
+  /**
+   * @return the order
+   */
+  public int getOrder() {
+    return order;
+  }
+
+  /**
+   * @param order the order to set
+   */
+  public void setOrder(int order) {
+    this.order = order;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartition.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartition.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartition.java
new file mode 100644
index 0000000..4aef5ac
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartition.java
@@ -0,0 +1,155 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class MPartition {
+
+  private String partitionName; // partitionname ==>  (key=value/)*(key=value)
+  private MTable table; 
+  private List<String> values;
+  private int createTime;
+  private int lastAccessTime;
+  private MStorageDescriptor sd;
+  private Map<String, String> parameters;
+  
+  
+  public MPartition() {}
+  
+  /**
+   * @param partitionName
+   * @param table
+   * @param values
+   * @param createTime
+   * @param lastAccessTime
+   * @param sd
+   * @param parameters
+   */
+  public MPartition(String partitionName, MTable table, List<String> values, int createTime,
+      int lastAccessTime, MStorageDescriptor sd, Map<String, String> parameters) {
+    this.partitionName = partitionName;
+    this.table = table;
+    this.values = values;
+    this.createTime = createTime;
+    this.lastAccessTime = lastAccessTime;
+    this.sd = sd;
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return the lastAccessTime
+   */
+  public int getLastAccessTime() {
+    return lastAccessTime;
+  }
+
+  /**
+   * @param lastAccessTime the lastAccessTime to set
+   */
+  public void setLastAccessTime(int lastAccessTime) {
+    this.lastAccessTime = lastAccessTime;
+  }
+
+  /**
+   * @return the values
+   */
+  public List<String> getValues() {
+    return values;
+  }
+
+  /**
+   * @param values the values to set
+   */
+  public void setValues(List<String> values) {
+    this.values = values;
+  }
+
+  /**
+   * @return the table
+   */
+  public MTable getTable() {
+    return table;
+  }
+
+  /**
+   * @param table the table to set
+   */
+  public void setTable(MTable table) {
+    this.table = table;
+  }
+
+  /**
+   * @return the sd
+   */
+  public MStorageDescriptor getSd() {
+    return sd;
+  }
+
+  /**
+   * @param sd the sd to set
+   */
+  public void setSd(MStorageDescriptor sd) {
+    this.sd = sd;
+  }
+
+  /**
+   * @return the parameters
+   */
+  public Map<String, String> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * @param parameters the parameters to set
+   */
+  public void setParameters(Map<String, String> parameters) {
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return the partitionName
+   */
+  public String getPartitionName() {
+    return partitionName;
+  }
+
+  /**
+   * @param partitionName the partitionName to set
+   */
+  public void setPartitionName(String partitionName) {
+    this.partitionName = partitionName;
+  }
+
+  /**
+   * @return the createTime
+   */
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  /**
+   * @param createTime the createTime to set
+   */
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnPrivilege.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnPrivilege.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnPrivilege.java
new file mode 100644
index 0000000..555222b
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnPrivilege.java
@@ -0,0 +1,161 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+
+public class MPartitionColumnPrivilege {
+
+  private String principalName;
+
+  private String principalType;
+
+  private MPartition partition;
+
+  private String columnName;
+
+  private String privilege;
+
+  private int createTime;
+
+  private String grantor;
+
+  private String grantorType;
+
+  private boolean grantOption;
+
+  public MPartitionColumnPrivilege() {
+  }
+
+  /**
+   * @param principalName
+   * @param principalType
+   * @param partition
+   * @param columnName
+   * @param privileges
+   * @param createTime
+   * @param grantor
+   * @param grantorType
+   * @param grantOption
+   */
+  public MPartitionColumnPrivilege(String principalName, String principalType,
+      MPartition partition, String columnName, String privileges, int createTime,
+      String grantor, String grantorType, boolean grantOption) {
+    super();
+    this.principalName = principalName;
+    this.principalType = principalType;
+    this.partition = partition;
+    this.columnName = columnName;
+    this.privilege = privileges;
+    this.createTime = createTime;
+    this.grantor = grantor;
+    this.grantorType = grantorType;
+    this.grantOption = grantOption;
+  }
+
+  /**
+   * @return column name
+   */
+  public String getColumnName() {
+    return columnName;
+  }
+
+  /**
+   * @param columnName column name
+   */
+  public void setColumnName(String columnName) {
+    this.columnName = columnName;
+  }
+
+  /**
+   * @return a set of privileges this user/role/group has
+   */
+  public String getPrivilege() {
+    return privilege;
+  }
+
+  /**
+   * @param dbPrivileges a set of privileges this user/role/group has
+   */
+  public void setPrivilege(String dbPrivileges) {
+    this.privilege = dbPrivileges;
+  }
+
+  /**
+   * @return create time
+   */
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  /**
+   * @param createTime create time
+   */
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  public String getPrincipalName() {
+    return principalName;
+  }
+
+  public void setPrincipalName(String principalName) {
+    this.principalName = principalName;
+  }
+
+  public MPartition getPartition() {
+    return partition;
+  }
+
+  public void setPartition(MPartition partition) {
+    this.partition = partition;
+  }
+
+  public String getGrantor() {
+    return grantor;
+  }
+
+  public void setGrantor(String grantor) {
+    this.grantor = grantor;
+  }
+
+  public String getGrantorType() {
+    return grantorType;
+  }
+
+  public void setGrantorType(String grantorType) {
+    this.grantorType = grantorType;
+  }
+
+  public boolean getGrantOption() {
+    return grantOption;
+  }
+
+  public void setGrantOption(boolean grantOption) {
+    this.grantOption = grantOption;
+  }
+
+  public String getPrincipalType() {
+    return principalType;
+  }
+
+  public void setPrincipalType(String principalType) {
+    this.principalType = principalType;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnStatistics.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnStatistics.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnStatistics.java
new file mode 100644
index 0000000..20129bb
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionColumnStatistics.java
@@ -0,0 +1,272 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+
+
+/**
+ *
+ * MPartitionColumnStatistics - Represents Hive's partiton level Column Statistics Description.
+ * The fields in this class with the exception of partition are persisted in the metastore.
+ * In case of partition, part_id is persisted in its place.
+ *
+ */
+public class MPartitionColumnStatistics {
+
+  private MPartition partition;
+
+  private String dbName;
+  private String tableName;
+  private String partitionName;
+  private String colName;
+  private String colType;
+
+  private Long longLowValue;
+  private Long longHighValue;
+  private Double doubleLowValue;
+  private Double doubleHighValue;
+  private String decimalLowValue;
+  private String decimalHighValue;
+  private Long numNulls;
+  private Long numDVs;
+  private byte[] bitVector;
+  private Double avgColLen;
+  private Long maxColLen;
+  private Long numTrues;
+  private Long numFalses;
+  private long lastAnalyzed;
+
+  public MPartitionColumnStatistics() {}
+
+  public String getTableName() {
+    return tableName;
+  }
+
+  public void setTableName(String tableName) {
+    this.tableName = tableName;
+  }
+
+  public String getColName() {
+    return colName;
+  }
+
+  public void setColName(String colName) {
+    this.colName = colName;
+  }
+
+  public Long getNumNulls() {
+    return numNulls;
+  }
+
+  public void setNumNulls(long numNulls) {
+    this.numNulls = numNulls;
+  }
+
+  public Long getNumDVs() {
+    return numDVs;
+  }
+
+  public void setNumDVs(long numDVs) {
+    this.numDVs = numDVs;
+  }
+
+  public Double getAvgColLen() {
+    return avgColLen;
+  }
+
+  public void setAvgColLen(double avgColLen) {
+    this.avgColLen = avgColLen;
+  }
+
+  public Long getMaxColLen() {
+    return maxColLen;
+  }
+
+  public void setMaxColLen(long maxColLen) {
+    this.maxColLen = maxColLen;
+  }
+
+  public Long getNumTrues() {
+    return numTrues;
+  }
+
+  public void setNumTrues(long numTrues) {
+    this.numTrues = numTrues;
+  }
+
+  public Long getNumFalses() {
+    return numFalses;
+  }
+
+  public void setNumFalses(long numFalses) {
+    this.numFalses = numFalses;
+  }
+
+  public long getLastAnalyzed() {
+    return lastAnalyzed;
+  }
+
+  public void setLastAnalyzed(long lastAnalyzed) {
+    this.lastAnalyzed = lastAnalyzed;
+  }
+
+  public String getDbName() {
+    return dbName;
+  }
+
+  public void setDbName(String dbName) {
+    this.dbName = dbName;
+  }
+
+  public MPartition getPartition() {
+    return partition;
+  }
+
+  public void setPartition(MPartition partition) {
+    this.partition = partition;
+  }
+
+  public String getPartitionName() {
+    return partitionName;
+  }
+
+  public void setPartitionName(String partitionName) {
+    this.partitionName = partitionName;
+  }
+
+  public String getColType() {
+    return colType;
+  }
+
+  public void setColType(String colType) {
+    this.colType = colType;
+  }
+
+  public void setBooleanStats(Long numTrues, Long numFalses, Long numNulls) {
+    this.numTrues = numTrues;
+    this.numFalses = numFalses;
+    this.numNulls = numNulls;
+  }
+
+  public void setLongStats(Long numNulls, Long numNDVs, byte[] bitVector, Long lowValue, Long highValue) {
+    this.numNulls = numNulls;
+    this.numDVs = numNDVs;
+    this.bitVector = bitVector;
+    this.longLowValue = lowValue;
+    this.longHighValue = highValue;
+  }
+
+  public void setDoubleStats(Long numNulls, Long numNDVs, byte[] bitVector, Double lowValue, Double highValue) {
+    this.numNulls = numNulls;
+    this.numDVs = numNDVs;
+    this.bitVector = bitVector;
+    this.doubleLowValue = lowValue;
+    this.doubleHighValue = highValue;
+  }
+
+  public void setDecimalStats(
+      Long numNulls, Long numNDVs, byte[] bitVector, String lowValue, String highValue) {
+    this.numNulls = numNulls;
+    this.numDVs = numNDVs;
+    this.bitVector = bitVector;
+    this.decimalLowValue = lowValue;
+    this.decimalHighValue = highValue;
+  }
+
+  public void setStringStats(Long numNulls, Long numNDVs, byte[] bitVector, Long maxColLen, Double avgColLen) {
+    this.numNulls = numNulls;
+    this.numDVs = numNDVs;
+    this.bitVector = bitVector;
+    this.maxColLen = maxColLen;
+    this.avgColLen = avgColLen;
+  }
+
+  public void setBinaryStats(Long numNulls, Long maxColLen, Double avgColLen) {
+    this.numNulls = numNulls;
+    this.maxColLen = maxColLen;
+    this.avgColLen = avgColLen;
+  }
+
+  public void setDateStats(Long numNulls, Long numNDVs, byte[] bitVector, Long lowValue, Long highValue) {
+    this.numNulls = numNulls;
+    this.numDVs = numNDVs;
+    this.bitVector = bitVector;
+    this.longLowValue = lowValue;
+    this.longHighValue = highValue;
+  }
+
+  public Long getLongLowValue() {
+    return longLowValue;
+  }
+
+  public void setLongLowValue(Long longLowValue) {
+    this.longLowValue = longLowValue;
+  }
+
+  public Long getLongHighValue() {
+    return longHighValue;
+  }
+
+  public void setLongHighValue(Long longHighValue) {
+    this.longHighValue = longHighValue;
+  }
+
+  public Double getDoubleLowValue() {
+    return doubleLowValue;
+  }
+
+  public void setDoubleLowValue(Double doubleLowValue) {
+    this.doubleLowValue = doubleLowValue;
+  }
+
+  public Double getDoubleHighValue() {
+    return doubleHighValue;
+  }
+
+  public void setDoubleHighValue(Double doubleHighValue) {
+    this.doubleHighValue = doubleHighValue;
+  }
+
+  public String getDecimalLowValue() {
+    return decimalLowValue;
+  }
+
+  public void setDecimalLowValue(String decimalLowValue) {
+    this.decimalLowValue = decimalLowValue;
+  }
+
+  public String getDecimalHighValue() {
+    return decimalHighValue;
+  }
+
+  public void setDecimalHighValue(String decimalHighValue) {
+    this.decimalHighValue = decimalHighValue;
+  }
+
+  public byte[] getBitVector() {
+    return bitVector;
+  }
+
+  public void setBitVector(byte[] bitVector) {
+    this.bitVector = bitVector;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionEvent.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionEvent.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionEvent.java
new file mode 100644
index 0000000..266acd0
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionEvent.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+
+public class MPartitionEvent {
+
+  private String dbName;
+
+  private String tblName;
+
+  private String partName;
+
+  private long eventTime;
+
+  private int eventType;
+
+  public MPartitionEvent(String dbName, String tblName, String partitionName, int eventType) {
+    super();
+    this.dbName = dbName;
+    this.tblName = tblName;
+    this.partName = partitionName;
+    this.eventType = eventType;
+    this.eventTime = System.currentTimeMillis();
+  }
+
+  public MPartitionEvent() {}
+
+  /**
+   * @param dbName the dbName to set
+   */
+  public void setDbName(String dbName) {
+    this.dbName = dbName;
+  }
+
+  /**
+   * @param tblName the tblName to set
+   */
+  public void setTblName(String tblName) {
+    this.tblName = tblName;
+  }
+
+  /**
+   * @param partName the partSpec to set
+   */
+  public void setPartName(String partName) {
+    this.partName = partName;
+  }
+
+  /**
+   * @param createTime the eventTime to set
+   */
+  public void setEventTime(long createTime) {
+    this.eventTime = createTime;
+  }
+
+  /**
+   * @param eventType the EventType to set
+   */
+  public void setEventType(int eventType) {
+    this.eventType = eventType;
+  }
+
+  /* (non-Javadoc)
+   * @see java.lang.Object#toString()
+   */
+  @Override
+  public String toString() {
+    return "MPartitionEvent [dbName=" + dbName + ", tblName=" + tblName + ", partName=" + partName
+        + ", eventTime=" + eventTime + ", EventType=" + eventType + "]";
+  }
+
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionPrivilege.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionPrivilege.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionPrivilege.java
new file mode 100644
index 0000000..2af0d00
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPartitionPrivilege.java
@@ -0,0 +1,139 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MPartitionPrivilege {
+
+  private String principalName;
+
+  private String principalType;
+
+  private MPartition partition;
+
+  private String privilege;
+
+  private int createTime;
+
+  private String grantor;
+
+  private String grantorType;
+
+  private boolean grantOption;
+
+  public MPartitionPrivilege() {
+  }
+
+  public MPartitionPrivilege(String principalName, String principalType,
+      MPartition partition, String privilege, int createTime,
+      String grantor, String grantorType, boolean grantOption) {
+    super();
+    this.principalName = principalName;
+    this.principalType = principalType;
+    this.partition = partition;
+    this.privilege = privilege;
+    this.createTime = createTime;
+    this.grantor = grantor;
+    this.grantorType = grantorType;
+    this.grantOption = grantOption;
+  }
+
+  public String getPrincipalName() {
+    return principalName;
+  }
+
+  public void setPrincipalName(String principalName) {
+    this.principalName = principalName;
+  }
+
+
+  /**
+   * @return a set of privileges this user/role/group has
+   */
+  public String getPrivilege() {
+    return privilege;
+  }
+
+  /**
+   * @param dbPrivilege a set of privileges this user/role/group has
+   */
+  public void setPrivilege(String dbPrivilege) {
+    this.privilege = dbPrivilege;
+  }
+
+  /**
+   * @return create time
+   */
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  /**
+   * @param createTime create time
+   */
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  /**
+   * @return the grantor
+   */
+  public String getGrantor() {
+    return grantor;
+  }
+
+  /**
+   * @param grantor
+   */
+  public void setGrantor(String grantor) {
+    this.grantor = grantor;
+  }
+
+  public String getPrincipalType() {
+    return principalType;
+  }
+
+  public void setPrincipalType(String principalType) {
+    this.principalType = principalType;
+  }
+
+  public MPartition getPartition() {
+    return partition;
+  }
+
+  public void setPartition(MPartition partition) {
+    this.partition = partition;
+  }
+
+  public boolean getGrantOption() {
+    return grantOption;
+  }
+
+  public void setGrantOption(boolean grantOption) {
+    this.grantOption = grantOption;
+  }
+
+  public String getGrantorType() {
+    return grantorType;
+  }
+
+  public void setGrantorType(String grantorType) {
+    this.grantorType = grantorType;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPrincipalDesc.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPrincipalDesc.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPrincipalDesc.java
new file mode 100644
index 0000000..42062b1
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MPrincipalDesc.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MPrincipalDesc {
+
+  private String name;
+  private String type;
+
+  public MPrincipalDesc() {}
+
+  public MPrincipalDesc(String name, String type) {
+    this.name = name;
+    this.type = type;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  @Override
+  public int hashCode() {
+    return type.hashCode() + name.hashCode();
+  }
+
+  @Override
+  public boolean equals(Object object) {
+    MPrincipalDesc another = (MPrincipalDesc) object;
+    return type.equals(another.type) && name.equals(another.name);
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MResourceUri.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MResourceUri.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MResourceUri.java
new file mode 100644
index 0000000..0998cf7
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MResourceUri.java
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MResourceUri {
+  private int resourceType;
+  private String uri;
+
+  public MResourceUri() {
+  }
+
+  public MResourceUri(int resourceType, String uri) {
+    super();
+    this.resourceType = resourceType;
+    this.uri = uri;
+  }
+
+  public int getResourceType() {
+    return resourceType;
+  }
+
+  public void setResourceType(int resourceType) {
+    this.resourceType = resourceType;
+  }
+
+  public String getUri() {
+    return uri;
+  }
+
+  public void setUri(String uri) {
+    this.uri = uri;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRole.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRole.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRole.java
new file mode 100644
index 0000000..ce0f472
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRole.java
@@ -0,0 +1,80 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MRole {
+
+  private String roleName;
+
+  private int createTime;
+
+  private String ownerName;
+
+  public MRole() {
+  }
+
+  public MRole(String roleName, int createTime, String ownerName) {
+    super();
+    this.roleName = roleName;
+    this.createTime = createTime;
+    this.ownerName = ownerName;
+  }
+
+  /**
+   * @return role name
+   */
+  public String getRoleName() {
+    return roleName;
+  }
+
+  /**
+   * @param roleName
+   */
+  public void setRoleName(String roleName) {
+    this.roleName = roleName;
+  }
+
+  /**
+   * @return create time
+   */
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  /**
+   * @param createTime
+   *          role create time
+   */
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  /**
+   * @return the principal name who created this role
+   */
+  public String getOwnerName() {
+    return ownerName;
+  }
+
+  public void setOwnerName(String ownerName) {
+    this.ownerName = ownerName;
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRoleMap.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRoleMap.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRoleMap.java
new file mode 100644
index 0000000..ef8e17c
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MRoleMap.java
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MRoleMap {
+  
+  private String principalName;
+  
+  private String principalType;
+  
+  private MRole role;
+  
+  private int addTime;
+  
+  private String grantor;
+  
+  private String grantorType;
+  
+  private boolean grantOption;
+
+  public MRoleMap() {
+  }
+  
+  public MRoleMap(String principalName, String principalType, MRole role,
+      int addTime, String grantor, String grantorType, boolean grantOption) {
+    super();
+    this.principalName = principalName;
+    this.principalType = principalType;
+    this.role = role;
+    this.addTime = addTime;
+    this.grantor = grantor;
+    this.grantorType = grantorType;
+    this.grantOption = grantOption;
+  }
+
+  /**
+   * @return principal name
+   */
+  public String getPrincipalName() {
+    return principalName;
+  }
+
+  /**
+   * @param userName principal name
+   */
+  public void setPrincipalName(String userName) {
+    this.principalName = userName;
+  }
+
+  public String getPrincipalType() {
+    return principalType;
+  }
+
+  public void setPrincipalType(String principalType) {
+    this.principalType = principalType;
+  }
+
+  /**
+   * @return add time
+   */
+  public int getAddTime() {
+    return addTime;
+  }
+
+  /**
+   * @param addTime
+   */
+  public void setAddTime(int addTime) {
+    this.addTime = addTime;
+  }
+
+  public MRole getRole() {
+    return role;
+  }
+
+  public void setRole(MRole role) {
+    this.role = role;
+  }
+  
+  public boolean getGrantOption() {
+    return grantOption;
+  }
+
+  public void setGrantOption(boolean grantOption) {
+    this.grantOption = grantOption;
+  }
+  
+  public String getGrantor() {
+    return grantor;
+  }
+
+  public void setGrantor(String grantor) {
+    this.grantor = grantor;
+  }
+
+  public String getGrantorType() {
+    return grantorType;
+  }
+
+  public void setGrantorType(String grantorType) {
+    this.grantorType = grantorType;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MSerDeInfo.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MSerDeInfo.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MSerDeInfo.java
new file mode 100644
index 0000000..2c16e61
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MSerDeInfo.java
@@ -0,0 +1,81 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.Map;
+
+public class MSerDeInfo {
+  private String name;
+  private String serializationLib;
+  private Map<String, String> parameters;
+
+  /**
+   * @param name
+   * @param serializationLib
+   * @param parameters
+   */
+  public MSerDeInfo(String name, String serializationLib, Map<String, String> parameters) {
+    this.name = name;
+    this.serializationLib = serializationLib;
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return the serializationLib
+   */
+  public String getSerializationLib() {
+    return serializationLib;
+  }
+
+  /**
+   * @param serializationLib the serializationLib to set
+   */
+  public void setSerializationLib(String serializationLib) {
+    this.serializationLib = serializationLib;
+  }
+
+  /**
+   * @return the name
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * @param name the name to set
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  /**
+   * @return the parameters
+   */
+  public Map<String, String> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * @param parameters the parameters to set
+   */
+  public void setParameters(Map<String, String> parameters) {
+    this.parameters = parameters;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java
new file mode 100644
index 0000000..2e021af
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java
@@ -0,0 +1,277 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class MStorageDescriptor {
+  private MColumnDescriptor cd;
+  private String location;
+  private String inputFormat;
+  private String outputFormat;
+  private boolean isCompressed = false;
+  private int numBuckets = 1;
+  private MSerDeInfo serDeInfo;
+  private List<String> bucketCols;
+  private List<MOrder> sortCols;
+  private Map<String, String> parameters;
+  private List<String> skewedColNames;
+  private List<MStringList> skewedColValues;
+  private Map<MStringList, String> skewedColValueLocationMaps;
+  private boolean isStoredAsSubDirectories;
+
+  public MStorageDescriptor() {}
+
+
+  /**
+   * @param cd
+   * @param location
+   * @param inputFormat
+   * @param outputFormat
+   * @param isCompressed
+   * @param numBuckets
+   * @param serDeInfo
+   * @param bucketCols
+   * @param sortOrder
+   * @param parameters
+   */
+  public MStorageDescriptor(MColumnDescriptor cd, String location, String inputFormat,
+      String outputFormat, boolean isCompressed, int numBuckets, MSerDeInfo serDeInfo,
+      List<String> bucketCols, List<MOrder> sortOrder, Map<String, String> parameters,
+      List<String> skewedColNames, List<MStringList> skewedColValues,
+      Map<MStringList, String> skewedColValueLocationMaps, boolean storedAsSubDirectories) {
+    this.cd = cd;
+    this.location = location;
+    this.inputFormat = inputFormat;
+    this.outputFormat = outputFormat;
+    this.isCompressed = isCompressed;
+    this.numBuckets = numBuckets;
+    this.serDeInfo = serDeInfo;
+    this.bucketCols = bucketCols;
+    this.sortCols = sortOrder;
+    this.parameters = parameters;
+    this.skewedColNames = skewedColNames;
+    this.skewedColValues = skewedColValues;
+    this.skewedColValueLocationMaps = skewedColValueLocationMaps;
+    this.isStoredAsSubDirectories = storedAsSubDirectories;
+  }
+
+
+  /**
+   * @return the location
+   */
+  public String getLocation() {
+    return location;
+  }
+
+  /**
+   * @param location the location to set
+   */
+  public void setLocation(String location) {
+    this.location = location;
+  }
+
+  /**
+   * @return the isCompressed
+   */
+  public boolean isCompressed() {
+    return isCompressed;
+  }
+
+  /**
+   * @param isCompressed the isCompressed to set
+   */
+  public void setCompressed(boolean isCompressed) {
+    this.isCompressed = isCompressed;
+  }
+
+  /**
+   * @return the numBuckets
+   */
+  public int getNumBuckets() {
+    return numBuckets;
+  }
+
+  /**
+   * @param numBuckets the numBuckets to set
+   */
+  public void setNumBuckets(int numBuckets) {
+    this.numBuckets = numBuckets;
+  }
+
+  /**
+   * @return the bucketCols
+   */
+  public List<String> getBucketCols() {
+    return bucketCols;
+  }
+
+  /**
+   * @param bucketCols the bucketCols to set
+   */
+  public void setBucketCols(List<String> bucketCols) {
+    this.bucketCols = bucketCols;
+  }
+
+  /**
+   * @return the parameters
+   */
+  public Map<String, String> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * @param parameters the parameters to set
+   */
+  public void setParameters(Map<String, String> parameters) {
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return the inputFormat
+   */
+  public String getInputFormat() {
+    return inputFormat;
+  }
+
+  /**
+   * @param inputFormat the inputFormat to set
+   */
+  public void setInputFormat(String inputFormat) {
+    this.inputFormat = inputFormat;
+  }
+
+  /**
+   * @return the outputFormat
+   */
+  public String getOutputFormat() {
+    return outputFormat;
+  }
+
+  /**
+   * @param outputFormat the outputFormat to set
+   */
+  public void setOutputFormat(String outputFormat) {
+    this.outputFormat = outputFormat;
+  }
+
+  /**
+   * @return the column descriptor
+   */
+  public MColumnDescriptor getCD() {
+    return cd;
+  }
+
+  /**
+   * @param cd the Column Descriptor to set
+   */
+  public void setCD(MColumnDescriptor cd) {
+    this.cd = cd;
+  }
+
+  /**
+   * @return the serDe
+   */
+  public MSerDeInfo getSerDeInfo() {
+    return serDeInfo;
+  }
+
+  /**
+   * @param serDe the serDe to set
+   */
+  public void setSerDeInfo(MSerDeInfo serDe) {
+    this.serDeInfo = serDe;
+  }
+
+
+  /**
+   * @param sortOrder the sortOrder to set
+   */
+  public void setSortCols(List<MOrder> sortOrder) {
+    this.sortCols = sortOrder;
+  }
+
+
+  /**
+   * @return the sortOrder
+   */
+  public List<MOrder> getSortCols() {
+    return sortCols;
+  }
+
+  /**
+   * @return the skewedColNames
+   */
+  public List<String> getSkewedColNames() {
+    return skewedColNames;
+  }
+
+  /**
+   * @param skewedColNames the skewedColNames to set
+   */
+  public void setSkewedColNames(List<String> skewedColNames) {
+    this.skewedColNames = skewedColNames;
+  }
+
+  /**
+   * @return the skewedColValues
+   */
+  public List<MStringList> getSkewedColValues() {
+    return skewedColValues;
+  }
+
+  /**
+   * @param skewedColValues the skewedColValues to set
+   */
+  public void setSkewedColValues(List<MStringList> skewedColValues) {
+    this.skewedColValues = skewedColValues;
+  }
+
+  /**
+   * @return the skewedColValueLocationMaps
+   */
+  public Map<MStringList, String> getSkewedColValueLocationMaps() {
+    return skewedColValueLocationMaps;
+  }
+
+  /**
+   * @param listBucketColValuesMapping the skewedColValueLocationMaps to set
+   */
+  public void setSkewedColValueLocationMaps(Map<MStringList, String> listBucketColValuesMapping) {
+    this.skewedColValueLocationMaps = listBucketColValuesMapping;
+  }
+
+
+  /**
+   * @return the storedAsSubDirectories
+   */
+  public boolean isStoredAsSubDirectories() {
+    return isStoredAsSubDirectories;
+  }
+
+
+  /**
+   * @param storedAsSubDirectories the storedAsSubDirectories to set
+   */
+  public void setStoredAsSubDirectories(boolean storedAsSubDirectories) {
+    this.isStoredAsSubDirectories = storedAsSubDirectories;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStringList.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStringList.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStringList.java
new file mode 100644
index 0000000..58b07fe
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MStringList.java
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.List;
+
+/**
+ *
+ * It represents data structure of string list.
+ *
+ * workaround JDO limitation: no support for collection of collection.
+ *
+ */
+public class MStringList {
+  private List<String> internalList;
+
+  /**
+   *
+   * @param list
+   */
+  public MStringList(List<String> list) {
+    this.internalList = list;
+  }
+
+  /**
+   * @return the internalList
+   */
+  public List<String> getInternalList() {
+    return internalList;
+  }
+
+  /**
+   * @param internalList the internalList to set
+   */
+  public void setInternalList(List<String> internalList) {
+    this.internalList = internalList;
+  }
+
+  /* (non-Javadoc)
+   * @see java.lang.Object#toString()
+   */
+  @Override
+  public String toString() {
+    return  internalList.toString();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/98ec28ed/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MTable.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MTable.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MTable.java
new file mode 100644
index 0000000..6cc7157
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/model/MTable.java
@@ -0,0 +1,256 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class MTable {
+  
+  private String tableName;
+  private MDatabase database;
+  private MStorageDescriptor sd;
+  private String owner;
+  private int createTime;
+  private int lastAccessTime;
+  private int retention;
+  private List<MFieldSchema> partitionKeys;
+  private Map<String, String> parameters;
+  private String viewOriginalText;
+  private String viewExpandedText;
+  private boolean rewriteEnabled;
+  private String tableType;
+
+  public MTable() {}
+
+  /**
+   * @param tableName
+   * @param database
+   * @param sd
+   * @param owner
+   * @param createTime
+   * @param lastAccessTime
+   * @param retention
+   * @param partitionKeys
+   * @param parameters
+   * @param viewOriginalText
+   * @param viewExpandedText
+   * @param tableType
+   */
+  public MTable(String tableName, MDatabase database, MStorageDescriptor sd, String owner,
+      int createTime, int lastAccessTime, int retention, List<MFieldSchema> partitionKeys,
+      Map<String, String> parameters, String viewOriginalText, String viewExpandedText,
+      boolean rewriteEnabled, String tableType) {
+    this.tableName = tableName;
+    this.database = database;
+    this.sd = sd;
+    this.owner = owner;
+    this.createTime = createTime;
+    this.setLastAccessTime(lastAccessTime);
+    this.retention = retention;
+    this.partitionKeys = partitionKeys;
+    this.parameters = parameters;
+    this.viewOriginalText = viewOriginalText;
+    this.viewExpandedText = viewExpandedText;
+    this.rewriteEnabled = rewriteEnabled;
+    this.tableType = tableType;
+  }
+
+  /**
+   * @return the tableName
+   */
+  public String getTableName() {
+    return tableName;
+  }
+
+  /**
+   * @param tableName the tableName to set
+   */
+  public void setTableName(String tableName) {
+    this.tableName = tableName;
+  }
+
+  /**
+   * @return the sd
+   */
+  public MStorageDescriptor getSd() {
+    return sd;
+  }
+
+  /**
+   * @param sd the sd to set
+   */
+  public void setSd(MStorageDescriptor sd) {
+    this.sd = sd;
+  }
+
+  /**
+   * @return the partKeys
+   */
+  public List<MFieldSchema> getPartitionKeys() {
+    return partitionKeys;
+  }
+
+  /**
+   * @param partKeys the partKeys to set
+   */
+  public void setPartitionKeys(List<MFieldSchema> partKeys) {
+    this.partitionKeys = partKeys;
+  }
+
+  /**
+   * @return the parameters
+   */
+  public Map<String, String> getParameters() {
+    return parameters;
+  }
+
+  /**
+   * @param parameters the parameters to set
+   */
+  public void setParameters(Map<String, String> parameters) {
+    this.parameters = parameters;
+  }
+
+  /**
+   * @return the original view text, or null if this table is not a view
+   */
+  public String getViewOriginalText() {
+    return viewOriginalText;
+  }
+
+  /**
+   * @param viewOriginalText the original view text to set
+   */
+  public void setViewOriginalText(String viewOriginalText) {
+    this.viewOriginalText = viewOriginalText;
+  }
+
+  /**
+   * @return the expanded view text, or null if this table is not a view
+   */
+  public String getViewExpandedText() {
+    return viewExpandedText;
+  }
+
+  /**
+   * @param viewExpandedText the expanded view text to set
+   */
+  public void setViewExpandedText(String viewExpandedText) {
+    this.viewExpandedText = viewExpandedText;
+  }
+
+  /**
+   * @return whether the view can be used for rewriting queries
+   */
+  public boolean isRewriteEnabled() {
+    return rewriteEnabled;
+  }
+
+  /**
+   * @param rewriteEnabled whether the view can be used for rewriting queries
+   */
+  public void setRewriteEnabled(boolean rewriteEnabled) {
+    this.rewriteEnabled = rewriteEnabled;
+  }
+
+  /**
+   * @return the owner
+   */
+  public String getOwner() {
+    return owner;
+  }
+
+  /**
+   * @param owner the owner to set
+   */
+  public void setOwner(String owner) {
+    this.owner = owner;
+  }
+
+  /**
+   * @return the createTime
+   */
+  public int getCreateTime() {
+    return createTime;
+  }
+
+  /**
+   * @param createTime the createTime to set
+   */
+  public void setCreateTime(int createTime) {
+    this.createTime = createTime;
+  }
+
+  /**
+   * @return the database
+   */
+  public MDatabase getDatabase() {
+    return database;
+  }
+
+  /**
+   * @param database the database to set
+   */
+  public void setDatabase(MDatabase database) {
+    this.database = database;
+  }
+
+  /**
+   * @return the retention
+   */
+  public int getRetention() {
+    return retention;
+  }
+
+  /**
+   * @param retention the retention to set
+   */
+  public void setRetention(int retention) {
+    this.retention = retention;
+  }
+
+  /**
+   * @param lastAccessTime the lastAccessTime to set
+   */
+  public void setLastAccessTime(int lastAccessTime) {
+    this.lastAccessTime = lastAccessTime;
+  }
+
+  /**
+   * @return the lastAccessTime
+   */
+  public int getLastAccessTime() {
+    return lastAccessTime;
+  }
+
+  /**
+   * @param tableType the tableType to set
+   */
+  public void setTableType(String tableType) {
+    this.tableType = tableType;
+  }
+
+  /**
+   * @return the tableType
+   */
+  public String getTableType() {
+    return tableType;
+  }
+}