You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2017/05/25 10:29:07 UTC

[12/21] hive git commit: HIVE-16575: Support for 'UNIQUE' and 'NOT NULL' constraints (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/696be9f5/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
index 19c88cb..89c59e1 100644
--- a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
+++ b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
@@ -78,7 +78,7 @@ public class ThriftHiveMetastore {
 
     public void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;
 
-    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;
+    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, List<SQLUniqueConstraint> uniqueConstraints, List<SQLNotNullConstraint> notNullConstraints) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;
 
     public void drop_constraint(DropConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
 
@@ -86,6 +86,10 @@ public class ThriftHiveMetastore {
 
     public void add_foreign_key(AddForeignKeyRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
 
+    public void add_unique_constraint(AddUniqueConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
+
+    public void add_not_null_constraint(AddNotNullConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
+
     public void drop_table(String dbname, String name, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
 
     public void drop_table_with_environment_context(String dbname, String name, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
@@ -216,6 +220,10 @@ public class ThriftHiveMetastore {
 
     public ForeignKeysResponse get_foreign_keys(ForeignKeysRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;
 
+    public UniqueConstraintsResponse get_unique_constraints(UniqueConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;
+
+    public NotNullConstraintsResponse get_not_null_constraints(NotNullConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;
+
     public boolean update_table_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException;
 
     public boolean update_partition_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException;
@@ -392,7 +400,7 @@ public class ThriftHiveMetastore {
 
     public void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, List<SQLUniqueConstraint> uniqueConstraints, List<SQLNotNullConstraint> notNullConstraints, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void drop_constraint(DropConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
@@ -400,6 +408,10 @@ public class ThriftHiveMetastore {
 
     public void add_foreign_key(AddForeignKeyRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void add_unique_constraint(AddUniqueConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void add_not_null_constraint(AddNotNullConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void drop_table(String dbname, String name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void drop_table_with_environment_context(String dbname, String name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -530,6 +542,10 @@ public class ThriftHiveMetastore {
 
     public void get_foreign_keys(ForeignKeysRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void get_unique_constraints(UniqueConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void get_not_null_constraints(NotNullConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void update_table_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void update_partition_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -1220,18 +1236,20 @@ public class ThriftHiveMetastore {
       return;
     }
 
-    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
+    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, List<SQLUniqueConstraint> uniqueConstraints, List<SQLNotNullConstraint> notNullConstraints) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
     {
-      send_create_table_with_constraints(tbl, primaryKeys, foreignKeys);
+      send_create_table_with_constraints(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints);
       recv_create_table_with_constraints();
     }
 
-    public void send_create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) throws org.apache.thrift.TException
+    public void send_create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, List<SQLUniqueConstraint> uniqueConstraints, List<SQLNotNullConstraint> notNullConstraints) throws org.apache.thrift.TException
     {
       create_table_with_constraints_args args = new create_table_with_constraints_args();
       args.setTbl(tbl);
       args.setPrimaryKeys(primaryKeys);
       args.setForeignKeys(foreignKeys);
+      args.setUniqueConstraints(uniqueConstraints);
+      args.setNotNullConstraints(notNullConstraints);
       sendBase("create_table_with_constraints", args);
     }
 
@@ -1332,6 +1350,58 @@ public class ThriftHiveMetastore {
       return;
     }
 
+    public void add_unique_constraint(AddUniqueConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
+    {
+      send_add_unique_constraint(req);
+      recv_add_unique_constraint();
+    }
+
+    public void send_add_unique_constraint(AddUniqueConstraintRequest req) throws org.apache.thrift.TException
+    {
+      add_unique_constraint_args args = new add_unique_constraint_args();
+      args.setReq(req);
+      sendBase("add_unique_constraint", args);
+    }
+
+    public void recv_add_unique_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
+    {
+      add_unique_constraint_result result = new add_unique_constraint_result();
+      receiveBase(result, "add_unique_constraint");
+      if (result.o1 != null) {
+        throw result.o1;
+      }
+      if (result.o2 != null) {
+        throw result.o2;
+      }
+      return;
+    }
+
+    public void add_not_null_constraint(AddNotNullConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
+    {
+      send_add_not_null_constraint(req);
+      recv_add_not_null_constraint();
+    }
+
+    public void send_add_not_null_constraint(AddNotNullConstraintRequest req) throws org.apache.thrift.TException
+    {
+      add_not_null_constraint_args args = new add_not_null_constraint_args();
+      args.setReq(req);
+      sendBase("add_not_null_constraint", args);
+    }
+
+    public void recv_add_not_null_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
+    {
+      add_not_null_constraint_result result = new add_not_null_constraint_result();
+      receiveBase(result, "add_not_null_constraint");
+      if (result.o1 != null) {
+        throw result.o1;
+      }
+      if (result.o2 != null) {
+        throw result.o2;
+      }
+      return;
+    }
+
     public void drop_table(String dbname, String name, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
     {
       send_drop_table(dbname, name, deleteData);
@@ -3341,6 +3411,64 @@ public class ThriftHiveMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_foreign_keys failed: unknown result");
     }
 
+    public UniqueConstraintsResponse get_unique_constraints(UniqueConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
+    {
+      send_get_unique_constraints(request);
+      return recv_get_unique_constraints();
+    }
+
+    public void send_get_unique_constraints(UniqueConstraintsRequest request) throws org.apache.thrift.TException
+    {
+      get_unique_constraints_args args = new get_unique_constraints_args();
+      args.setRequest(request);
+      sendBase("get_unique_constraints", args);
+    }
+
+    public UniqueConstraintsResponse recv_get_unique_constraints() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
+    {
+      get_unique_constraints_result result = new get_unique_constraints_result();
+      receiveBase(result, "get_unique_constraints");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.o1 != null) {
+        throw result.o1;
+      }
+      if (result.o2 != null) {
+        throw result.o2;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_unique_constraints failed: unknown result");
+    }
+
+    public NotNullConstraintsResponse get_not_null_constraints(NotNullConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
+    {
+      send_get_not_null_constraints(request);
+      return recv_get_not_null_constraints();
+    }
+
+    public void send_get_not_null_constraints(NotNullConstraintsRequest request) throws org.apache.thrift.TException
+    {
+      get_not_null_constraints_args args = new get_not_null_constraints_args();
+      args.setRequest(request);
+      sendBase("get_not_null_constraints", args);
+    }
+
+    public NotNullConstraintsResponse recv_get_not_null_constraints() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
+    {
+      get_not_null_constraints_result result = new get_not_null_constraints_result();
+      receiveBase(result, "get_not_null_constraints");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.o1 != null) {
+        throw result.o1;
+      }
+      if (result.o2 != null) {
+        throw result.o2;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_not_null_constraints failed: unknown result");
+    }
+
     public boolean update_table_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
     {
       send_update_table_column_statistics(stats_obj);
@@ -5764,9 +5892,9 @@ public class ThriftHiveMetastore {
       }
     }
 
-    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void create_table_with_constraints(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, List<SQLUniqueConstraint> uniqueConstraints, List<SQLNotNullConstraint> notNullConstraints, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      create_table_with_constraints_call method_call = new create_table_with_constraints_call(tbl, primaryKeys, foreignKeys, resultHandler, this, ___protocolFactory, ___transport);
+      create_table_with_constraints_call method_call = new create_table_with_constraints_call(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -5775,11 +5903,15 @@ public class ThriftHiveMetastore {
       private Table tbl;
       private List<SQLPrimaryKey> primaryKeys;
       private List<SQLForeignKey> foreignKeys;
-      public create_table_with_constraints_call(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private List<SQLUniqueConstraint> uniqueConstraints;
+      private List<SQLNotNullConstraint> notNullConstraints;
+      public create_table_with_constraints_call(Table tbl, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys, List<SQLUniqueConstraint> uniqueConstraints, List<SQLNotNullConstraint> notNullConstraints, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tbl = tbl;
         this.primaryKeys = primaryKeys;
         this.foreignKeys = foreignKeys;
+        this.uniqueConstraints = uniqueConstraints;
+        this.notNullConstraints = notNullConstraints;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
@@ -5788,6 +5920,8 @@ public class ThriftHiveMetastore {
         args.setTbl(tbl);
         args.setPrimaryKeys(primaryKeys);
         args.setForeignKeys(foreignKeys);
+        args.setUniqueConstraints(uniqueConstraints);
+        args.setNotNullConstraints(notNullConstraints);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -5898,6 +6032,70 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public void add_unique_constraint(AddUniqueConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      add_unique_constraint_call method_call = new add_unique_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class add_unique_constraint_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private AddUniqueConstraintRequest req;
+      public add_unique_constraint_call(AddUniqueConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.req = req;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_unique_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        add_unique_constraint_args args = new add_unique_constraint_args();
+        args.setReq(req);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        (new Client(prot)).recv_add_unique_constraint();
+      }
+    }
+
+    public void add_not_null_constraint(AddNotNullConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      add_not_null_constraint_call method_call = new add_not_null_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class add_not_null_constraint_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private AddNotNullConstraintRequest req;
+      public add_not_null_constraint_call(AddNotNullConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.req = req;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_not_null_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        add_not_null_constraint_args args = new add_not_null_constraint_args();
+        args.setReq(req);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        (new Client(prot)).recv_add_not_null_constraint();
+      }
+    }
+
     public void drop_table(String dbname, String name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       drop_table_call method_call = new drop_table_call(dbname, name, deleteData, resultHandler, this, ___protocolFactory, ___transport);
@@ -8368,6 +8566,70 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public void get_unique_constraints(UniqueConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      get_unique_constraints_call method_call = new get_unique_constraints_call(request, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class get_unique_constraints_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private UniqueConstraintsRequest request;
+      public get_unique_constraints_call(UniqueConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.request = request;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_unique_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        get_unique_constraints_args args = new get_unique_constraints_args();
+        args.setRequest(request);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public UniqueConstraintsResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_get_unique_constraints();
+      }
+    }
+
+    public void get_not_null_constraints(NotNullConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      get_not_null_constraints_call method_call = new get_not_null_constraints_call(request, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class get_not_null_constraints_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private NotNullConstraintsRequest request;
+      public get_not_null_constraints_call(NotNullConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.request = request;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_not_null_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        get_not_null_constraints_args args = new get_not_null_constraints_args();
+        args.setRequest(request);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public NotNullConstraintsResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_get_not_null_constraints();
+      }
+    }
+
     public void update_table_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       update_table_column_statistics_call method_call = new update_table_column_statistics_call(stats_obj, resultHandler, this, ___protocolFactory, ___transport);
@@ -10645,6 +10907,8 @@ public class ThriftHiveMetastore {
       processMap.put("drop_constraint", new drop_constraint());
       processMap.put("add_primary_key", new add_primary_key());
       processMap.put("add_foreign_key", new add_foreign_key());
+      processMap.put("add_unique_constraint", new add_unique_constraint());
+      processMap.put("add_not_null_constraint", new add_not_null_constraint());
       processMap.put("drop_table", new drop_table());
       processMap.put("drop_table_with_environment_context", new drop_table_with_environment_context());
       processMap.put("truncate_table", new truncate_table());
@@ -10710,6 +10974,8 @@ public class ThriftHiveMetastore {
       processMap.put("get_index_names", new get_index_names());
       processMap.put("get_primary_keys", new get_primary_keys());
       processMap.put("get_foreign_keys", new get_foreign_keys());
+      processMap.put("get_unique_constraints", new get_unique_constraints());
+      processMap.put("get_not_null_constraints", new get_not_null_constraints());
       processMap.put("update_table_column_statistics", new update_table_column_statistics());
       processMap.put("update_partition_column_statistics", new update_partition_column_statistics());
       processMap.put("get_table_column_statistics", new get_table_column_statistics());
@@ -11279,7 +11545,7 @@ public class ThriftHiveMetastore {
       public create_table_with_constraints_result getResult(I iface, create_table_with_constraints_args args) throws org.apache.thrift.TException {
         create_table_with_constraints_result result = new create_table_with_constraints_result();
         try {
-          iface.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys);
+          iface.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys, args.uniqueConstraints, args.notNullConstraints);
         } catch (AlreadyExistsException o1) {
           result.o1 = o1;
         } catch (InvalidObjectException o2) {
@@ -11371,6 +11637,58 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public static class add_unique_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_unique_constraint_args> {
+      public add_unique_constraint() {
+        super("add_unique_constraint");
+      }
+
+      public add_unique_constraint_args getEmptyArgsInstance() {
+        return new add_unique_constraint_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public add_unique_constraint_result getResult(I iface, add_unique_constraint_args args) throws org.apache.thrift.TException {
+        add_unique_constraint_result result = new add_unique_constraint_result();
+        try {
+          iface.add_unique_constraint(args.req);
+        } catch (NoSuchObjectException o1) {
+          result.o1 = o1;
+        } catch (MetaException o2) {
+          result.o2 = o2;
+        }
+        return result;
+      }
+    }
+
+    public static class add_not_null_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_not_null_constraint_args> {
+      public add_not_null_constraint() {
+        super("add_not_null_constraint");
+      }
+
+      public add_not_null_constraint_args getEmptyArgsInstance() {
+        return new add_not_null_constraint_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public add_not_null_constraint_result getResult(I iface, add_not_null_constraint_args args) throws org.apache.thrift.TException {
+        add_not_null_constraint_result result = new add_not_null_constraint_result();
+        try {
+          iface.add_not_null_constraint(args.req);
+        } catch (NoSuchObjectException o1) {
+          result.o1 = o1;
+        } catch (MetaException o2) {
+          result.o2 = o2;
+        }
+        return result;
+      }
+    }
+
     public static class drop_table<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_table_args> {
       public drop_table() {
         super("drop_table");
@@ -13091,6 +13409,58 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public static class get_unique_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_unique_constraints_args> {
+      public get_unique_constraints() {
+        super("get_unique_constraints");
+      }
+
+      public get_unique_constraints_args getEmptyArgsInstance() {
+        return new get_unique_constraints_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public get_unique_constraints_result getResult(I iface, get_unique_constraints_args args) throws org.apache.thrift.TException {
+        get_unique_constraints_result result = new get_unique_constraints_result();
+        try {
+          result.success = iface.get_unique_constraints(args.request);
+        } catch (MetaException o1) {
+          result.o1 = o1;
+        } catch (NoSuchObjectException o2) {
+          result.o2 = o2;
+        }
+        return result;
+      }
+    }
+
+    public static class get_not_null_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_not_null_constraints_args> {
+      public get_not_null_constraints() {
+        super("get_not_null_constraints");
+      }
+
+      public get_not_null_constraints_args getEmptyArgsInstance() {
+        return new get_not_null_constraints_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public get_not_null_constraints_result getResult(I iface, get_not_null_constraints_args args) throws org.apache.thrift.TException {
+        get_not_null_constraints_result result = new get_not_null_constraints_result();
+        try {
+          result.success = iface.get_not_null_constraints(args.request);
+        } catch (MetaException o1) {
+          result.o1 = o1;
+        } catch (NoSuchObjectException o2) {
+          result.o2 = o2;
+        }
+        return result;
+      }
+    }
+
     public static class update_table_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, update_table_column_statistics_args> {
       public update_table_column_statistics() {
         super("update_table_column_statistics");
@@ -14760,6 +15130,8 @@ public class ThriftHiveMetastore {
       processMap.put("drop_constraint", new drop_constraint());
       processMap.put("add_primary_key", new add_primary_key());
       processMap.put("add_foreign_key", new add_foreign_key());
+      processMap.put("add_unique_constraint", new add_unique_constraint());
+      processMap.put("add_not_null_constraint", new add_not_null_constraint());
       processMap.put("drop_table", new drop_table());
       processMap.put("drop_table_with_environment_context", new drop_table_with_environment_context());
       processMap.put("truncate_table", new truncate_table());
@@ -14825,6 +15197,8 @@ public class ThriftHiveMetastore {
       processMap.put("get_index_names", new get_index_names());
       processMap.put("get_primary_keys", new get_primary_keys());
       processMap.put("get_foreign_keys", new get_foreign_keys());
+      processMap.put("get_unique_constraints", new get_unique_constraints());
+      processMap.put("get_not_null_constraints", new get_not_null_constraints());
       processMap.put("update_table_column_statistics", new update_table_column_statistics());
       processMap.put("update_partition_column_statistics", new update_partition_column_statistics());
       processMap.put("get_table_column_statistics", new get_table_column_statistics());
@@ -16105,7 +16479,7 @@ public class ThriftHiveMetastore {
       }
 
       public void start(I iface, create_table_with_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
-        iface.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys,resultHandler);
+        iface.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys, args.uniqueConstraints, args.notNullConstraints,resultHandler);
       }
     }
 
@@ -16292,20 +16666,20 @@ public class ThriftHiveMetastore {
       }
     }
 
-    public static class drop_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_table_args, Void> {
-      public drop_table() {
-        super("drop_table");
+    public static class add_unique_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_unique_constraint_args, Void> {
+      public add_unique_constraint() {
+        super("add_unique_constraint");
       }
 
-      public drop_table_args getEmptyArgsInstance() {
-        return new drop_table_args();
+      public add_unique_constraint_args getEmptyArgsInstance() {
+        return new add_unique_constraint_args();
       }
 
       public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Void>() { 
           public void onComplete(Void o) {
-            drop_table_result result = new drop_table_result();
+            add_unique_constraint_result result = new add_unique_constraint_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -16317,15 +16691,137 @@ public class ThriftHiveMetastore {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            drop_table_result result = new drop_table_result();
+            add_unique_constraint_result result = new add_unique_constraint_result();
             if (e instanceof NoSuchObjectException) {
                         result.o1 = (NoSuchObjectException) e;
                         result.setO1IsSet(true);
                         msg = result;
             }
             else             if (e instanceof MetaException) {
-                        result.o3 = (MetaException) e;
-                        result.setO3IsSet(true);
+                        result.o2 = (MetaException) e;
+                        result.setO2IsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, add_unique_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.add_unique_constraint(args.req,resultHandler);
+      }
+    }
+
+    public static class add_not_null_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_not_null_constraint_args, Void> {
+      public add_not_null_constraint() {
+        super("add_not_null_constraint");
+      }
+
+      public add_not_null_constraint_args getEmptyArgsInstance() {
+        return new add_not_null_constraint_args();
+      }
+
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            add_not_null_constraint_result result = new add_not_null_constraint_result();
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            add_not_null_constraint_result result = new add_not_null_constraint_result();
+            if (e instanceof NoSuchObjectException) {
+                        result.o1 = (NoSuchObjectException) e;
+                        result.setO1IsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof MetaException) {
+                        result.o2 = (MetaException) e;
+                        result.setO2IsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, add_not_null_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.add_not_null_constraint(args.req,resultHandler);
+      }
+    }
+
+    public static class drop_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_table_args, Void> {
+      public drop_table() {
+        super("drop_table");
+      }
+
+      public drop_table_args getEmptyArgsInstance() {
+        return new drop_table_args();
+      }
+
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            drop_table_result result = new drop_table_result();
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            drop_table_result result = new drop_table_result();
+            if (e instanceof NoSuchObjectException) {
+                        result.o1 = (NoSuchObjectException) e;
+                        result.setO1IsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof MetaException) {
+                        result.o3 = (MetaException) e;
+                        result.setO3IsSet(true);
                         msg = result;
             }
              else 
@@ -20373,6 +20869,130 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public static class get_unique_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_unique_constraints_args, UniqueConstraintsResponse> {
+      public get_unique_constraints() {
+        super("get_unique_constraints");
+      }
+
+      public get_unique_constraints_args getEmptyArgsInstance() {
+        return new get_unique_constraints_args();
+      }
+
+      public AsyncMethodCallback<UniqueConstraintsResponse> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<UniqueConstraintsResponse>() { 
+          public void onComplete(UniqueConstraintsResponse o) {
+            get_unique_constraints_result result = new get_unique_constraints_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            get_unique_constraints_result result = new get_unique_constraints_result();
+            if (e instanceof MetaException) {
+                        result.o1 = (MetaException) e;
+                        result.setO1IsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof NoSuchObjectException) {
+                        result.o2 = (NoSuchObjectException) e;
+                        result.setO2IsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, get_unique_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse> resultHandler) throws TException {
+        iface.get_unique_constraints(args.request,resultHandler);
+      }
+    }
+
+    public static class get_not_null_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_not_null_constraints_args, NotNullConstraintsResponse> {
+      public get_not_null_constraints() {
+        super("get_not_null_constraints");
+      }
+
+      public get_not_null_constraints_args getEmptyArgsInstance() {
+        return new get_not_null_constraints_args();
+      }
+
+      public AsyncMethodCallback<NotNullConstraintsResponse> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<NotNullConstraintsResponse>() { 
+          public void onComplete(NotNullConstraintsResponse o) {
+            get_not_null_constraints_result result = new get_not_null_constraints_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            get_not_null_constraints_result result = new get_not_null_constraints_result();
+            if (e instanceof MetaException) {
+                        result.o1 = (MetaException) e;
+                        result.setO1IsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof NoSuchObjectException) {
+                        result.o2 = (NoSuchObjectException) e;
+                        result.setO2IsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, get_not_null_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse> resultHandler) throws TException {
+        iface.get_not_null_constraints(args.request,resultHandler);
+      }
+    }
+
     public static class update_table_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, update_table_column_statistics_args, Boolean> {
       public update_table_column_statistics() {
         super("update_table_column_statistics");
@@ -29704,13 +30324,13 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list674 = iprot.readListBegin();
-                  struct.success = new ArrayList<String>(_list674.size);
-                  String _elem675;
-                  for (int _i676 = 0; _i676 < _list674.size; ++_i676)
+                  org.apache.thrift.protocol.TList _list706 = iprot.readListBegin();
+                  struct.success = new ArrayList<String>(_list706.size);
+                  String _elem707;
+                  for (int _i708 = 0; _i708 < _list706.size; ++_i708)
                   {
-                    _elem675 = iprot.readString();
-                    struct.success.add(_elem675);
+                    _elem707 = iprot.readString();
+                    struct.success.add(_elem707);
                   }
                   iprot.readListEnd();
                 }
@@ -29745,9 +30365,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
-            for (String _iter677 : struct.success)
+            for (String _iter709 : struct.success)
             {
-              oprot.writeString(_iter677);
+              oprot.writeString(_iter709);
             }
             oprot.writeListEnd();
           }
@@ -29786,9 +30406,9 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (String _iter678 : struct.success)
+            for (String _iter710 : struct.success)
             {
-              oprot.writeString(_iter678);
+              oprot.writeString(_iter710);
             }
           }
         }
@@ -29803,13 +30423,13 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list679 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.success = new ArrayList<String>(_list679.size);
-            String _elem680;
-            for (int _i681 = 0; _i681 < _list679.size; ++_i681)
+            org.apache.thrift.protocol.TList _list711 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.success = new ArrayList<String>(_list711.size);
+            String _elem712;
+            for (int _i713 = 0; _i713 < _list711.size; ++_i713)
             {
-              _elem680 = iprot.readString();
-              struct.success.add(_elem680);
+              _elem712 = iprot.readString();
+              struct.success.add(_elem712);
             }
           }
           struct.setSuccessIsSet(true);
@@ -30463,13 +31083,13 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list682 = iprot.readListBegin();
-                  struct.success = new ArrayList<String>(_list682.size);
-                  String _elem683;
-                  for (int _i684 = 0; _i684 < _list682.size; ++_i684)
+                  org.apache.thrift.protocol.TList _list714 = iprot.readListBegin();
+                  struct.success = new ArrayList<String>(_list714.size);
+                  String _elem715;
+                  for (int _i716 = 0; _i716 < _list714.size; ++_i716)
                   {
-                    _elem683 = iprot.readString();
-                    struct.success.add(_elem683);
+                    _elem715 = iprot.readString();
+                    struct.success.add(_elem715);
                   }
                   iprot.readListEnd();
                 }
@@ -30504,9 +31124,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
-            for (String _iter685 : struct.success)
+            for (String _iter717 : struct.success)
             {
-              oprot.writeString(_iter685);
+              oprot.writeString(_iter717);
             }
             oprot.writeListEnd();
           }
@@ -30545,9 +31165,9 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (String _iter686 : struct.success)
+            for (String _iter718 : struct.success)
             {
-              oprot.writeString(_iter686);
+              oprot.writeString(_iter718);
             }
           }
         }
@@ -30562,13 +31182,13 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list687 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.success = new ArrayList<String>(_list687.size);
-            String _elem688;
-            for (int _i689 = 0; _i689 < _list687.size; ++_i689)
+            org.apache.thrift.protocol.TList _list719 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.success = new ArrayList<String>(_list719.size);
+            String _elem720;
+            for (int _i721 = 0; _i721 < _list719.size; ++_i721)
             {
-              _elem688 = iprot.readString();
-              struct.success.add(_elem688);
+              _elem720 = iprot.readString();
+              struct.success.add(_elem720);
             }
           }
           struct.setSuccessIsSet(true);
@@ -35175,16 +35795,16 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                 {
-                  org.apache.thrift.protocol.TMap _map690 = iprot.readMapBegin();
-                  struct.success = new HashMap<String,Type>(2*_map690.size);
-                  String _key691;
-                  Type _val692;
-                  for (int _i693 = 0; _i693 < _map690.size; ++_i693)
+                  org.apache.thrift.protocol.TMap _map722 = iprot.readMapBegin();
+                  struct.success = new HashMap<String,Type>(2*_map722.size);
+                  String _key723;
+                  Type _val724;
+                  for (int _i725 = 0; _i725 < _map722.size; ++_i725)
                   {
-                    _key691 = iprot.readString();
-                    _val692 = new Type();
-                    _val692.read(iprot);
-                    struct.success.put(_key691, _val692);
+                    _key723 = iprot.readString();
+                    _val724 = new Type();
+                    _val724.read(iprot);
+                    struct.success.put(_key723, _val724);
                   }
                   iprot.readMapEnd();
                 }
@@ -35219,10 +35839,10 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (Map.Entry<String, Type> _iter694 : struct.success.entrySet())
+            for (Map.Entry<String, Type> _iter726 : struct.success.entrySet())
             {
-              oprot.writeString(_iter694.getKey());
-              _iter694.getValue().write(oprot);
+              oprot.writeString(_iter726.getKey());
+              _iter726.getValue().write(oprot);
             }
             oprot.writeMapEnd();
           }
@@ -35261,10 +35881,10 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (Map.Entry<String, Type> _iter695 : struct.success.entrySet())
+            for (Map.Entry<String, Type> _iter727 : struct.success.entrySet())
             {
-              oprot.writeString(_iter695.getKey());
-              _iter695.getValue().write(oprot);
+              oprot.writeString(_iter727.getKey());
+              _iter727.getValue().write(oprot);
             }
           }
         }
@@ -35279,16 +35899,16 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TMap _map696 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new HashMap<String,Type>(2*_map696.size);
-            String _key697;
-            Type _val698;
-            for (int _i699 = 0; _i699 < _map696.size; ++_i699)
+            org.apache.thrift.protocol.TMap _map728 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new HashMap<String,Type>(2*_map728.size);
+            String _key729;
+            Type _val730;
+            for (int _i731 = 0; _i731 < _map728.size; ++_i731)
             {
-              _key697 = iprot.readString();
-              _val698 = new Type();
-              _val698.read(iprot);
-              struct.success.put(_key697, _val698);
+              _key729 = iprot.readString();
+              _val730 = new Type();
+              _val730.read(iprot);
+              struct.success.put(_key729, _val730);
             }
           }
           struct.setSuccessIsSet(true);
@@ -36323,14 +36943,14 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list700 = iprot.readListBegin();
-                  struct.success = new ArrayList<FieldSchema>(_list700.size);
-                  FieldSchema _elem701;
-                  for (int _i702 = 0; _i702 < _list700.size; ++_i702)
+                  org.apache.thrift.protocol.TList _list732 = iprot.readListBegin();
+                  struct.success = new ArrayList<FieldSchema>(_list732.size);
+                  FieldSchema _elem733;
+                  for (int _i734 = 0; _i734 < _list732.size; ++_i734)
                   {
-                    _elem701 = new FieldSchema();
-                    _elem701.read(iprot);
-                    struct.success.add(_elem701);
+                    _elem733 = new FieldSchema();
+                    _elem733.read(iprot);
+                    struct.success.add(_elem733);
                   }
                   iprot.readListEnd();
                 }
@@ -36383,9 +37003,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (FieldSchema _iter703 : struct.success)
+            for (FieldSchema _iter735 : struct.success)
             {
-              _iter703.write(oprot);
+              _iter735.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -36440,9 +37060,9 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (FieldSchema _iter704 : struct.success)
+            for (FieldSchema _iter736 : struct.success)
             {
-              _iter704.write(oprot);
+              _iter736.write(oprot);
             }
           }
         }
@@ -36463,14 +37083,14 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(4);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list705 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new ArrayList<FieldSchema>(_list705.size);
-            FieldSchema _elem706;
-            for (int _i707 = 0; _i707 < _list705.size; ++_i707)
+            org.apache.thrift.protocol.TList _list737 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<FieldSchema>(_list737.size);
+            FieldSchema _elem738;
+            for (int _i739 = 0; _i739 < _list737.size; ++_i739)
             {
-              _elem706 = new FieldSchema();
-              _elem706.read(iprot);
-              struct.success.add(_elem706);
+              _elem738 = new FieldSchema();
+              _elem738.read(iprot);
+              struct.success.add(_elem738);
             }
           }
           struct.setSuccessIsSet(true);
@@ -37624,14 +38244,14 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list708 = iprot.readListBegin();
-                  struct.success = new ArrayList<FieldSchema>(_list708.size);
-                  FieldSchema _elem709;
-                  for (int _i710 = 0; _i710 < _list708.size; ++_i710)
+                  org.apache.thrift.protocol.TList _list740 = iprot.readListBegin();
+                  struct.success = new ArrayList<FieldSchema>(_list740.size);
+                  FieldSchema _elem741;
+                  for (int _i742 = 0; _i742 < _list740.size; ++_i742)
                   {
-                    _elem709 = new FieldSchema();
-                    _elem709.read(iprot);
-                    struct.success.add(_elem709);
+                    _elem741 = new FieldSchema();
+                    _elem741.read(iprot);
+                    struct.success.add(_elem741);
                   }
                   iprot.readListEnd();
                 }
@@ -37684,9 +38304,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (FieldSchema _iter711 : struct.success)
+            for (FieldSchema _iter743 : struct.success)
             {
-              _iter711.write(oprot);
+              _iter743.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -37741,9 +38361,9 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (FieldSchema _iter712 : struct.success)
+            for (FieldSchema _iter744 : struct.success)
             {
-              _iter712.write(oprot);
+              _iter744.write(oprot);
             }
           }
         }
@@ -37764,14 +38384,14 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(4);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list713 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new ArrayList<FieldSchema>(_list713.size);
-            FieldSchema _elem714;
-            for (int _i715 = 0; _i715 < _list713.size; ++_i715)
+            org.apache.thrift.protocol.TList _list745 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<FieldSchema>(_list745.size);
+            FieldSchema _elem746;
+            for (int _i747 = 0; _i747 < _list745.size; ++_i747)
             {
-              _elem714 = new FieldSchema();
-              _elem714.read(iprot);
-              struct.success.add(_elem714);
+              _elem746 = new FieldSchema();
+              _elem746.read(iprot);
+              struct.success.add(_elem746);
             }
           }
           struct.setSuccessIsSet(true);
@@ -38816,14 +39436,14 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list716 = iprot.readListBegin();
-                  struct.success = new ArrayList<FieldSchema>(_list716.size);
-                  FieldSchema _elem717;
-                  for (int _i718 = 0; _i718 < _list716.size; ++_i718)
+                  org.apache.thrift.protocol.TList _list748 = iprot.readListBegin();
+                  struct.success = new ArrayList<FieldSchema>(_list748.size);
+                  FieldSchema _elem749;
+                  for (int _i750 = 0; _i750 < _list748.size; ++_i750)
                   {
-                    _elem717 = new FieldSchema();
-                    _elem717.read(iprot);
-                    struct.success.add(_elem717);
+                    _elem749 = new FieldSchema();
+                    _elem749.read(iprot);
+                    struct.success.add(_elem749);
                   }
                   iprot.readListEnd();
                 }
@@ -38876,9 +39496,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (FieldSchema _iter719 : struct.success)
+            for (FieldSchema _iter751 : struct.success)
             {
-              _iter719.write(oprot);
+              _iter751.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -38933,9 +39553,9 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (FieldSchema _iter720 : struct.success)
+            for (FieldSchema _iter752 : struct.success)
             {
-              _iter720.write(oprot);
+              _iter752.write(oprot);
             }
           }
         }
@@ -38956,14 +39576,14 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(4);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list721 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new ArrayList<FieldSchema>(_list721.size);
-            FieldSchema _elem722;
-            for (int _i723 = 0; _i723 < _list721.size; ++_i723)
+            org.apache.thrift.protocol.TList _list753 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<FieldSchema>(_list753.size);
+            FieldSchema _elem754;
+            for (int _i755 = 0; _i755 < _list753.size; ++_i755)
             {
-              _elem722 = new FieldSchema();
-              _elem722.read(iprot);
-              struct.success.add(_elem722);
+              _elem754 = new FieldSchema();
+              _elem754.read(iprot);
+              struct.success.add(_elem754);
             }
           }
           struct.setSuccessIsSet(true);
@@ -40117,14 +40737,14 @@ public class ThriftHiveMetastore {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list724 = iprot.readListBegin();
-                  struct.success = new ArrayList<FieldSchema>(_list724.size);
-                  FieldSchema _elem725;
-                  for (int _i726 = 0; _i726 < _list724.size; ++_i726)
+                  org.apache.thrift.protocol.TList _list756 = iprot.readListBegin();
+                  struct.success = new ArrayList<FieldSchema>(_list756.size);
+                  FieldSchema _elem757;
+                  for (int _i758 = 0; _i758 < _list756.size; ++_i758)
                   {
-                    _elem725 = new FieldSchema();
-                    _elem725.read(iprot);
-                    struct.success.add(_elem725);
+                    _elem757 = new FieldSchema();
+                    _elem757.read(iprot);
+                    struct.success.add(_elem757);
                   }
                   iprot.readListEnd();
                 }
@@ -40177,9 +40797,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (FieldSchema _iter727 : struct.success)
+            for (FieldSchema _iter759 : struct.success)
             {
-              _iter727.write(oprot);
+              _iter759.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -40234,9 +40854,9 @@ public class ThriftHiveMetastore {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (FieldSchema _iter728 : struct.success)
+            for (FieldSchema _iter760 : struct.success)
             {
-              _iter728.write(oprot);
+              _iter760.write(oprot);
             }
           }
         }
@@ -40257,14 +40877,14 @@ public class ThriftHiveMetastore {
         BitSet incoming = iprot.readBitSet(4);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list729 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new ArrayList<FieldSchema>(_list729.size);
-            FieldSchema _elem730;
-            for (int _i731 = 0; _i731 < _list729.size; ++_i731)
+            org.apache.thrift.protocol.TList _list761 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<FieldSchema>(_list761.size);
+            FieldSchema _elem762;
+            for (int _i763 = 0; _i763 < _list761.size; ++_i763)
             {
-              _elem730 = new FieldSchema();
-              _elem730.read(iprot);
-              struct.success.add(_elem730);
+              _elem762 = new FieldSchema();
+              _elem762.read(iprot);
+              struct.success.add(_elem762);
             }
           }
           struct.setSuccessIsSet(true);
@@ -42486,6 +43106,8 @@ public class ThriftHiveMetastore {
     private static final org.apache.thrift.protocol.TField TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField PRIMARY_KEYS_FIELD_DESC = new org.apache.thrift.protocol.TField("primaryKeys", org.apache.thrift.protocol.TType.LIST, (short)2);
     private static final org.apache.thrift.protocol.TField FOREIGN_KEYS_FIELD_DESC = new org.apache.thrift.protocol.TField("foreignKeys", org.apache.thrift.protocol.TType.LIST, (short)3);
+    private static final org.apache.thrift.protocol.TField UNIQUE_CONSTRAINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("uniqueConstraints", org.apache.thrift.protocol.TType.LIST, (short)4);
+    private static final org.apache.thrift.protocol.TField NOT_NULL_CONSTRAINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("notNullConstraints", org.apache.thrift.protocol.TType.LIST, (short)5);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -42496,12 +43118,16 @@ public class ThriftHiveMetastore {
     private Table tbl; // required
     private List<SQLPrimaryKey> primaryKeys; // required
     private List<SQLForeignKey> foreignKeys; // required
+    private List<SQLUniqueConstraint> uniqueConstraints; // required
+    private List<SQLNotNullConstraint> notNullConstraints; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       TBL((short)1, "tbl"),
       PRIMARY_KEYS((short)2, "primaryKeys"),
-      FOREIGN_KEYS((short)3, "foreignKeys");
+      FOREIGN_KEYS((short)3, "foreignKeys"),
+      UNIQUE_CONSTRAINTS((short)4, "uniqueConstraints"),
+      NOT_NULL_CONSTRAINTS((short)5, "notNullConstraints");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -42522,6 +43148,10 @@ public class ThriftHiveMetastore {
             return PRIMARY_KEYS;
           case 3: // FOREIGN_KEYS
             return FOREIGN_KEYS;
+          case 4: // UNIQUE_CONSTRAINTS
+            return UNIQUE_CONSTRAINTS;
+          case 5: // NOT_NULL_CONSTRAINTS
+            return NOT_NULL_CONSTRAINTS;
           default:
             return null;
         }
@@ -42573,6 +43203,12 @@ public class ThriftHiveMetastore {
       tmpMap.put(_Fields.FOREIGN_KEYS, new org.apache.thrift.meta_data.FieldMetaData("foreignKeys", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLForeignKey.class))));
+      tmpMap.put(_Fields.UNIQUE_CONSTRAINTS, new org.apache.thrift.meta_data.FieldMetaData("uniqueConstraints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLUniqueConstraint.class))));
+      tmpMap.put(_Fields.NOT_NULL_CONSTRAINTS, new org.apache.thrift.meta_data.FieldMetaData("notNullConstraints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLNotNullConstraint.class))));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_with_constraints_args.class, metaDataMap);
     }
@@ -42583,12 +43219,16 @@ public class ThriftHiveMetastore {
     public create_table_with_constraints_args(
       Table tbl,
       List<SQLPrimaryKey> primaryKeys,
-      List<SQLForeignKey> foreignKeys)
+      List<SQLForeignKey> foreignKeys,
+      List<SQLUniqueConstraint> uniqueConstraints,
+      List<SQLNotNullConstraint> notNullConstraints)
     {
       this();
       this.tbl = tbl;
       this.primaryKeys = primaryKeys;
       this.foreignKeys = foreignKeys;
+      this.uniqueConstraints = uniqueConstraints;
+      this.notNullConstraints = notNullConstraints;
     }
 
     /**
@@ -42612,6 +43252,20 @@ public class ThriftHiveMetastore {
         }
         this.foreignKeys = __this__foreignKeys;
       }
+      if (other.isSetUniqueConstraints()) {
+        List<SQLUniqueConstraint> __this__uniqueConstraints = new ArrayList<SQLUniqueConstraint>(other.uniqueConstraints.size());
+        for (SQLUniqueConstraint other_element : other.uniqueConstraints) {
+          __this__uniqueConstraints.add(new SQLUniqueConstraint(other_element));
+        }
+        this.uniqueConstraints = __this__uniqueConstraints;
+      }
+      if (other.isSetNotNullConstraints()) {
+        List<SQLNotNullConstraint> __this__notNullConstraints = new ArrayList<SQLNotNullConstraint>(other.notNullConstraints.size());
+        for (SQLNotNullConstraint other_element : other.notNullConstraints) {
+          __this__notNullConstraints.add(new SQLNotNullConstraint(other_element));
+        }
+        this.notNullConstraints = __this__notNullConstraints;
+      }
     }
 
     public create_table_with_constraints_args deepCopy() {
@@ -42623,6 +43277,8 @@ public class ThriftHiveMetastore {
       this.tbl = null;
       this.primaryKeys = null;
       this.foreignKeys = null;
+      this.uniqueConstraints = null;
+      this.notNullConstraints = null;
     }
 
     public Table getTbl() {
@@ -42724,6 +43380,82 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public int getUniqueConstraintsSize() {
+      return (this.uniqueConstraints == null) ? 0 : this.uniqueConstraints.size();
+    }
+
+    public java.util.Iterator<SQLUniqueConstraint> getUniqueConstraintsIterator() {
+      return (this.uniqueConstraints == null) ? null : this.uniqueConstraints.iterator();
+    }
+
+    public void addToUniqueConstraints(SQLUniqueConstraint elem) {
+      if (this.uniqueConstraints == null) {
+        this.uniqueConstraints = new ArrayList<SQLUniqueConstraint>();
+      }
+      this.uniqueConstraints.add(elem);
+    }
+
+    public List<SQLUniqueConstraint> getUniqueConstraints() {
+      return this.uniqueConstraints;
+    }
+
+    public void setUniqueConstraints(List<SQLUniqueConstraint> uniqueConstraints) {
+      this.uniqueConstraints = uniqueConstraints;
+    }
+
+    public void unsetUniqueConstraints() {
+      this.uniqueConstraints = null;
+    }
+
+    /** Returns true if field uniqueConstraints is set (has been assigned a value) and false otherwise */
+    public boolean isSetUniqueConstraints() {
+      return this.uniqueConstraints != null;
+    }
+
+    public void setUniqueConstraintsIsSet(boolean value) {
+      if (!value) {
+        this.uniqueConstraints = null;
+      }
+    }
+
+    public int getNotNullConstraintsSize() {
+      return (this.notNullConstraints == null) ? 0 : this.notNullConstraints.size();
+    }
+
+    public java.util.Iterator<SQLNotNullConstraint> getNotNullConstraintsIterator() {
+      return (this.notNullConstraints == null) ? null : this.notNullConstraints.iterator();
+    }
+
+    public void addToNotNullConstraints(SQLNotNullConstraint elem) {
+      if (this.notNullConstraints == null) {
+        this.notNullConstraints = new ArrayList<SQLNotNullConstraint>();
+      }
+      this.notNullConstraints.add(elem);
+    }
+
+    public List<SQLNotNullConstraint> getNotNullConstraints() {
+      return this.notNullConstraints;
+    }
+
+    public void setNotNullConstraints(List<SQLNotNullConstraint> notNullConstraints) {
+      this.notNullConstraints = notNullConstraints;
+    }
+
+    public void unsetNotNullConstraints() {
+      this.notNullConstraints = null;
+    }
+
+    /** Returns true if field notNullConstraints is set (has been assigned a value) and false otherwise */
+    public boolean isSetNotNullConstraints() {
+      return this.notNullConstraints != null;
+    }
+
+    public void setNotNullConstraintsIsSet(boolean value) {
+      if (!value) {
+        this.notNullConstraints = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case TBL:
@@ -42750,6 +43482,22 @@ public class ThriftHiveMetastore {
         }
         break;
 
+      case UNIQUE_CONSTRAINTS:
+        if (value == null) {
+          unsetUniqueConstraints();
+        } else {
+          setUniqueConstraints((List<SQLUniqueConstraint>)value);
+        }
+        break;
+
+      case NOT_NULL_CONSTRAINTS:
+        if (value == null) {
+          unsetNotNullConstraints();
+        } else {
+          setNotNullConstraints((List<SQLNotNullConstraint>)value);
+        }
+        break;
+
       }
     }
 
@@ -42764,6 +43512,12 @@ public class ThriftHiveMetastore {
       case FOREIGN_KEYS:
         return getForeignKeys();
 
+      case UNIQUE_CONSTRAINTS:
+        return getUniqueConstraints();
+
+      case NOT_NULL_CONSTRAINTS:
+        return getNotNullConstraints();
+
       }
       throw new IllegalStateException();
     }
@@ -42781,6 +43535,10 @@ public class ThriftHiveMetastore {
         return isSetPrimaryKeys();
       case FOREIGN_KEYS:
         return isSetForeignKeys();
+      case UNIQUE_CONSTRAINTS:
+        return isSetUniqueConstraints();
+      case NOT_NULL_CONSTRAINTS:
+        return isSetNotNullConstraints();
       }
       throw new IllegalStateException();
     }
@@ -42825,6 +43583,24 @@ public class ThriftHiveMetastore {
           return false;
       }
 
+      boolean this_present_uniqueConstraints = true && this.isSetUniqueConstraints();
+      boolean that_present_uniqueConstraints = true && that.isSetUniqueConstraints();
+      if (this_present_uniqueConstraints || that_present_uniqueConstraints) {
+        if (!(this_present_uniqueConstraints && that_present_uniqueConstraints))
+          return false;
+        if (!this.uniqueConstraints.equals(that.uniqueConstraints))
+          return false;
+      }
+
+      boolean this_present_notNullConstraints = true && this.isSetNotNullConstraints();
+      boolean that_present_notNullConstraints = true && that.isSetNotNullConstraints();
+      if (this_present_notNullConstraints || that_present_notNullConstraints) {
+        if (!(this_present_notNullConstraints && that_present_notNullConstraints))
+          return false;
+        if (!this.notNullConstraints.equals(that.notNullConstraints))
+          return false;
+      }
+
       return true;
     }
 
@@ -42847,6 +43623,16 @@ public class ThriftHiveMetastore {
       if (present_foreignKeys)
         list.add(foreignKeys);
 
+      boolean present_uniqueConstraints = true && (isSetUniqueConstraints());
+      list.add(present_uniqueConstraints);
+      if (present_uniqueConstraints)
+        list.add(uniqueConstraints);
+
+      boolean present_notNullConstraints = true && (isSetNotNullConstraints());
+      list.add(present_notNullConstraints);
+      if (present_notNullConstraints)
+        list.add(notNullConstraints);
+
       return list.hashCode();
     }
 
@@ -42888,6 +43674,26 @@ public class ThriftHiveMetastore {
           return lastComparison;
         }
       }
+      lastComparison = Boolean.valueOf(isSetUniqueConstraints()).compareTo(other.isSetUniqueConstraints());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUniqueConstraints()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uniqueConstraints, other.uniqueConstraints);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetNotNullConstraints()).compareTo(other.isSetNotNullConstraints());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetNotNullConstraints()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notNullConstraints, other.notNullConstraints);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -42931,6 +43737,22 @@ public class ThriftHiveMetastore {
         sb.append(this.foreignKeys);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("uniqueConstraints:");
+      if (this.uniqueConstraints == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.uniqueConstraints);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("notNullConstraints:");
+      if (this.notNullConstraints == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.notNullConstraints);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -42989,14 +43811,14 @@ public class ThriftHiveMetastore {
             case 2: // PRIMARY_KEYS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list732 = iprot.readListBegin();
-                  struct.primaryKeys = new ArrayList<SQLPrimaryKey>(_list732.size);
-                  SQLPrimaryKey _elem733;
-                  for (int _i734 = 0; _i734 < _list732.size; ++_i734)
+                  org.apache.thrift.protocol.TList _list764 = iprot.readListBegin();
+                  struct.primaryKeys = new ArrayList<SQLPrimaryKey>(_list764.size);
+                  SQLPrimaryKey _elem765;
+                  for (int _i766 = 0; _i766 < _list764.size; ++_i766)
                   {
-                    _elem733 = new SQLPrimaryKey();
-                    _elem733.read(iprot);
-                    struct.primaryKeys.add(_elem733);
+                    _elem765 = new SQLPrimaryKey();
+                    _elem765.read(iprot);
+                    struct.primaryKeys.add(_elem765);
                   }
                   iprot.readListEnd();
                 }
@@ -43008,14 +43830,14 @@ public class ThriftHiveMetastore {
             case 3: // FOREIGN_KEYS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list735 = iprot.readListBegin();
-                  struct.foreignKeys = new ArrayList<SQLForeignKey>(_list735.size);
-                  SQLForeignKey _elem736;
-                  for (int _i737 = 0; _i737 < _list735.size; ++_i737)
+                  org.apache.thrift.protocol.TList _list767 = iprot.readListBegin();
+                  struct.foreignKeys = new ArrayList<SQLForeignKey>(_list767.size);
+                  SQLForeignKey _elem768;
+                  for (int _i769 = 0; _i769 < _list767.size; ++_i769)
                   {
-                    _elem736 = new SQLForeignKey();
-                    _elem736.read(iprot);
-                    struct.foreignKeys.add(_elem736);
+                    _elem768 = new SQLForeignKey();
+                    _elem768.read(iprot);
+                    struct.foreignKeys.add(_elem768);
                   }
                   iprot.readListEnd();
                 }
@@ -43024,6 +43846,44 @@ public class ThriftHiveMetastore {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 4: // UNIQUE_CONSTRAINTS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list770 = iprot.readListBegin();
+                  struct.uniqueConstraints = new ArrayList<SQLUniqueConstraint>(_list770.size);
+                  SQLUniqueConstraint _elem771;
+                  for (int _i772 = 0; _i772 < _list770.size; ++_i772)
+                  {
+                    _elem771 = new SQLUniqueConstraint();
+                    _elem771.read(iprot);
+                    struct.uniqueConstraints.add(_elem771);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setUniqueConstraintsIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 5: // NOT_NULL_CONSTRAINTS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list773 = iprot.readListBegin();
+                  struct.notNullConstraints = new ArrayList<SQLNotNullConstraint>(_list773.size);
+                  SQLNotNullConstraint _elem774;
+                  for (int _i775 = 0; _i775 < _list773.size; ++_i775)
+                  {
+                    _elem774 = new SQLNotNullConstraint();
+                    _elem774.read(iprot);
+                    struct.notNullConstraints.add(_elem774);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setNotNullConstraintsIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -43046,9 +43906,9 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(PRIMARY_KEYS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.primaryKeys.size()));
-            for (SQLPrimaryKey _iter738 : struct.primaryKeys)
+            for (SQLPrimaryKey _iter776 : struct.primaryKeys)
             {
-              _iter738.write(oprot);
+              _iter776.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -43058,9 +43918,33 @@ public class ThriftHiveMetastore {
           oprot.writeFieldBegin(FOREIGN_KEYS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.foreignKeys.size()));
-            for (SQLForeignKey _iter739 : struct.foreignKeys)
+            for (SQLForeignKey _iter777 : struct.foreignKeys)
+            {
+              _iter777.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+        if (struct.uniqueConstraints != null) {
+          oprot.writeFieldBegin(UNIQUE_CONSTRAINTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.uniqueConstraints.size()));
+            for (SQLUniqueConstraint _iter778 : struct.uniqueConstraints)
             {
-              _iter739.write(oprot);
+              _iter778.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+        if (struct.notNullConstraints != null) {
+          oprot.writeFieldBegin(NOT_NULL_CONSTRAINTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.notNullConstrain

<TRUNCATED>