You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by am...@apache.org on 2013/04/26 06:59:58 UTC

svn commit: r1476039 [5/22] - in /hive/branches/HIVE-4115: ./ beeline/ beeline/src/java/org/apache/hive/beeline/ bin/ builtins/ cli/ common/src/java/org/apache/hadoop/hive/conf/ conf/ data/files/ eclipse-templates/ hbase-handler/ hbase-handler/src/java...

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java?rev=1476039&r1=1476038&r2=1476039&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java Fri Apr 26 04:59:50 2013
@@ -108,6 +108,8 @@ public class ThriftHiveMetastore {
 
     public Partition get_partition(String db_name, String tbl_name, List<String> part_vals) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;
 
+    public Partition exchange_partition(Map<String,String> partitionSpecs, String source_db, String source_table_name, String dest_db, String dest_table_name) throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException;
+
     public Partition get_partition_with_auth(String db_name, String tbl_name, List<String> part_vals, String user_name, List<String> group_names) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;
 
     public Partition get_partition_by_name(String db_name, String tbl_name, String part_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;
@@ -274,6 +276,8 @@ public class ThriftHiveMetastore {
 
     public void get_partition(String db_name, String tbl_name, List<String> part_vals, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.get_partition_call> resultHandler) throws org.apache.thrift.TException;
 
+    public void exchange_partition(Map<String,String> partitionSpecs, String source_db, String source_table_name, String dest_db, String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.exchange_partition_call> resultHandler) throws org.apache.thrift.TException;
+
     public void get_partition_with_auth(String db_name, String tbl_name, List<String> part_vals, String user_name, List<String> group_names, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.get_partition_with_auth_call> resultHandler) throws org.apache.thrift.TException;
 
     public void get_partition_by_name(String db_name, String tbl_name, String part_name, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.get_partition_by_name_call> resultHandler) throws org.apache.thrift.TException;
@@ -1462,6 +1466,45 @@ public class ThriftHiveMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition failed: unknown result");
     }
 
+    public Partition exchange_partition(Map<String,String> partitionSpecs, String source_db, String source_table_name, String dest_db, String dest_table_name) throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
+    {
+      send_exchange_partition(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name);
+      return recv_exchange_partition();
+    }
+
+    public void send_exchange_partition(Map<String,String> partitionSpecs, String source_db, String source_table_name, String dest_db, String dest_table_name) throws org.apache.thrift.TException
+    {
+      exchange_partition_args args = new exchange_partition_args();
+      args.setPartitionSpecs(partitionSpecs);
+      args.setSource_db(source_db);
+      args.setSource_table_name(source_table_name);
+      args.setDest_db(dest_db);
+      args.setDest_table_name(dest_table_name);
+      sendBase("exchange_partition", args);
+    }
+
+    public Partition recv_exchange_partition() throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
+    {
+      exchange_partition_result result = new exchange_partition_result();
+      receiveBase(result, "exchange_partition");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.o1 != null) {
+        throw result.o1;
+      }
+      if (result.o2 != null) {
+        throw result.o2;
+      }
+      if (result.o3 != null) {
+        throw result.o3;
+      }
+      if (result.o4 != null) {
+        throw result.o4;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "exchange_partition failed: unknown result");
+    }
+
     public Partition get_partition_with_auth(String db_name, String tbl_name, List<String> part_vals, String user_name, List<String> group_names) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
     {
       send_get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names);
@@ -4141,6 +4184,50 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public void exchange_partition(Map<String,String> partitionSpecs, String source_db, String source_table_name, String dest_db, String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<exchange_partition_call> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      exchange_partition_call method_call = new exchange_partition_call(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class exchange_partition_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private Map<String,String> partitionSpecs;
+      private String source_db;
+      private String source_table_name;
+      private String dest_db;
+      private String dest_table_name;
+      public exchange_partition_call(Map<String,String> partitionSpecs, String source_db, String source_table_name, String dest_db, String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<exchange_partition_call> 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.partitionSpecs = partitionSpecs;
+        this.source_db = source_db;
+        this.source_table_name = source_table_name;
+        this.dest_db = dest_db;
+        this.dest_table_name = dest_table_name;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("exchange_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        exchange_partition_args args = new exchange_partition_args();
+        args.setPartitionSpecs(partitionSpecs);
+        args.setSource_db(source_db);
+        args.setSource_table_name(source_table_name);
+        args.setDest_db(dest_db);
+        args.setDest_table_name(dest_table_name);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Partition getResult() throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, 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_exchange_partition();
+      }
+    }
+
     public void get_partition_with_auth(String db_name, String tbl_name, List<String> part_vals, String user_name, List<String> group_names, org.apache.thrift.async.AsyncMethodCallback<get_partition_with_auth_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       get_partition_with_auth_call method_call = new get_partition_with_auth_call(db_name, tbl_name, part_vals, user_name, group_names, resultHandler, this, ___protocolFactory, ___transport);
@@ -5913,6 +6000,7 @@ public class ThriftHiveMetastore {
       processMap.put("drop_partition_by_name", new drop_partition_by_name());
       processMap.put("drop_partition_by_name_with_environment_context", new drop_partition_by_name_with_environment_context());
       processMap.put("get_partition", new get_partition());
+      processMap.put("exchange_partition", new exchange_partition());
       processMap.put("get_partition_with_auth", new get_partition_with_auth());
       processMap.put("get_partition_by_name", new get_partition_by_name());
       processMap.put("get_partitions", new get_partitions());
@@ -6905,6 +6993,36 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public static class exchange_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, exchange_partition_args> {
+      public exchange_partition() {
+        super("exchange_partition");
+      }
+
+      public exchange_partition_args getEmptyArgsInstance() {
+        return new exchange_partition_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public exchange_partition_result getResult(I iface, exchange_partition_args args) throws org.apache.thrift.TException {
+        exchange_partition_result result = new exchange_partition_result();
+        try {
+          result.success = iface.exchange_partition(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name);
+        } catch (MetaException o1) {
+          result.o1 = o1;
+        } catch (NoSuchObjectException o2) {
+          result.o2 = o2;
+        } catch (InvalidObjectException o3) {
+          result.o3 = o3;
+        } catch (InvalidInputException o4) {
+          result.o4 = o4;
+        }
+        return result;
+      }
+    }
+
     public static class get_partition_with_auth<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_with_auth_args> {
       public get_partition_with_auth() {
         super("get_partition_with_auth");
@@ -46889,34 +47007,34 @@ public class ThriftHiveMetastore {
 
   }
 
-  public static class get_partition_with_auth_args implements org.apache.thrift.TBase<get_partition_with_auth_args, get_partition_with_auth_args._Fields>, java.io.Serializable, Cloneable   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_with_auth_args");
+  public static class exchange_partition_args implements org.apache.thrift.TBase<exchange_partition_args, exchange_partition_args._Fields>, java.io.Serializable, Cloneable   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exchange_partition_args");
 
-    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
-    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)4);
-    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)5);
+    private static final org.apache.thrift.protocol.TField PARTITION_SPECS_FIELD_DESC = new org.apache.thrift.protocol.TField("partitionSpecs", org.apache.thrift.protocol.TType.MAP, (short)1);
+    private static final org.apache.thrift.protocol.TField SOURCE_DB_FIELD_DESC = new org.apache.thrift.protocol.TField("source_db", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField SOURCE_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("source_table_name", org.apache.thrift.protocol.TType.STRING, (short)3);
+    private static final org.apache.thrift.protocol.TField DEST_DB_FIELD_DESC = new org.apache.thrift.protocol.TField("dest_db", org.apache.thrift.protocol.TType.STRING, (short)4);
+    private static final org.apache.thrift.protocol.TField DEST_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dest_table_name", org.apache.thrift.protocol.TType.STRING, (short)5);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new get_partition_with_auth_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new get_partition_with_auth_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new exchange_partition_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new exchange_partition_argsTupleSchemeFactory());
     }
 
-    private String db_name; // required
-    private String tbl_name; // required
-    private List<String> part_vals; // required
-    private String user_name; // required
-    private List<String> group_names; // required
+    private Map<String,String> partitionSpecs; // required
+    private String source_db; // required
+    private String source_table_name; // required
+    private String dest_db; // required
+    private String dest_table_name; // 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 {
-      DB_NAME((short)1, "db_name"),
-      TBL_NAME((short)2, "tbl_name"),
-      PART_VALS((short)3, "part_vals"),
-      USER_NAME((short)4, "user_name"),
-      GROUP_NAMES((short)5, "group_names");
+      PARTITION_SPECS((short)1, "partitionSpecs"),
+      SOURCE_DB((short)2, "source_db"),
+      SOURCE_TABLE_NAME((short)3, "source_table_name"),
+      DEST_DB((short)4, "dest_db"),
+      DEST_TABLE_NAME((short)5, "dest_table_name");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -46931,16 +47049,16 @@ public class ThriftHiveMetastore {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // DB_NAME
-            return DB_NAME;
-          case 2: // TBL_NAME
-            return TBL_NAME;
-          case 3: // PART_VALS
-            return PART_VALS;
-          case 4: // USER_NAME
-            return USER_NAME;
-          case 5: // GROUP_NAMES
-            return GROUP_NAMES;
+          case 1: // PARTITION_SPECS
+            return PARTITION_SPECS;
+          case 2: // SOURCE_DB
+            return SOURCE_DB;
+          case 3: // SOURCE_TABLE_NAME
+            return SOURCE_TABLE_NAME;
+          case 4: // DEST_DB
+            return DEST_DB;
+          case 5: // DEST_TABLE_NAME
+            return DEST_TABLE_NAME;
           default:
             return null;
         }
@@ -46984,266 +47102,251 @@ public class ThriftHiveMetastore {
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.PARTITION_SPECS, new org.apache.thrift.meta_data.FieldMetaData("partitionSpecs", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+      tmpMap.put(_Fields.SOURCE_DB, new org.apache.thrift.meta_data.FieldMetaData("source_db", org.apache.thrift.TFieldRequirementType.DEFAULT,
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.SOURCE_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("source_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT,
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.DEST_DB, new org.apache.thrift.meta_data.FieldMetaData("dest_db", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.DEST_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("dest_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT,
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partition_args.class, metaDataMap);
     }
 
-    public get_partition_with_auth_args() {
+    public exchange_partition_args() {
     }
 
-    public get_partition_with_auth_args(
-      String db_name,
-      String tbl_name,
-      List<String> part_vals,
-      String user_name,
-      List<String> group_names)
+    public exchange_partition_args(
+      Map<String,String> partitionSpecs,
+      String source_db,
+      String source_table_name,
+      String dest_db,
+      String dest_table_name)
     {
       this();
-      this.db_name = db_name;
-      this.tbl_name = tbl_name;
-      this.part_vals = part_vals;
-      this.user_name = user_name;
-      this.group_names = group_names;
+      this.partitionSpecs = partitionSpecs;
+      this.source_db = source_db;
+      this.source_table_name = source_table_name;
+      this.dest_db = dest_db;
+      this.dest_table_name = dest_table_name;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_partition_with_auth_args(get_partition_with_auth_args other) {
-      if (other.isSetDb_name()) {
-        this.db_name = other.db_name;
+    public exchange_partition_args(exchange_partition_args other) {
+      if (other.isSetPartitionSpecs()) {
+        Map<String,String> __this__partitionSpecs = new HashMap<String,String>();
+        for (Map.Entry<String, String> other_element : other.partitionSpecs.entrySet()) {
+
+          String other_element_key = other_element.getKey();
+          String other_element_value = other_element.getValue();
+
+          String __this__partitionSpecs_copy_key = other_element_key;
+
+          String __this__partitionSpecs_copy_value = other_element_value;
+
+          __this__partitionSpecs.put(__this__partitionSpecs_copy_key, __this__partitionSpecs_copy_value);
+        }
+        this.partitionSpecs = __this__partitionSpecs;
       }
-      if (other.isSetTbl_name()) {
-        this.tbl_name = other.tbl_name;
+      if (other.isSetSource_db()) {
+        this.source_db = other.source_db;
       }
-      if (other.isSetPart_vals()) {
-        List<String> __this__part_vals = new ArrayList<String>();
-        for (String other_element : other.part_vals) {
-          __this__part_vals.add(other_element);
-        }
-        this.part_vals = __this__part_vals;
+      if (other.isSetSource_table_name()) {
+        this.source_table_name = other.source_table_name;
       }
-      if (other.isSetUser_name()) {
-        this.user_name = other.user_name;
+      if (other.isSetDest_db()) {
+        this.dest_db = other.dest_db;
       }
-      if (other.isSetGroup_names()) {
-        List<String> __this__group_names = new ArrayList<String>();
-        for (String other_element : other.group_names) {
-          __this__group_names.add(other_element);
-        }
-        this.group_names = __this__group_names;
+      if (other.isSetDest_table_name()) {
+        this.dest_table_name = other.dest_table_name;
       }
     }
 
-    public get_partition_with_auth_args deepCopy() {
-      return new get_partition_with_auth_args(this);
+    public exchange_partition_args deepCopy() {
+      return new exchange_partition_args(this);
     }
 
     @Override
     public void clear() {
-      this.db_name = null;
-      this.tbl_name = null;
-      this.part_vals = null;
-      this.user_name = null;
-      this.group_names = null;
-    }
-
-    public String getDb_name() {
-      return this.db_name;
+      this.partitionSpecs = null;
+      this.source_db = null;
+      this.source_table_name = null;
+      this.dest_db = null;
+      this.dest_table_name = null;
     }
 
-    public void setDb_name(String db_name) {
-      this.db_name = db_name;
+    public int getPartitionSpecsSize() {
+      return (this.partitionSpecs == null) ? 0 : this.partitionSpecs.size();
     }
 
-    public void unsetDb_name() {
-      this.db_name = null;
+    public void putToPartitionSpecs(String key, String val) {
+      if (this.partitionSpecs == null) {
+        this.partitionSpecs = new HashMap<String,String>();
+      }
+      this.partitionSpecs.put(key, val);
     }
 
-    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
-    public boolean isSetDb_name() {
-      return this.db_name != null;
+    public Map<String,String> getPartitionSpecs() {
+      return this.partitionSpecs;
     }
 
-    public void setDb_nameIsSet(boolean value) {
-      if (!value) {
-        this.db_name = null;
-      }
+    public void setPartitionSpecs(Map<String,String> partitionSpecs) {
+      this.partitionSpecs = partitionSpecs;
     }
 
-    public String getTbl_name() {
-      return this.tbl_name;
+    public void unsetPartitionSpecs() {
+      this.partitionSpecs = null;
     }
 
-    public void setTbl_name(String tbl_name) {
-      this.tbl_name = tbl_name;
+    /** Returns true if field partitionSpecs is set (has been assigned a value) and false otherwise */
+    public boolean isSetPartitionSpecs() {
+      return this.partitionSpecs != null;
     }
 
-    public void unsetTbl_name() {
-      this.tbl_name = null;
+    public void setPartitionSpecsIsSet(boolean value) {
+      if (!value) {
+        this.partitionSpecs = null;
+      }
     }
 
-    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
-    public boolean isSetTbl_name() {
-      return this.tbl_name != null;
+    public String getSource_db() {
+      return this.source_db;
     }
 
-    public void setTbl_nameIsSet(boolean value) {
-      if (!value) {
-        this.tbl_name = null;
-      }
+    public void setSource_db(String source_db) {
+      this.source_db = source_db;
     }
 
-    public int getPart_valsSize() {
-      return (this.part_vals == null) ? 0 : this.part_vals.size();
+    public void unsetSource_db() {
+      this.source_db = null;
     }
 
-    public java.util.Iterator<String> getPart_valsIterator() {
-      return (this.part_vals == null) ? null : this.part_vals.iterator();
+    /** Returns true if field source_db is set (has been assigned a value) and false otherwise */
+    public boolean isSetSource_db() {
+      return this.source_db != null;
     }
 
-    public void addToPart_vals(String elem) {
-      if (this.part_vals == null) {
-        this.part_vals = new ArrayList<String>();
+    public void setSource_dbIsSet(boolean value) {
+      if (!value) {
+        this.source_db = null;
       }
-      this.part_vals.add(elem);
     }
 
-    public List<String> getPart_vals() {
-      return this.part_vals;
+    public String getSource_table_name() {
+      return this.source_table_name;
     }
 
-    public void setPart_vals(List<String> part_vals) {
-      this.part_vals = part_vals;
+    public void setSource_table_name(String source_table_name) {
+      this.source_table_name = source_table_name;
     }
 
-    public void unsetPart_vals() {
-      this.part_vals = null;
+    public void unsetSource_table_name() {
+      this.source_table_name = null;
     }
 
-    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
-    public boolean isSetPart_vals() {
-      return this.part_vals != null;
+    /** Returns true if field source_table_name is set (has been assigned a value) and false otherwise */
+    public boolean isSetSource_table_name() {
+      return this.source_table_name != null;
     }
 
-    public void setPart_valsIsSet(boolean value) {
+    public void setSource_table_nameIsSet(boolean value) {
       if (!value) {
-        this.part_vals = null;
+        this.source_table_name = null;
       }
     }
 
-    public String getUser_name() {
-      return this.user_name;
+    public String getDest_db() {
+      return this.dest_db;
     }
 
-    public void setUser_name(String user_name) {
-      this.user_name = user_name;
+    public void setDest_db(String dest_db) {
+      this.dest_db = dest_db;
     }
 
-    public void unsetUser_name() {
-      this.user_name = null;
+    public void unsetDest_db() {
+      this.dest_db = null;
     }
 
-    /** Returns true if field user_name is set (has been assigned a value) and false otherwise */
-    public boolean isSetUser_name() {
-      return this.user_name != null;
+    /** Returns true if field dest_db is set (has been assigned a value) and false otherwise */
+    public boolean isSetDest_db() {
+      return this.dest_db != null;
     }
 
-    public void setUser_nameIsSet(boolean value) {
+    public void setDest_dbIsSet(boolean value) {
       if (!value) {
-        this.user_name = null;
-      }
-    }
-
-    public int getGroup_namesSize() {
-      return (this.group_names == null) ? 0 : this.group_names.size();
-    }
-
-    public java.util.Iterator<String> getGroup_namesIterator() {
-      return (this.group_names == null) ? null : this.group_names.iterator();
-    }
-
-    public void addToGroup_names(String elem) {
-      if (this.group_names == null) {
-        this.group_names = new ArrayList<String>();
+        this.dest_db = null;
       }
-      this.group_names.add(elem);
     }
 
-    public List<String> getGroup_names() {
-      return this.group_names;
+    public String getDest_table_name() {
+      return this.dest_table_name;
     }
 
-    public void setGroup_names(List<String> group_names) {
-      this.group_names = group_names;
+    public void setDest_table_name(String dest_table_name) {
+      this.dest_table_name = dest_table_name;
     }
 
-    public void unsetGroup_names() {
-      this.group_names = null;
+    public void unsetDest_table_name() {
+      this.dest_table_name = null;
     }
 
-    /** Returns true if field group_names is set (has been assigned a value) and false otherwise */
-    public boolean isSetGroup_names() {
-      return this.group_names != null;
+    /** Returns true if field dest_table_name is set (has been assigned a value) and false otherwise */
+    public boolean isSetDest_table_name() {
+      return this.dest_table_name != null;
     }
 
-    public void setGroup_namesIsSet(boolean value) {
+    public void setDest_table_nameIsSet(boolean value) {
       if (!value) {
-        this.group_names = null;
+        this.dest_table_name = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case DB_NAME:
+      case PARTITION_SPECS:
         if (value == null) {
-          unsetDb_name();
+          unsetPartitionSpecs();
         } else {
-          setDb_name((String)value);
+          setPartitionSpecs((Map<String,String>)value);
         }
         break;
 
-      case TBL_NAME:
+      case SOURCE_DB:
         if (value == null) {
-          unsetTbl_name();
+          unsetSource_db();
         } else {
-          setTbl_name((String)value);
+          setSource_db((String)value);
         }
         break;
 
-      case PART_VALS:
+      case SOURCE_TABLE_NAME:
         if (value == null) {
-          unsetPart_vals();
+          unsetSource_table_name();
         } else {
-          setPart_vals((List<String>)value);
+          setSource_table_name((String)value);
         }
         break;
 
-      case USER_NAME:
+      case DEST_DB:
         if (value == null) {
-          unsetUser_name();
+          unsetDest_db();
         } else {
-          setUser_name((String)value);
+          setDest_db((String)value);
         }
         break;
 
-      case GROUP_NAMES:
+      case DEST_TABLE_NAME:
         if (value == null) {
-          unsetGroup_names();
+          unsetDest_table_name();
         } else {
-          setGroup_names((List<String>)value);
+          setDest_table_name((String)value);
         }
         break;
 
@@ -47252,20 +47355,20 @@ public class ThriftHiveMetastore {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case DB_NAME:
-        return getDb_name();
+      case PARTITION_SPECS:
+        return getPartitionSpecs();
 
-      case TBL_NAME:
-        return getTbl_name();
+      case SOURCE_DB:
+        return getSource_db();
 
-      case PART_VALS:
-        return getPart_vals();
+      case SOURCE_TABLE_NAME:
+        return getSource_table_name();
 
-      case USER_NAME:
-        return getUser_name();
+      case DEST_DB:
+        return getDest_db();
 
-      case GROUP_NAMES:
-        return getGroup_names();
+      case DEST_TABLE_NAME:
+        return getDest_table_name();
 
       }
       throw new IllegalStateException();
@@ -47278,16 +47381,16 @@ public class ThriftHiveMetastore {
       }
 
       switch (field) {
-      case DB_NAME:
-        return isSetDb_name();
-      case TBL_NAME:
-        return isSetTbl_name();
-      case PART_VALS:
-        return isSetPart_vals();
-      case USER_NAME:
-        return isSetUser_name();
-      case GROUP_NAMES:
-        return isSetGroup_names();
+      case PARTITION_SPECS:
+        return isSetPartitionSpecs();
+      case SOURCE_DB:
+        return isSetSource_db();
+      case SOURCE_TABLE_NAME:
+        return isSetSource_table_name();
+      case DEST_DB:
+        return isSetDest_db();
+      case DEST_TABLE_NAME:
+        return isSetDest_table_name();
       }
       throw new IllegalStateException();
     }
@@ -47296,57 +47399,57 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof get_partition_with_auth_args)
-        return this.equals((get_partition_with_auth_args)that);
+      if (that instanceof exchange_partition_args)
+        return this.equals((exchange_partition_args)that);
       return false;
     }
 
-    public boolean equals(get_partition_with_auth_args that) {
+    public boolean equals(exchange_partition_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_db_name = true && this.isSetDb_name();
-      boolean that_present_db_name = true && that.isSetDb_name();
-      if (this_present_db_name || that_present_db_name) {
-        if (!(this_present_db_name && that_present_db_name))
+      boolean this_present_partitionSpecs = true && this.isSetPartitionSpecs();
+      boolean that_present_partitionSpecs = true && that.isSetPartitionSpecs();
+      if (this_present_partitionSpecs || that_present_partitionSpecs) {
+        if (!(this_present_partitionSpecs && that_present_partitionSpecs))
           return false;
-        if (!this.db_name.equals(that.db_name))
+        if (!this.partitionSpecs.equals(that.partitionSpecs))
           return false;
       }
 
-      boolean this_present_tbl_name = true && this.isSetTbl_name();
-      boolean that_present_tbl_name = true && that.isSetTbl_name();
-      if (this_present_tbl_name || that_present_tbl_name) {
-        if (!(this_present_tbl_name && that_present_tbl_name))
+      boolean this_present_source_db = true && this.isSetSource_db();
+      boolean that_present_source_db = true && that.isSetSource_db();
+      if (this_present_source_db || that_present_source_db) {
+        if (!(this_present_source_db && that_present_source_db))
           return false;
-        if (!this.tbl_name.equals(that.tbl_name))
+        if (!this.source_db.equals(that.source_db))
           return false;
       }
 
-      boolean this_present_part_vals = true && this.isSetPart_vals();
-      boolean that_present_part_vals = true && that.isSetPart_vals();
-      if (this_present_part_vals || that_present_part_vals) {
-        if (!(this_present_part_vals && that_present_part_vals))
+      boolean this_present_source_table_name = true && this.isSetSource_table_name();
+      boolean that_present_source_table_name = true && that.isSetSource_table_name();
+      if (this_present_source_table_name || that_present_source_table_name) {
+        if (!(this_present_source_table_name && that_present_source_table_name))
           return false;
-        if (!this.part_vals.equals(that.part_vals))
+        if (!this.source_table_name.equals(that.source_table_name))
           return false;
       }
 
-      boolean this_present_user_name = true && this.isSetUser_name();
-      boolean that_present_user_name = true && that.isSetUser_name();
-      if (this_present_user_name || that_present_user_name) {
-        if (!(this_present_user_name && that_present_user_name))
+      boolean this_present_dest_db = true && this.isSetDest_db();
+      boolean that_present_dest_db = true && that.isSetDest_db();
+      if (this_present_dest_db || that_present_dest_db) {
+        if (!(this_present_dest_db && that_present_dest_db))
           return false;
-        if (!this.user_name.equals(that.user_name))
+        if (!this.dest_db.equals(that.dest_db))
           return false;
       }
 
-      boolean this_present_group_names = true && this.isSetGroup_names();
-      boolean that_present_group_names = true && that.isSetGroup_names();
-      if (this_present_group_names || that_present_group_names) {
-        if (!(this_present_group_names && that_present_group_names))
+      boolean this_present_dest_table_name = true && this.isSetDest_table_name();
+      boolean that_present_dest_table_name = true && that.isSetDest_table_name();
+      if (this_present_dest_table_name || that_present_dest_table_name) {
+        if (!(this_present_dest_table_name && that_present_dest_table_name))
           return false;
-        if (!this.group_names.equals(that.group_names))
+        if (!this.dest_table_name.equals(that.dest_table_name))
           return false;
       }
 
@@ -47357,88 +47460,88 @@ public class ThriftHiveMetastore {
     public int hashCode() {
       HashCodeBuilder builder = new HashCodeBuilder();
 
-      boolean present_db_name = true && (isSetDb_name());
-      builder.append(present_db_name);
-      if (present_db_name)
-        builder.append(db_name);
+      boolean present_partitionSpecs = true && (isSetPartitionSpecs());
+      builder.append(present_partitionSpecs);
+      if (present_partitionSpecs)
+        builder.append(partitionSpecs);
 
-      boolean present_tbl_name = true && (isSetTbl_name());
-      builder.append(present_tbl_name);
-      if (present_tbl_name)
-        builder.append(tbl_name);
+      boolean present_source_db = true && (isSetSource_db());
+      builder.append(present_source_db);
+      if (present_source_db)
+        builder.append(source_db);
 
-      boolean present_part_vals = true && (isSetPart_vals());
-      builder.append(present_part_vals);
-      if (present_part_vals)
-        builder.append(part_vals);
+      boolean present_source_table_name = true && (isSetSource_table_name());
+      builder.append(present_source_table_name);
+      if (present_source_table_name)
+        builder.append(source_table_name);
 
-      boolean present_user_name = true && (isSetUser_name());
-      builder.append(present_user_name);
-      if (present_user_name)
-        builder.append(user_name);
+      boolean present_dest_db = true && (isSetDest_db());
+      builder.append(present_dest_db);
+      if (present_dest_db)
+        builder.append(dest_db);
 
-      boolean present_group_names = true && (isSetGroup_names());
-      builder.append(present_group_names);
-      if (present_group_names)
-        builder.append(group_names);
+      boolean present_dest_table_name = true && (isSetDest_table_name());
+      builder.append(present_dest_table_name);
+      if (present_dest_table_name)
+        builder.append(dest_table_name);
 
       return builder.toHashCode();
     }
 
-    public int compareTo(get_partition_with_auth_args other) {
+    public int compareTo(exchange_partition_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
-      get_partition_with_auth_args typedOther = (get_partition_with_auth_args)other;
+      exchange_partition_args typedOther = (exchange_partition_args)other;
 
-      lastComparison = Boolean.valueOf(isSetDb_name()).compareTo(typedOther.isSetDb_name());
+      lastComparison = Boolean.valueOf(isSetPartitionSpecs()).compareTo(typedOther.isSetPartitionSpecs());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetDb_name()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, typedOther.db_name);
+      if (isSetPartitionSpecs()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partitionSpecs, typedOther.partitionSpecs);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetTbl_name()).compareTo(typedOther.isSetTbl_name());
+      lastComparison = Boolean.valueOf(isSetSource_db()).compareTo(typedOther.isSetSource_db());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetTbl_name()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, typedOther.tbl_name);
+      if (isSetSource_db()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source_db, typedOther.source_db);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetPart_vals()).compareTo(typedOther.isSetPart_vals());
+      lastComparison = Boolean.valueOf(isSetSource_table_name()).compareTo(typedOther.isSetSource_table_name());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetPart_vals()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, typedOther.part_vals);
+      if (isSetSource_table_name()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source_table_name, typedOther.source_table_name);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetUser_name()).compareTo(typedOther.isSetUser_name());
+      lastComparison = Boolean.valueOf(isSetDest_db()).compareTo(typedOther.isSetDest_db());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetUser_name()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, typedOther.user_name);
+      if (isSetDest_db()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dest_db, typedOther.dest_db);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetGroup_names()).compareTo(typedOther.isSetGroup_names());
+      lastComparison = Boolean.valueOf(isSetDest_table_name()).compareTo(typedOther.isSetDest_table_name());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGroup_names()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.group_names, typedOther.group_names);
+      if (isSetDest_table_name()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dest_table_name, typedOther.dest_table_name);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -47460,46 +47563,46 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("get_partition_with_auth_args(");
+      StringBuilder sb = new StringBuilder("exchange_partition_args(");
       boolean first = true;
 
-      sb.append("db_name:");
-      if (this.db_name == null) {
+      sb.append("partitionSpecs:");
+      if (this.partitionSpecs == null) {
         sb.append("null");
       } else {
-        sb.append(this.db_name);
+        sb.append(this.partitionSpecs);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("tbl_name:");
-      if (this.tbl_name == null) {
+      sb.append("source_db:");
+      if (this.source_db == null) {
         sb.append("null");
       } else {
-        sb.append(this.tbl_name);
+        sb.append(this.source_db);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("part_vals:");
-      if (this.part_vals == null) {
+      sb.append("source_table_name:");
+      if (this.source_table_name == null) {
         sb.append("null");
       } else {
-        sb.append(this.part_vals);
+        sb.append(this.source_table_name);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("user_name:");
-      if (this.user_name == null) {
+      sb.append("dest_db:");
+      if (this.dest_db == null) {
         sb.append("null");
       } else {
-        sb.append(this.user_name);
+        sb.append(this.dest_db);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("group_names:");
-      if (this.group_names == null) {
+      sb.append("dest_table_name:");
+      if (this.dest_table_name == null) {
         sb.append("null");
       } else {
-        sb.append(this.group_names);
+        sb.append(this.dest_table_name);
       }
       first = false;
       sb.append(")");
@@ -47527,15 +47630,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class get_partition_with_auth_argsStandardSchemeFactory implements SchemeFactory {
-      public get_partition_with_auth_argsStandardScheme getScheme() {
-        return new get_partition_with_auth_argsStandardScheme();
+    private static class exchange_partition_argsStandardSchemeFactory implements SchemeFactory {
+      public exchange_partition_argsStandardScheme getScheme() {
+        return new exchange_partition_argsStandardScheme();
       }
     }
 
-    private static class get_partition_with_auth_argsStandardScheme extends StandardScheme<get_partition_with_auth_args> {
+    private static class exchange_partition_argsStandardScheme extends StandardScheme<exchange_partition_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, exchange_partition_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -47545,62 +47648,54 @@ public class ThriftHiveMetastore {
             break;
           }
           switch (schemeField.id) {
-            case 1: // DB_NAME
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.db_name = iprot.readString();
-                struct.setDb_nameIsSet(true);
+            case 1: // PARTITION_SPECS
+              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+                {
+                  org.apache.thrift.protocol.TMap _map386 = iprot.readMapBegin();
+                  struct.partitionSpecs = new HashMap<String,String>(2*_map386.size);
+                  for (int _i387 = 0; _i387 < _map386.size; ++_i387)
+                  {
+                    String _key388; // required
+                    String _val389; // required
+                    _key388 = iprot.readString();
+                    _val389 = iprot.readString();
+                    struct.partitionSpecs.put(_key388, _val389);
+                  }
+                  iprot.readMapEnd();
+                }
+                struct.setPartitionSpecsIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // TBL_NAME
+            case 2: // SOURCE_DB
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.tbl_name = iprot.readString();
-                struct.setTbl_nameIsSet(true);
+                struct.source_db = iprot.readString();
+                struct.setSource_dbIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // PART_VALS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list386 = iprot.readListBegin();
-                  struct.part_vals = new ArrayList<String>(_list386.size);
-                  for (int _i387 = 0; _i387 < _list386.size; ++_i387)
-                  {
-                    String _elem388; // required
-                    _elem388 = iprot.readString();
-                    struct.part_vals.add(_elem388);
-                  }
-                  iprot.readListEnd();
-                }
-                struct.setPart_valsIsSet(true);
+            case 3: // SOURCE_TABLE_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.source_table_name = iprot.readString();
+                struct.setSource_table_nameIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 4: // USER_NAME
+            case 4: // DEST_DB
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.user_name = iprot.readString();
-                struct.setUser_nameIsSet(true);
+                struct.dest_db = iprot.readString();
+                struct.setDest_dbIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 5: // GROUP_NAMES
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list389 = iprot.readListBegin();
-                  struct.group_names = new ArrayList<String>(_list389.size);
-                  for (int _i390 = 0; _i390 < _list389.size; ++_i390)
-                  {
-                    String _elem391; // required
-                    _elem391 = iprot.readString();
-                    struct.group_names.add(_elem391);
-                  }
-                  iprot.readListEnd();
-                }
-                struct.setGroup_namesIsSet(true);
+            case 5: // DEST_TABLE_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.dest_table_name = iprot.readString();
+                struct.setDest_table_nameIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -47614,47 +47709,41 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, exchange_partition_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.db_name != null) {
-          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
-          oprot.writeString(struct.db_name);
-          oprot.writeFieldEnd();
-        }
-        if (struct.tbl_name != null) {
-          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
-          oprot.writeString(struct.tbl_name);
-          oprot.writeFieldEnd();
-        }
-        if (struct.part_vals != null) {
-          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
+        if (struct.partitionSpecs != null) {
+          oprot.writeFieldBegin(PARTITION_SPECS_FIELD_DESC);
           {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
-            for (String _iter392 : struct.part_vals)
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.partitionSpecs.size()));
+            for (Map.Entry<String, String> _iter390 : struct.partitionSpecs.entrySet())
             {
-              oprot.writeString(_iter392);
+              oprot.writeString(_iter390.getKey());
+              oprot.writeString(_iter390.getValue());
             }
-            oprot.writeListEnd();
+            oprot.writeMapEnd();
           }
           oprot.writeFieldEnd();
         }
-        if (struct.user_name != null) {
-          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
-          oprot.writeString(struct.user_name);
+        if (struct.source_db != null) {
+          oprot.writeFieldBegin(SOURCE_DB_FIELD_DESC);
+          oprot.writeString(struct.source_db);
           oprot.writeFieldEnd();
         }
-        if (struct.group_names != null) {
-          oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size()));
-            for (String _iter393 : struct.group_names)
-            {
-              oprot.writeString(_iter393);
-            }
-            oprot.writeListEnd();
-          }
+        if (struct.source_table_name != null) {
+          oprot.writeFieldBegin(SOURCE_TABLE_NAME_FIELD_DESC);
+          oprot.writeString(struct.source_table_name);
+          oprot.writeFieldEnd();
+        }
+        if (struct.dest_db != null) {
+          oprot.writeFieldBegin(DEST_DB_FIELD_DESC);
+          oprot.writeString(struct.dest_db);
+          oprot.writeFieldEnd();
+        }
+        if (struct.dest_table_name != null) {
+          oprot.writeFieldBegin(DEST_TABLE_NAME_FIELD_DESC);
+          oprot.writeString(struct.dest_table_name);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -47663,132 +47752,126 @@ public class ThriftHiveMetastore {
 
     }
 
-    private static class get_partition_with_auth_argsTupleSchemeFactory implements SchemeFactory {
-      public get_partition_with_auth_argsTupleScheme getScheme() {
-        return new get_partition_with_auth_argsTupleScheme();
+    private static class exchange_partition_argsTupleSchemeFactory implements SchemeFactory {
+      public exchange_partition_argsTupleScheme getScheme() {
+        return new exchange_partition_argsTupleScheme();
       }
     }
 
-    private static class get_partition_with_auth_argsTupleScheme extends TupleScheme<get_partition_with_auth_args> {
+    private static class exchange_partition_argsTupleScheme extends TupleScheme<exchange_partition_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, exchange_partition_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
-        if (struct.isSetDb_name()) {
+        if (struct.isSetPartitionSpecs()) {
           optionals.set(0);
         }
-        if (struct.isSetTbl_name()) {
+        if (struct.isSetSource_db()) {
           optionals.set(1);
         }
-        if (struct.isSetPart_vals()) {
+        if (struct.isSetSource_table_name()) {
           optionals.set(2);
         }
-        if (struct.isSetUser_name()) {
+        if (struct.isSetDest_db()) {
           optionals.set(3);
         }
-        if (struct.isSetGroup_names()) {
+        if (struct.isSetDest_table_name()) {
           optionals.set(4);
         }
         oprot.writeBitSet(optionals, 5);
-        if (struct.isSetDb_name()) {
-          oprot.writeString(struct.db_name);
-        }
-        if (struct.isSetTbl_name()) {
-          oprot.writeString(struct.tbl_name);
-        }
-        if (struct.isSetPart_vals()) {
+        if (struct.isSetPartitionSpecs()) {
           {
-            oprot.writeI32(struct.part_vals.size());
-            for (String _iter394 : struct.part_vals)
+            oprot.writeI32(struct.partitionSpecs.size());
+            for (Map.Entry<String, String> _iter391 : struct.partitionSpecs.entrySet())
             {
-              oprot.writeString(_iter394);
+              oprot.writeString(_iter391.getKey());
+              oprot.writeString(_iter391.getValue());
             }
           }
         }
-        if (struct.isSetUser_name()) {
-          oprot.writeString(struct.user_name);
+        if (struct.isSetSource_db()) {
+          oprot.writeString(struct.source_db);
         }
-        if (struct.isSetGroup_names()) {
-          {
-            oprot.writeI32(struct.group_names.size());
-            for (String _iter395 : struct.group_names)
-            {
-              oprot.writeString(_iter395);
-            }
-          }
+        if (struct.isSetSource_table_name()) {
+          oprot.writeString(struct.source_table_name);
+        }
+        if (struct.isSetDest_db()) {
+          oprot.writeString(struct.dest_db);
+        }
+        if (struct.isSetDest_table_name()) {
+          oprot.writeString(struct.dest_table_name);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, exchange_partition_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          struct.db_name = iprot.readString();
-          struct.setDb_nameIsSet(true);
-        }
-        if (incoming.get(1)) {
-          struct.tbl_name = iprot.readString();
-          struct.setTbl_nameIsSet(true);
-        }
-        if (incoming.get(2)) {
           {
-            org.apache.thrift.protocol.TList _list396 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.part_vals = new ArrayList<String>(_list396.size);
-            for (int _i397 = 0; _i397 < _list396.size; ++_i397)
+            org.apache.thrift.protocol.TMap _map392 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.partitionSpecs = new HashMap<String,String>(2*_map392.size);
+            for (int _i393 = 0; _i393 < _map392.size; ++_i393)
             {
-              String _elem398; // required
-              _elem398 = iprot.readString();
-              struct.part_vals.add(_elem398);
+              String _key394; // required
+              String _val395; // required
+              _key394 = iprot.readString();
+              _val395 = iprot.readString();
+              struct.partitionSpecs.put(_key394, _val395);
             }
           }
-          struct.setPart_valsIsSet(true);
+          struct.setPartitionSpecsIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.source_db = iprot.readString();
+          struct.setSource_dbIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.source_table_name = iprot.readString();
+          struct.setSource_table_nameIsSet(true);
         }
         if (incoming.get(3)) {
-          struct.user_name = iprot.readString();
-          struct.setUser_nameIsSet(true);
+          struct.dest_db = iprot.readString();
+          struct.setDest_dbIsSet(true);
         }
         if (incoming.get(4)) {
-          {
-            org.apache.thrift.protocol.TList _list399 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.group_names = new ArrayList<String>(_list399.size);
-            for (int _i400 = 0; _i400 < _list399.size; ++_i400)
-            {
-              String _elem401; // required
-              _elem401 = iprot.readString();
-              struct.group_names.add(_elem401);
-            }
-          }
-          struct.setGroup_namesIsSet(true);
+          struct.dest_table_name = iprot.readString();
+          struct.setDest_table_nameIsSet(true);
         }
       }
     }
 
   }
 
-  public static class get_partition_with_auth_result implements org.apache.thrift.TBase<get_partition_with_auth_result, get_partition_with_auth_result._Fields>, java.io.Serializable, Cloneable   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_with_auth_result");
+  public static class exchange_partition_result implements org.apache.thrift.TBase<exchange_partition_result, exchange_partition_result._Fields>, java.io.Serializable, Cloneable   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exchange_partition_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new get_partition_with_auth_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new get_partition_with_auth_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new exchange_partition_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new exchange_partition_resultTupleSchemeFactory());
     }
 
     private Partition success; // required
     private MetaException o1; // required
     private NoSuchObjectException o2; // required
+    private InvalidObjectException o3; // required
+    private InvalidInputException o4; // 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 {
       SUCCESS((short)0, "success"),
       O1((short)1, "o1"),
-      O2((short)2, "o2");
+      O2((short)2, "o2"),
+      O3((short)3, "o3"),
+      O4((short)4, "o4");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -47809,6 +47892,10 @@ public class ThriftHiveMetastore {
             return O1;
           case 2: // O2
             return O2;
+          case 3: // O3
+            return O3;
+          case 4: // O4
+            return O4;
           default:
             return null;
         }
@@ -47858,28 +47945,1683 @@ public class ThriftHiveMetastore {
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partition_result.class, metaDataMap);
     }
 
-    public get_partition_with_auth_result() {
+    public exchange_partition_result() {
     }
 
-    public get_partition_with_auth_result(
+    public exchange_partition_result(
       Partition success,
       MetaException o1,
-      NoSuchObjectException o2)
+      NoSuchObjectException o2,
+      InvalidObjectException o3,
+      InvalidInputException o4)
     {
       this();
       this.success = success;
       this.o1 = o1;
       this.o2 = o2;
+      this.o3 = o3;
+      this.o4 = o4;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_partition_with_auth_result(get_partition_with_auth_result other) {
+    public exchange_partition_result(exchange_partition_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new Partition(other.success);
+      }
+      if (other.isSetO1()) {
+        this.o1 = new MetaException(other.o1);
+      }
+      if (other.isSetO2()) {
+        this.o2 = new NoSuchObjectException(other.o2);
+      }
+      if (other.isSetO3()) {
+        this.o3 = new InvalidObjectException(other.o3);
+      }
+      if (other.isSetO4()) {
+        this.o4 = new InvalidInputException(other.o4);
+      }
+    }
+
+    public exchange_partition_result deepCopy() {
+      return new exchange_partition_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.o1 = null;
+      this.o2 = null;
+      this.o3 = null;
+      this.o4 = null;
+    }
+
+    public Partition getSuccess() {
+      return this.success;
+    }
+
+    public void setSuccess(Partition success) {
+      this.success = success;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public MetaException getO1() {
+      return this.o1;
+    }
+
+    public void setO1(MetaException o1) {
+      this.o1 = o1;
+    }
+
+    public void unsetO1() {
+      this.o1 = null;
+    }
+
+    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
+    public boolean isSetO1() {
+      return this.o1 != null;
+    }
+
+    public void setO1IsSet(boolean value) {
+      if (!value) {
+        this.o1 = null;
+      }
+    }
+
+    public NoSuchObjectException getO2() {
+      return this.o2;
+    }
+
+    public void setO2(NoSuchObjectException o2) {
+      this.o2 = o2;
+    }
+
+    public void unsetO2() {
+      this.o2 = null;
+    }
+
+    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
+    public boolean isSetO2() {
+      return this.o2 != null;
+    }
+
+    public void setO2IsSet(boolean value) {
+      if (!value) {
+        this.o2 = null;
+      }
+    }
+
+    public InvalidObjectException getO3() {
+      return this.o3;
+    }
+
+    public void setO3(InvalidObjectException o3) {
+      this.o3 = o3;
+    }
+
+    public void unsetO3() {
+      this.o3 = null;
+    }
+
+    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
+    public boolean isSetO3() {
+      return this.o3 != null;
+    }
+
+    public void setO3IsSet(boolean value) {
+      if (!value) {
+        this.o3 = null;
+      }
+    }
+
+    public InvalidInputException getO4() {
+      return this.o4;
+    }
+
+    public void setO4(InvalidInputException o4) {
+      this.o4 = o4;
+    }
+
+    public void unsetO4() {
+      this.o4 = null;
+    }
+
+    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
+    public boolean isSetO4() {
+      return this.o4 != null;
+    }
+
+    public void setO4IsSet(boolean value) {
+      if (!value) {
+        this.o4 = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Partition)value);
+        }
+        break;
+
+      case O1:
+        if (value == null) {
+          unsetO1();
+        } else {
+          setO1((MetaException)value);
+        }
+        break;
+
+      case O2:
+        if (value == null) {
+          unsetO2();
+        } else {
+          setO2((NoSuchObjectException)value);
+        }
+        break;
+
+      case O3:
+        if (value == null) {
+          unsetO3();
+        } else {
+          setO3((InvalidObjectException)value);
+        }
+        break;
+
+      case O4:
+        if (value == null) {
+          unsetO4();
+        } else {
+          setO4((InvalidInputException)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case O1:
+        return getO1();
+
+      case O2:
+        return getO2();
+
+      case O3:
+        return getO3();
+
+      case O4:
+        return getO4();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case O1:
+        return isSetO1();
+      case O2:
+        return isSetO2();
+      case O3:
+        return isSetO3();
+      case O4:
+        return isSetO4();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof exchange_partition_result)
+        return this.equals((exchange_partition_result)that);
+      return false;
+    }
+
+    public boolean equals(exchange_partition_result that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_o1 = true && this.isSetO1();
+      boolean that_present_o1 = true && that.isSetO1();
+      if (this_present_o1 || that_present_o1) {
+        if (!(this_present_o1 && that_present_o1))
+          return false;
+        if (!this.o1.equals(that.o1))
+          return false;
+      }
+
+      boolean this_present_o2 = true && this.isSetO2();
+      boolean that_present_o2 = true && that.isSetO2();
+      if (this_present_o2 || that_present_o2) {
+        if (!(this_present_o2 && that_present_o2))
+          return false;
+        if (!this.o2.equals(that.o2))
+          return false;
+      }
+
+      boolean this_present_o3 = true && this.isSetO3();
+      boolean that_present_o3 = true && that.isSetO3();
+      if (this_present_o3 || that_present_o3) {
+        if (!(this_present_o3 && that_present_o3))
+          return false;
+        if (!this.o3.equals(that.o3))
+          return false;
+      }
+
+      boolean this_present_o4 = true && this.isSetO4();
+      boolean that_present_o4 = true && that.isSetO4();
+      if (this_present_o4 || that_present_o4) {
+        if (!(this_present_o4 && that_present_o4))
+          return false;
+        if (!this.o4.equals(that.o4))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      HashCodeBuilder builder = new HashCodeBuilder();
+
+      boolean present_success = true && (isSetSuccess());
+      builder.append(present_success);
+      if (present_success)
+        builder.append(success);
+
+      boolean present_o1 = true && (isSetO1());
+      builder.append(present_o1);
+      if (present_o1)
+        builder.append(o1);
+
+      boolean present_o2 = true && (isSetO2());
+      builder.append(present_o2);
+      if (present_o2)
+        builder.append(o2);
+
+      boolean present_o3 = true && (isSetO3());
+      builder.append(present_o3);
+      if (present_o3)
+        builder.append(o3);
+
+      boolean present_o4 = true && (isSetO4());
+      builder.append(present_o4);
+      if (present_o4)
+        builder.append(o4);
+
+      return builder.toHashCode();
+    }
+
+    public int compareTo(exchange_partition_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+      exchange_partition_result typedOther = (exchange_partition_result)other;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetO1()).compareTo(typedOther.isSetO1());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetO1()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, typedOther.o1);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetO2()).compareTo(typedOther.isSetO2());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetO2()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, typedOther.o2);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetO3()).compareTo(typedOther.isSetO3());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetO3()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, typedOther.o3);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetO4()).compareTo(typedOther.isSetO4());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetO4()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, typedOther.o4);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("exchange_partition_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("o1:");
+      if (this.o1 == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.o1);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("o2:");
+      if (this.o2 == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.o2);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("o3:");
+      if (this.o3 == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.o3);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("o4:");
+      if (this.o4 == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.o4);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class exchange_partition_resultStandardSchemeFactory implements SchemeFactory {
+      public exchange_partition_resultStandardScheme getScheme() {
+        return new exchange_partition_resultStandardScheme();
+      }
+    }
+
+    private static class exchange_partition_resultStandardScheme extends StandardScheme<exchange_partition_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, exchange_partition_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new Partition();
+                struct.success.read(iprot);
+                struct.setSuccessIsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // O1
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.o1 = new MetaException();
+                struct.o1.read(iprot);
+                struct.setO1IsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // O2
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.o2 = new NoSuchObjectException();
+                struct.o2.read(iprot);
+                struct.setO2IsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // O3
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.o3 = new InvalidObjectException();
+                struct.o3.read(iprot);
+                struct.setO3IsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // O4
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.o4 = new InvalidInputException();
+                struct.o4.read(iprot);
+                struct.setO4IsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, exchange_partition_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          struct.success.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.o1 != null) {
+          oprot.writeFieldBegin(O1_FIELD_DESC);
+          struct.o1.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.o2 != null) {
+          oprot.writeFieldBegin(O2_FIELD_DESC);
+          struct.o2.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.o3 != null) {
+          oprot.writeFieldBegin(O3_FIELD_DESC);
+          struct.o3.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.o4 != null) {
+          oprot.writeFieldBegin(O4_FIELD_DESC);
+          struct.o4.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class exchange_partition_resultTupleSchemeFactory implements SchemeFactory {
+      public exchange_partition_resultTupleScheme getScheme() {
+        return new exchange_partition_resultTupleScheme();
+      }
+    }
+
+    private static class exchange_partition_resultTupleScheme extends TupleScheme<exchange_partition_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, exchange_partition_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetO1()) {
+          optionals.set(1);
+        }
+        if (struct.isSetO2()) {
+          optionals.set(2);
+        }
+        if (struct.isSetO3()) {
+          optionals.set(3);
+        }
+        if (struct.isSetO4()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
+        if (struct.isSetSuccess()) {
+          struct.success.write(oprot);
+        }
+        if (struct.isSetO1()) {
+          struct.o1.write(oprot);
+        }
+        if (struct.isSetO2()) {
+          struct.o2.write(oprot);
+        }
+        if (struct.isSetO3()) {
+          struct.o3.write(oprot);
+        }
+        if (struct.isSetO4()) {
+          struct.o4.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, exchange_partition_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(5);
+        if (incoming.get(0)) {
+          struct.success = new Partition();
+          struct.success.read(iprot);
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.o1 = new MetaException();
+          struct.o1.read(iprot);
+          struct.setO1IsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.o2 = new NoSuchObjectException();
+          struct.o2.read(iprot);
+          struct.setO2IsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.o3 = new InvalidObjectException();
+          struct.o3.read(iprot);
+          struct.setO3IsSet(true);
+        }
+        if (incoming.get(4)) {
+          struct.o4 = new InvalidInputException();
+          struct.o4.read(iprot);
+          struct.setO4IsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class get_partition_with_auth_args implements org.apache.thrift.TBase<get_partition_with_auth_args, get_partition_with_auth_args._Fields>, java.io.Serializable, Cloneable   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_with_auth_args");
+
+    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
+    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)4);
+    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)5);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new get_partition_with_auth_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new get_partition_with_auth_argsTupleSchemeFactory());
+    }
+
+    private String db_name; // required
+    private String tbl_name; // required
+    private List<String> part_vals; // required
+    private String user_name; // required
+    private List<String> group_names; // 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 {
+      DB_NAME((short)1, "db_name"),
+      TBL_NAME((short)2, "tbl_name"),
+      PART_VALS((short)3, "part_vals"),
+      USER_NAME((short)4, "user_name"),
+      GROUP_NAMES((short)5, "group_names");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DB_NAME
+            return DB_NAME;
+          case 2: // TBL_NAME
+            return TBL_NAME;
+          case 3: // PART_VALS
+            return PART_VALS;
+          case 4: // USER_NAME
+            return USER_NAME;
+          case 5: // GROUP_NAMES
+            return GROUP_NAMES;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_args.class, metaDataMap);
+    }
+
+    public get_partition_with_auth_args() {
+    }
+
+    public get_partition_with_auth_args(
+      String db_name,
+      String tbl_name,

[... 2810 lines stripped ...]