You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/08/03 17:03:34 UTC

svn commit: r981913 [2/3] - in /cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift: AuthenticationRequest.java Cassandra.java CfDef.java Constants.java IndexClause.java KeySlice.java KsDef.java TokenRange.java

Modified: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java?rev=981913&r1=981912&r2=981913&view=diff
==============================================================================
--- cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (original)
+++ cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java Tue Aug  3 15:03:33 2010
@@ -76,26 +76,25 @@ public class Cassandra {
     public List<ColumnOrSuperColumn> get_slice(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
 
     /**
-     * Performs a get_slice for column_parent and predicate for the given keys in parallel.
-     * @Deprecated; use `scan`
+     * returns the number of columns matching <code>predicate</code> for a particular <code>key</code>,
+     * <code>ColumnFamily</code> and optionally <code>SuperColumn</code>.
      * 
-     * @param keys
+     * @param key
      * @param column_parent
      * @param predicate
      * @param consistency_level
      */
-    public Map<byte[],List<ColumnOrSuperColumn>> multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
+    public int get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
 
     /**
-     * returns the number of columns matching <code>predicate</code> for a particular <code>key</code>,
-     * <code>ColumnFamily</code> and optionally <code>SuperColumn</code>.
+     * Performs a get_slice for column_parent and predicate for the given keys in parallel.
      * 
-     * @param key
+     * @param keys
      * @param column_parent
      * @param predicate
      * @param consistency_level
      */
-    public int get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
+    public Map<byte[],List<ColumnOrSuperColumn>> multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
 
     /**
      * Perform a get_count in parallel on the given list<binary> keys. The return value maps keys to the count found.
@@ -109,8 +108,7 @@ public class Cassandra {
     public Map<byte[],Integer> multiget_count(String keyspace, List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
 
     /**
-     * returns a subset of columns for a range of keys.
-     * @Deprecated; use `scan`
+     * returns a subset of columns for a contiguous range of keys.
      * 
      * @param column_parent
      * @param predicate
@@ -120,24 +118,14 @@ public class Cassandra {
     public List<KeySlice> get_range_slices(ColumnParent column_parent, SlicePredicate predicate, KeyRange range, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
 
     /**
-     * Returns the subset of columns specified in SlicePredicate for the rows requested in RowsPredicate
-     * 
-     * @param column_parent
-     * @param row_predicate
-     * @param column_predicate
-     * @param consistency_level
-     */
-    public List<KeySlice> scan(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
-
-    /**
-     * Counts the subset of columns specified in SlicePredicate for the rows requested in RowsPredicate
+     * Returns the subset of columns specified in SlicePredicate for the rows matching the IndexClause
      * 
      * @param column_parent
-     * @param row_predicate
+     * @param index_clause
      * @param column_predicate
      * @param consistency_level
      */
-    public List<KeyCount> scan_count(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
+    public List<KeySlice> get_indexed_slices(ColumnParent column_parent, IndexClause index_clause, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException;
 
     /**
      * Insert a Column at the given column_parent.column_family and optional column_parent.super_column.
@@ -303,17 +291,15 @@ public class Cassandra {
 
     public void get_slice(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.get_slice_call> resultHandler) throws TException;
 
-    public void multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.multiget_slice_call> resultHandler) throws TException;
-
     public void get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.get_count_call> resultHandler) throws TException;
 
+    public void multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.multiget_slice_call> resultHandler) throws TException;
+
     public void multiget_count(String keyspace, List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.multiget_count_call> resultHandler) throws TException;
 
     public void get_range_slices(ColumnParent column_parent, SlicePredicate predicate, KeyRange range, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.get_range_slices_call> resultHandler) throws TException;
 
-    public void scan(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.scan_call> resultHandler) throws TException;
-
-    public void scan_count(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.scan_count_call> resultHandler) throws TException;
+    public void get_indexed_slices(ColumnParent column_parent, IndexClause index_clause, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.get_indexed_slices_call> resultHandler) throws TException;
 
     public void insert(byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level, AsyncMethodCallback<AsyncClient.insert_call> resultHandler) throws TException;
 
@@ -566,17 +552,17 @@ public class Cassandra {
       throw new TApplicationException(TApplicationException.MISSING_RESULT, "get_slice failed: unknown result");
     }
 
-    public Map<byte[],List<ColumnOrSuperColumn>> multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
+    public int get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
     {
-      send_multiget_slice(keys, column_parent, predicate, consistency_level);
-      return recv_multiget_slice();
+      send_get_count(key, column_parent, predicate, consistency_level);
+      return recv_get_count();
     }
 
-    public void send_multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws TException
+    public void send_get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws TException
     {
-      oprot_.writeMessageBegin(new TMessage("multiget_slice", TMessageType.CALL, ++seqid_));
-      multiget_slice_args args = new multiget_slice_args();
-      args.setKeys(keys);
+      oprot_.writeMessageBegin(new TMessage("get_count", TMessageType.CALL, ++seqid_));
+      get_count_args args = new get_count_args();
+      args.setKey(key);
       args.setColumn_parent(column_parent);
       args.setPredicate(predicate);
       args.setConsistency_level(consistency_level);
@@ -585,7 +571,7 @@ public class Cassandra {
       oprot_.getTransport().flush();
     }
 
-    public Map<byte[],List<ColumnOrSuperColumn>> recv_multiget_slice() throws InvalidRequestException, UnavailableException, TimedOutException, TException
+    public int recv_get_count() throws InvalidRequestException, UnavailableException, TimedOutException, TException
     {
       TMessage msg = iprot_.readMessageBegin();
       if (msg.type == TMessageType.EXCEPTION) {
@@ -594,9 +580,9 @@ public class Cassandra {
         throw x;
       }
       if (msg.seqid != seqid_) {
-        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "multiget_slice failed: out of sequence response");
+        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "get_count failed: out of sequence response");
       }
-      multiget_slice_result result = new multiget_slice_result();
+      get_count_result result = new get_count_result();
       result.read(iprot_);
       iprot_.readMessageEnd();
       if (result.isSetSuccess()) {
@@ -611,20 +597,20 @@ public class Cassandra {
       if (result.te != null) {
         throw result.te;
       }
-      throw new TApplicationException(TApplicationException.MISSING_RESULT, "multiget_slice failed: unknown result");
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "get_count failed: unknown result");
     }
 
-    public int get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
+    public Map<byte[],List<ColumnOrSuperColumn>> multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
     {
-      send_get_count(key, column_parent, predicate, consistency_level);
-      return recv_get_count();
+      send_multiget_slice(keys, column_parent, predicate, consistency_level);
+      return recv_multiget_slice();
     }
 
-    public void send_get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws TException
+    public void send_multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws TException
     {
-      oprot_.writeMessageBegin(new TMessage("get_count", TMessageType.CALL, ++seqid_));
-      get_count_args args = new get_count_args();
-      args.setKey(key);
+      oprot_.writeMessageBegin(new TMessage("multiget_slice", TMessageType.CALL, ++seqid_));
+      multiget_slice_args args = new multiget_slice_args();
+      args.setKeys(keys);
       args.setColumn_parent(column_parent);
       args.setPredicate(predicate);
       args.setConsistency_level(consistency_level);
@@ -633,7 +619,7 @@ public class Cassandra {
       oprot_.getTransport().flush();
     }
 
-    public int recv_get_count() throws InvalidRequestException, UnavailableException, TimedOutException, TException
+    public Map<byte[],List<ColumnOrSuperColumn>> recv_multiget_slice() throws InvalidRequestException, UnavailableException, TimedOutException, TException
     {
       TMessage msg = iprot_.readMessageBegin();
       if (msg.type == TMessageType.EXCEPTION) {
@@ -642,9 +628,9 @@ public class Cassandra {
         throw x;
       }
       if (msg.seqid != seqid_) {
-        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "get_count failed: out of sequence response");
+        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "multiget_slice failed: out of sequence response");
       }
-      get_count_result result = new get_count_result();
+      multiget_slice_result result = new multiget_slice_result();
       result.read(iprot_);
       iprot_.readMessageEnd();
       if (result.isSetSuccess()) {
@@ -659,7 +645,7 @@ public class Cassandra {
       if (result.te != null) {
         throw result.te;
       }
-      throw new TApplicationException(TApplicationException.MISSING_RESULT, "get_count failed: unknown result");
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "multiget_slice failed: unknown result");
     }
 
     public Map<byte[],Integer> multiget_count(String keyspace, List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
@@ -759,66 +745,18 @@ public class Cassandra {
       throw new TApplicationException(TApplicationException.MISSING_RESULT, "get_range_slices failed: unknown result");
     }
 
-    public List<KeySlice> scan(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
-    {
-      send_scan(column_parent, row_predicate, column_predicate, consistency_level);
-      return recv_scan();
-    }
-
-    public void send_scan(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws TException
-    {
-      oprot_.writeMessageBegin(new TMessage("scan", TMessageType.CALL, ++seqid_));
-      scan_args args = new scan_args();
-      args.setColumn_parent(column_parent);
-      args.setRow_predicate(row_predicate);
-      args.setColumn_predicate(column_predicate);
-      args.setConsistency_level(consistency_level);
-      args.write(oprot_);
-      oprot_.writeMessageEnd();
-      oprot_.getTransport().flush();
-    }
-
-    public List<KeySlice> recv_scan() throws InvalidRequestException, UnavailableException, TimedOutException, TException
-    {
-      TMessage msg = iprot_.readMessageBegin();
-      if (msg.type == TMessageType.EXCEPTION) {
-        TApplicationException x = TApplicationException.read(iprot_);
-        iprot_.readMessageEnd();
-        throw x;
-      }
-      if (msg.seqid != seqid_) {
-        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "scan failed: out of sequence response");
-      }
-      scan_result result = new scan_result();
-      result.read(iprot_);
-      iprot_.readMessageEnd();
-      if (result.isSetSuccess()) {
-        return result.success;
-      }
-      if (result.ire != null) {
-        throw result.ire;
-      }
-      if (result.ue != null) {
-        throw result.ue;
-      }
-      if (result.te != null) {
-        throw result.te;
-      }
-      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scan failed: unknown result");
-    }
-
-    public List<KeyCount> scan_count(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
+    public List<KeySlice> get_indexed_slices(ColumnParent column_parent, IndexClause index_clause, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
     {
-      send_scan_count(column_parent, row_predicate, column_predicate, consistency_level);
-      return recv_scan_count();
+      send_get_indexed_slices(column_parent, index_clause, column_predicate, consistency_level);
+      return recv_get_indexed_slices();
     }
 
-    public void send_scan_count(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws TException
+    public void send_get_indexed_slices(ColumnParent column_parent, IndexClause index_clause, SlicePredicate column_predicate, ConsistencyLevel consistency_level) throws TException
     {
-      oprot_.writeMessageBegin(new TMessage("scan_count", TMessageType.CALL, ++seqid_));
-      scan_count_args args = new scan_count_args();
+      oprot_.writeMessageBegin(new TMessage("get_indexed_slices", TMessageType.CALL, ++seqid_));
+      get_indexed_slices_args args = new get_indexed_slices_args();
       args.setColumn_parent(column_parent);
-      args.setRow_predicate(row_predicate);
+      args.setIndex_clause(index_clause);
       args.setColumn_predicate(column_predicate);
       args.setConsistency_level(consistency_level);
       args.write(oprot_);
@@ -826,7 +764,7 @@ public class Cassandra {
       oprot_.getTransport().flush();
     }
 
-    public List<KeyCount> recv_scan_count() throws InvalidRequestException, UnavailableException, TimedOutException, TException
+    public List<KeySlice> recv_get_indexed_slices() throws InvalidRequestException, UnavailableException, TimedOutException, TException
     {
       TMessage msg = iprot_.readMessageBegin();
       if (msg.type == TMessageType.EXCEPTION) {
@@ -835,9 +773,9 @@ public class Cassandra {
         throw x;
       }
       if (msg.seqid != seqid_) {
-        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "scan_count failed: out of sequence response");
+        throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, "get_indexed_slices failed: out of sequence response");
       }
-      scan_count_result result = new scan_count_result();
+      get_indexed_slices_result result = new get_indexed_slices_result();
       result.read(iprot_);
       iprot_.readMessageEnd();
       if (result.isSetSuccess()) {
@@ -852,7 +790,7 @@ public class Cassandra {
       if (result.te != null) {
         throw result.te;
       }
-      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scan_count failed: unknown result");
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "get_indexed_slices failed: unknown result");
     }
 
     public void insert(byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException
@@ -1716,29 +1654,29 @@ public class Cassandra {
       }
     }
 
-    public void multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<multiget_slice_call> resultHandler) throws TException {
+    public void get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<get_count_call> resultHandler) throws TException {
       checkReady();
-      multiget_slice_call method_call = new multiget_slice_call(keys, column_parent, predicate, consistency_level, resultHandler, this, protocolFactory, transport);
+      get_count_call method_call = new get_count_call(key, column_parent, predicate, consistency_level, resultHandler, this, protocolFactory, transport);
       manager.call(method_call);
     }
 
-    public static class multiget_slice_call extends TAsyncMethodCall {
-      private List<byte[]> keys;
+    public static class get_count_call extends TAsyncMethodCall {
+      private byte[] key;
       private ColumnParent column_parent;
       private SlicePredicate predicate;
       private ConsistencyLevel consistency_level;
-      public multiget_slice_call(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<multiget_slice_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
+      public get_count_call(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<get_count_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
         super(client, protocolFactory, transport, resultHandler, false);
-        this.keys = keys;
+        this.key = key;
         this.column_parent = column_parent;
         this.predicate = predicate;
         this.consistency_level = consistency_level;
       }
 
       public void write_args(TProtocol prot) throws TException {
-        prot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.CALL, 0));
-        multiget_slice_args args = new multiget_slice_args();
-        args.setKeys(keys);
+        prot.writeMessageBegin(new TMessage("get_count", TMessageType.CALL, 0));
+        get_count_args args = new get_count_args();
+        args.setKey(key);
         args.setColumn_parent(column_parent);
         args.setPredicate(predicate);
         args.setConsistency_level(consistency_level);
@@ -1746,39 +1684,39 @@ public class Cassandra {
         prot.writeMessageEnd();
       }
 
-      public Map<byte[],List<ColumnOrSuperColumn>> getResult() throws InvalidRequestException, UnavailableException, TimedOutException, TException {
+      public int getResult() throws InvalidRequestException, UnavailableException, TimedOutException, TException {
         if (getState() != State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
         TMemoryInputTransport memoryTransport = new TMemoryInputTransport(getFrameBuffer().array());
         TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        return (new Client(prot)).recv_multiget_slice();
+        return (new Client(prot)).recv_get_count();
       }
     }
 
-    public void get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<get_count_call> resultHandler) throws TException {
+    public void multiget_slice(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<multiget_slice_call> resultHandler) throws TException {
       checkReady();
-      get_count_call method_call = new get_count_call(key, column_parent, predicate, consistency_level, resultHandler, this, protocolFactory, transport);
+      multiget_slice_call method_call = new multiget_slice_call(keys, column_parent, predicate, consistency_level, resultHandler, this, protocolFactory, transport);
       manager.call(method_call);
     }
 
-    public static class get_count_call extends TAsyncMethodCall {
-      private byte[] key;
+    public static class multiget_slice_call extends TAsyncMethodCall {
+      private List<byte[]> keys;
       private ColumnParent column_parent;
       private SlicePredicate predicate;
       private ConsistencyLevel consistency_level;
-      public get_count_call(byte[] key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<get_count_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
+      public multiget_slice_call(List<byte[]> keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<multiget_slice_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
         super(client, protocolFactory, transport, resultHandler, false);
-        this.key = key;
+        this.keys = keys;
         this.column_parent = column_parent;
         this.predicate = predicate;
         this.consistency_level = consistency_level;
       }
 
       public void write_args(TProtocol prot) throws TException {
-        prot.writeMessageBegin(new TMessage("get_count", TMessageType.CALL, 0));
-        get_count_args args = new get_count_args();
-        args.setKey(key);
+        prot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.CALL, 0));
+        multiget_slice_args args = new multiget_slice_args();
+        args.setKeys(keys);
         args.setColumn_parent(column_parent);
         args.setPredicate(predicate);
         args.setConsistency_level(consistency_level);
@@ -1786,13 +1724,13 @@ public class Cassandra {
         prot.writeMessageEnd();
       }
 
-      public int getResult() throws InvalidRequestException, UnavailableException, TimedOutException, TException {
+      public Map<byte[],List<ColumnOrSuperColumn>> getResult() throws InvalidRequestException, UnavailableException, TimedOutException, TException {
         if (getState() != State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
         TMemoryInputTransport memoryTransport = new TMemoryInputTransport(getFrameBuffer().array());
         TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        return (new Client(prot)).recv_get_count();
+        return (new Client(prot)).recv_multiget_slice();
       }
     }
 
@@ -1879,30 +1817,30 @@ public class Cassandra {
       }
     }
 
-    public void scan(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<scan_call> resultHandler) throws TException {
+    public void get_indexed_slices(ColumnParent column_parent, IndexClause index_clause, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<get_indexed_slices_call> resultHandler) throws TException {
       checkReady();
-      scan_call method_call = new scan_call(column_parent, row_predicate, column_predicate, consistency_level, resultHandler, this, protocolFactory, transport);
+      get_indexed_slices_call method_call = new get_indexed_slices_call(column_parent, index_clause, column_predicate, consistency_level, resultHandler, this, protocolFactory, transport);
       manager.call(method_call);
     }
 
-    public static class scan_call extends TAsyncMethodCall {
+    public static class get_indexed_slices_call extends TAsyncMethodCall {
       private ColumnParent column_parent;
-      private RowPredicate row_predicate;
+      private IndexClause index_clause;
       private SlicePredicate column_predicate;
       private ConsistencyLevel consistency_level;
-      public scan_call(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<scan_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
+      public get_indexed_slices_call(ColumnParent column_parent, IndexClause index_clause, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<get_indexed_slices_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.column_parent = column_parent;
-        this.row_predicate = row_predicate;
+        this.index_clause = index_clause;
         this.column_predicate = column_predicate;
         this.consistency_level = consistency_level;
       }
 
       public void write_args(TProtocol prot) throws TException {
-        prot.writeMessageBegin(new TMessage("scan", TMessageType.CALL, 0));
-        scan_args args = new scan_args();
+        prot.writeMessageBegin(new TMessage("get_indexed_slices", TMessageType.CALL, 0));
+        get_indexed_slices_args args = new get_indexed_slices_args();
         args.setColumn_parent(column_parent);
-        args.setRow_predicate(row_predicate);
+        args.setIndex_clause(index_clause);
         args.setColumn_predicate(column_predicate);
         args.setConsistency_level(consistency_level);
         args.write(prot);
@@ -1915,47 +1853,7 @@ public class Cassandra {
         }
         TMemoryInputTransport memoryTransport = new TMemoryInputTransport(getFrameBuffer().array());
         TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        return (new Client(prot)).recv_scan();
-      }
-    }
-
-    public void scan_count(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<scan_count_call> resultHandler) throws TException {
-      checkReady();
-      scan_count_call method_call = new scan_count_call(column_parent, row_predicate, column_predicate, consistency_level, resultHandler, this, protocolFactory, transport);
-      manager.call(method_call);
-    }
-
-    public static class scan_count_call extends TAsyncMethodCall {
-      private ColumnParent column_parent;
-      private RowPredicate row_predicate;
-      private SlicePredicate column_predicate;
-      private ConsistencyLevel consistency_level;
-      public scan_count_call(ColumnParent column_parent, RowPredicate row_predicate, SlicePredicate column_predicate, ConsistencyLevel consistency_level, AsyncMethodCallback<scan_count_call> resultHandler, TAsyncClient client, TProtocolFactory protocolFactory, TNonblockingTransport transport) throws TException {
-        super(client, protocolFactory, transport, resultHandler, false);
-        this.column_parent = column_parent;
-        this.row_predicate = row_predicate;
-        this.column_predicate = column_predicate;
-        this.consistency_level = consistency_level;
-      }
-
-      public void write_args(TProtocol prot) throws TException {
-        prot.writeMessageBegin(new TMessage("scan_count", TMessageType.CALL, 0));
-        scan_count_args args = new scan_count_args();
-        args.setColumn_parent(column_parent);
-        args.setRow_predicate(row_predicate);
-        args.setColumn_predicate(column_predicate);
-        args.setConsistency_level(consistency_level);
-        args.write(prot);
-        prot.writeMessageEnd();
-      }
-
-      public List<KeyCount> getResult() throws InvalidRequestException, UnavailableException, TimedOutException, TException {
-        if (getState() != State.RESPONSE_READ) {
-          throw new IllegalStateException("Method call not finished!");
-        }
-        TMemoryInputTransport memoryTransport = new TMemoryInputTransport(getFrameBuffer().array());
-        TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        return (new Client(prot)).recv_scan_count();
+        return (new Client(prot)).recv_get_indexed_slices();
       }
     }
 
@@ -2552,12 +2450,11 @@ public class Cassandra {
       processMap_.put("set_keyspace", new set_keyspace());
       processMap_.put("get", new get());
       processMap_.put("get_slice", new get_slice());
-      processMap_.put("multiget_slice", new multiget_slice());
       processMap_.put("get_count", new get_count());
+      processMap_.put("multiget_slice", new multiget_slice());
       processMap_.put("multiget_count", new multiget_count());
       processMap_.put("get_range_slices", new get_range_slices());
-      processMap_.put("scan", new scan());
-      processMap_.put("scan_count", new scan_count());
+      processMap_.put("get_indexed_slices", new get_indexed_slices());
       processMap_.put("insert", new insert());
       processMap_.put("remove", new remove());
       processMap_.put("batch_mutate", new batch_mutate());
@@ -2767,25 +2664,26 @@ public class Cassandra {
 
     }
 
-    private class multiget_slice implements ProcessFunction {
+    private class get_count implements ProcessFunction {
       public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
       {
-        multiget_slice_args args = new multiget_slice_args();
+        get_count_args args = new get_count_args();
         try {
           args.read(iprot);
         } catch (TProtocolException e) {
           iprot.readMessageEnd();
           TApplicationException x = new TApplicationException(TApplicationException.PROTOCOL_ERROR, e.getMessage());
-          oprot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.EXCEPTION, seqid));
+          oprot.writeMessageBegin(new TMessage("get_count", TMessageType.EXCEPTION, seqid));
           x.write(oprot);
           oprot.writeMessageEnd();
           oprot.getTransport().flush();
           return;
         }
         iprot.readMessageEnd();
-        multiget_slice_result result = new multiget_slice_result();
+        get_count_result result = new get_count_result();
         try {
-          result.success = iface_.multiget_slice(args.keys, args.column_parent, args.predicate, args.consistency_level);
+          result.success = iface_.get_count(args.key, args.column_parent, args.predicate, args.consistency_level);
+          result.setSuccessIsSet(true);
         } catch (InvalidRequestException ire) {
           result.ire = ire;
         } catch (UnavailableException ue) {
@@ -2793,15 +2691,15 @@ public class Cassandra {
         } catch (TimedOutException te) {
           result.te = te;
         } catch (Throwable th) {
-          LOGGER.error("Internal error processing multiget_slice", th);
-          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing multiget_slice");
-          oprot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.EXCEPTION, seqid));
+          LOGGER.error("Internal error processing get_count", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing get_count");
+          oprot.writeMessageBegin(new TMessage("get_count", TMessageType.EXCEPTION, seqid));
           x.write(oprot);
           oprot.writeMessageEnd();
           oprot.getTransport().flush();
           return;
         }
-        oprot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.REPLY, seqid));
+        oprot.writeMessageBegin(new TMessage("get_count", TMessageType.REPLY, seqid));
         result.write(oprot);
         oprot.writeMessageEnd();
         oprot.getTransport().flush();
@@ -2809,26 +2707,25 @@ public class Cassandra {
 
     }
 
-    private class get_count implements ProcessFunction {
+    private class multiget_slice implements ProcessFunction {
       public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
       {
-        get_count_args args = new get_count_args();
+        multiget_slice_args args = new multiget_slice_args();
         try {
           args.read(iprot);
         } catch (TProtocolException e) {
           iprot.readMessageEnd();
           TApplicationException x = new TApplicationException(TApplicationException.PROTOCOL_ERROR, e.getMessage());
-          oprot.writeMessageBegin(new TMessage("get_count", TMessageType.EXCEPTION, seqid));
+          oprot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.EXCEPTION, seqid));
           x.write(oprot);
           oprot.writeMessageEnd();
           oprot.getTransport().flush();
           return;
         }
         iprot.readMessageEnd();
-        get_count_result result = new get_count_result();
+        multiget_slice_result result = new multiget_slice_result();
         try {
-          result.success = iface_.get_count(args.key, args.column_parent, args.predicate, args.consistency_level);
-          result.setSuccessIsSet(true);
+          result.success = iface_.multiget_slice(args.keys, args.column_parent, args.predicate, args.consistency_level);
         } catch (InvalidRequestException ire) {
           result.ire = ire;
         } catch (UnavailableException ue) {
@@ -2836,15 +2733,15 @@ public class Cassandra {
         } catch (TimedOutException te) {
           result.te = te;
         } catch (Throwable th) {
-          LOGGER.error("Internal error processing get_count", th);
-          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing get_count");
-          oprot.writeMessageBegin(new TMessage("get_count", TMessageType.EXCEPTION, seqid));
+          LOGGER.error("Internal error processing multiget_slice", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing multiget_slice");
+          oprot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.EXCEPTION, seqid));
           x.write(oprot);
           oprot.writeMessageEnd();
           oprot.getTransport().flush();
           return;
         }
-        oprot.writeMessageBegin(new TMessage("get_count", TMessageType.REPLY, seqid));
+        oprot.writeMessageBegin(new TMessage("multiget_slice", TMessageType.REPLY, seqid));
         result.write(oprot);
         oprot.writeMessageEnd();
         oprot.getTransport().flush();
@@ -2936,67 +2833,25 @@ public class Cassandra {
 
     }
 
-    private class scan implements ProcessFunction {
-      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
-      {
-        scan_args args = new scan_args();
-        try {
-          args.read(iprot);
-        } catch (TProtocolException e) {
-          iprot.readMessageEnd();
-          TApplicationException x = new TApplicationException(TApplicationException.PROTOCOL_ERROR, e.getMessage());
-          oprot.writeMessageBegin(new TMessage("scan", TMessageType.EXCEPTION, seqid));
-          x.write(oprot);
-          oprot.writeMessageEnd();
-          oprot.getTransport().flush();
-          return;
-        }
-        iprot.readMessageEnd();
-        scan_result result = new scan_result();
-        try {
-          result.success = iface_.scan(args.column_parent, args.row_predicate, args.column_predicate, args.consistency_level);
-        } catch (InvalidRequestException ire) {
-          result.ire = ire;
-        } catch (UnavailableException ue) {
-          result.ue = ue;
-        } catch (TimedOutException te) {
-          result.te = te;
-        } catch (Throwable th) {
-          LOGGER.error("Internal error processing scan", th);
-          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scan");
-          oprot.writeMessageBegin(new TMessage("scan", TMessageType.EXCEPTION, seqid));
-          x.write(oprot);
-          oprot.writeMessageEnd();
-          oprot.getTransport().flush();
-          return;
-        }
-        oprot.writeMessageBegin(new TMessage("scan", TMessageType.REPLY, seqid));
-        result.write(oprot);
-        oprot.writeMessageEnd();
-        oprot.getTransport().flush();
-      }
-
-    }
-
-    private class scan_count implements ProcessFunction {
+    private class get_indexed_slices implements ProcessFunction {
       public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
       {
-        scan_count_args args = new scan_count_args();
+        get_indexed_slices_args args = new get_indexed_slices_args();
         try {
           args.read(iprot);
         } catch (TProtocolException e) {
           iprot.readMessageEnd();
           TApplicationException x = new TApplicationException(TApplicationException.PROTOCOL_ERROR, e.getMessage());
-          oprot.writeMessageBegin(new TMessage("scan_count", TMessageType.EXCEPTION, seqid));
+          oprot.writeMessageBegin(new TMessage("get_indexed_slices", TMessageType.EXCEPTION, seqid));
           x.write(oprot);
           oprot.writeMessageEnd();
           oprot.getTransport().flush();
           return;
         }
         iprot.readMessageEnd();
-        scan_count_result result = new scan_count_result();
+        get_indexed_slices_result result = new get_indexed_slices_result();
         try {
-          result.success = iface_.scan_count(args.column_parent, args.row_predicate, args.column_predicate, args.consistency_level);
+          result.success = iface_.get_indexed_slices(args.column_parent, args.index_clause, args.column_predicate, args.consistency_level);
         } catch (InvalidRequestException ire) {
           result.ire = ire;
         } catch (UnavailableException ue) {
@@ -3004,15 +2859,15 @@ public class Cassandra {
         } catch (TimedOutException te) {
           result.te = te;
         } catch (Throwable th) {
-          LOGGER.error("Internal error processing scan_count", th);
-          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scan_count");
-          oprot.writeMessageBegin(new TMessage("scan_count", TMessageType.EXCEPTION, seqid));
+          LOGGER.error("Internal error processing get_indexed_slices", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing get_indexed_slices");
+          oprot.writeMessageBegin(new TMessage("get_indexed_slices", TMessageType.EXCEPTION, seqid));
           x.write(oprot);
           oprot.writeMessageEnd();
           oprot.getTransport().flush();
           return;
         }
-        oprot.writeMessageBegin(new TMessage("scan_count", TMessageType.REPLY, seqid));
+        oprot.writeMessageBegin(new TMessage("get_indexed_slices", TMessageType.REPLY, seqid));
         result.write(oprot);
         oprot.writeMessageEnd();
         oprot.getTransport().flush();
@@ -7154,14 +7009,14 @@ public class Cassandra {
           case 0: // SUCCESS
             if (field.type == TType.LIST) {
               {
-                TList _list42 = iprot.readListBegin();
-                this.success = new ArrayList<ColumnOrSuperColumn>(_list42.size);
-                for (int _i43 = 0; _i43 < _list42.size; ++_i43)
+                TList _list38 = iprot.readListBegin();
+                this.success = new ArrayList<ColumnOrSuperColumn>(_list38.size);
+                for (int _i39 = 0; _i39 < _list38.size; ++_i39)
                 {
-                  ColumnOrSuperColumn _elem44;
-                  _elem44 = new ColumnOrSuperColumn();
-                  _elem44.read(iprot);
-                  this.success.add(_elem44);
+                  ColumnOrSuperColumn _elem40;
+                  _elem40 = new ColumnOrSuperColumn();
+                  _elem40.read(iprot);
+                  this.success.add(_elem40);
                 }
                 iprot.readListEnd();
               }
@@ -7211,9 +7066,9 @@ public class Cassandra {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (ColumnOrSuperColumn _iter45 : this.success)
+          for (ColumnOrSuperColumn _iter41 : this.success)
           {
-            _iter45.write(oprot);
+            _iter41.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -7281,15 +7136,15 @@ public class Cassandra {
 
   }
 
-  public static class multiget_slice_args implements TBase<multiget_slice_args, multiget_slice_args._Fields>, java.io.Serializable, Cloneable   {
-    private static final TStruct STRUCT_DESC = new TStruct("multiget_slice_args");
+  public static class get_count_args implements TBase<get_count_args, get_count_args._Fields>, java.io.Serializable, Cloneable   {
+    private static final TStruct STRUCT_DESC = new TStruct("get_count_args");
 
-    private static final TField KEYS_FIELD_DESC = new TField("keys", TType.LIST, (short)1);
+    private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)1);
     private static final TField COLUMN_PARENT_FIELD_DESC = new TField("column_parent", TType.STRUCT, (short)2);
     private static final TField PREDICATE_FIELD_DESC = new TField("predicate", TType.STRUCT, (short)3);
     private static final TField CONSISTENCY_LEVEL_FIELD_DESC = new TField("consistency_level", TType.I32, (short)4);
 
-    public List<byte[]> keys;
+    public byte[] key;
     public ColumnParent column_parent;
     public SlicePredicate predicate;
     /**
@@ -7300,7 +7155,7 @@ public class Cassandra {
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements TFieldIdEnum {
-      KEYS((short)1, "keys"),
+      KEY((short)1, "key"),
       COLUMN_PARENT((short)2, "column_parent"),
       PREDICATE((short)3, "predicate"),
       /**
@@ -7322,8 +7177,8 @@ public class Cassandra {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // KEYS
-            return KEYS;
+          case 1: // KEY
+            return KEY;
           case 2: // COLUMN_PARENT
             return COLUMN_PARENT;
           case 3: // PREDICATE
@@ -7374,9 +7229,8 @@ public class Cassandra {
     public static final Map<_Fields, FieldMetaData> metaDataMap;
     static {
       Map<_Fields, FieldMetaData> tmpMap = new EnumMap<_Fields, FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.KEYS, new FieldMetaData("keys", TFieldRequirementType.REQUIRED, 
-          new ListMetaData(TType.LIST, 
-              new FieldValueMetaData(TType.STRING))));
+      tmpMap.put(_Fields.KEY, new FieldMetaData("key", TFieldRequirementType.REQUIRED, 
+          new FieldValueMetaData(TType.STRING)));
       tmpMap.put(_Fields.COLUMN_PARENT, new FieldMetaData("column_parent", TFieldRequirementType.REQUIRED, 
           new StructMetaData(TType.STRUCT, ColumnParent.class)));
       tmpMap.put(_Fields.PREDICATE, new FieldMetaData("predicate", TFieldRequirementType.REQUIRED, 
@@ -7384,22 +7238,22 @@ public class Cassandra {
       tmpMap.put(_Fields.CONSISTENCY_LEVEL, new FieldMetaData("consistency_level", TFieldRequirementType.REQUIRED, 
           new EnumMetaData(TType.ENUM, ConsistencyLevel.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      FieldMetaData.addStructMetaDataMap(multiget_slice_args.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(get_count_args.class, metaDataMap);
     }
 
-    public multiget_slice_args() {
+    public get_count_args() {
       this.consistency_level = ConsistencyLevel.ONE;
 
     }
 
-    public multiget_slice_args(
-      List<byte[]> keys,
+    public get_count_args(
+      byte[] key,
       ColumnParent column_parent,
       SlicePredicate predicate,
       ConsistencyLevel consistency_level)
     {
       this();
-      this.keys = keys;
+      this.key = key;
       this.column_parent = column_parent;
       this.predicate = predicate;
       this.consistency_level = consistency_level;
@@ -7408,15 +7262,10 @@ public class Cassandra {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public multiget_slice_args(multiget_slice_args other) {
-      if (other.isSetKeys()) {
-        List<byte[]> __this__keys = new ArrayList<byte[]>();
-        for (byte[] other_element : other.keys) {
-          byte[] temp_binary_element = new byte[other_element.length];
-          System.arraycopy(other_element, 0, temp_binary_element, 0, other_element.length);
-          __this__keys.add(temp_binary_element);
-        }
-        this.keys = __this__keys;
+    public get_count_args(get_count_args other) {
+      if (other.isSetKey()) {
+        this.key = new byte[other.key.length];
+        System.arraycopy(other.key, 0, key, 0, other.key.length);
       }
       if (other.isSetColumn_parent()) {
         this.column_parent = new ColumnParent(other.column_parent);
@@ -7429,51 +7278,36 @@ public class Cassandra {
       }
     }
 
-    public multiget_slice_args deepCopy() {
-      return new multiget_slice_args(this);
+    public get_count_args deepCopy() {
+      return new get_count_args(this);
     }
 
     @Deprecated
-    public multiget_slice_args clone() {
-      return new multiget_slice_args(this);
-    }
-
-    public int getKeysSize() {
-      return (this.keys == null) ? 0 : this.keys.size();
-    }
-
-    public java.util.Iterator<byte[]> getKeysIterator() {
-      return (this.keys == null) ? null : this.keys.iterator();
-    }
-
-    public void addToKeys(byte[] elem) {
-      if (this.keys == null) {
-        this.keys = new ArrayList<byte[]>();
-      }
-      this.keys.add(elem);
+    public get_count_args clone() {
+      return new get_count_args(this);
     }
 
-    public List<byte[]> getKeys() {
-      return this.keys;
+    public byte[] getKey() {
+      return this.key;
     }
 
-    public multiget_slice_args setKeys(List<byte[]> keys) {
-      this.keys = keys;
+    public get_count_args setKey(byte[] key) {
+      this.key = key;
       return this;
     }
 
-    public void unsetKeys() {
-      this.keys = null;
+    public void unsetKey() {
+      this.key = null;
     }
 
-    /** Returns true if field keys is set (has been asigned a value) and false otherwise */
-    public boolean isSetKeys() {
-      return this.keys != null;
+    /** Returns true if field key is set (has been asigned a value) and false otherwise */
+    public boolean isSetKey() {
+      return this.key != null;
     }
 
-    public void setKeysIsSet(boolean value) {
+    public void setKeyIsSet(boolean value) {
       if (!value) {
-        this.keys = null;
+        this.key = null;
       }
     }
 
@@ -7481,7 +7315,7 @@ public class Cassandra {
       return this.column_parent;
     }
 
-    public multiget_slice_args setColumn_parent(ColumnParent column_parent) {
+    public get_count_args setColumn_parent(ColumnParent column_parent) {
       this.column_parent = column_parent;
       return this;
     }
@@ -7505,7 +7339,7 @@ public class Cassandra {
       return this.predicate;
     }
 
-    public multiget_slice_args setPredicate(SlicePredicate predicate) {
+    public get_count_args setPredicate(SlicePredicate predicate) {
       this.predicate = predicate;
       return this;
     }
@@ -7537,7 +7371,7 @@ public class Cassandra {
      * 
      * @see ConsistencyLevel
      */
-    public multiget_slice_args setConsistency_level(ConsistencyLevel consistency_level) {
+    public get_count_args setConsistency_level(ConsistencyLevel consistency_level) {
       this.consistency_level = consistency_level;
       return this;
     }
@@ -7559,11 +7393,11 @@ public class Cassandra {
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case KEYS:
+      case KEY:
         if (value == null) {
-          unsetKeys();
+          unsetKey();
         } else {
-          setKeys((List<byte[]>)value);
+          setKey((byte[])value);
         }
         break;
 
@@ -7600,8 +7434,8 @@ public class Cassandra {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case KEYS:
-        return getKeys();
+      case KEY:
+        return getKey();
 
       case COLUMN_PARENT:
         return getColumn_parent();
@@ -7623,8 +7457,8 @@ public class Cassandra {
     /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */
     public boolean isSet(_Fields field) {
       switch (field) {
-      case KEYS:
-        return isSetKeys();
+      case KEY:
+        return isSetKey();
       case COLUMN_PARENT:
         return isSetColumn_parent();
       case PREDICATE:
@@ -7643,21 +7477,21 @@ public class Cassandra {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof multiget_slice_args)
-        return this.equals((multiget_slice_args)that);
+      if (that instanceof get_count_args)
+        return this.equals((get_count_args)that);
       return false;
     }
 
-    public boolean equals(multiget_slice_args that) {
+    public boolean equals(get_count_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_keys = true && this.isSetKeys();
-      boolean that_present_keys = true && that.isSetKeys();
-      if (this_present_keys || that_present_keys) {
-        if (!(this_present_keys && that_present_keys))
+      boolean this_present_key = true && this.isSetKey();
+      boolean that_present_key = true && that.isSetKey();
+      if (this_present_key || that_present_key) {
+        if (!(this_present_key && that_present_key))
           return false;
-        if (!this.keys.equals(that.keys))
+        if (!java.util.Arrays.equals(this.key, that.key))
           return false;
       }
 
@@ -7696,19 +7530,19 @@ public class Cassandra {
       return 0;
     }
 
-    public int compareTo(multiget_slice_args other) {
+    public int compareTo(get_count_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
-      multiget_slice_args typedOther = (multiget_slice_args)other;
+      get_count_args typedOther = (get_count_args)other;
 
-      lastComparison = Boolean.valueOf(isSetKeys()).compareTo(typedOther.isSetKeys());
+      lastComparison = Boolean.valueOf(isSetKey()).compareTo(typedOther.isSetKey());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetKeys()) {        lastComparison = TBaseHelper.compareTo(this.keys, typedOther.keys);
+      if (isSetKey()) {        lastComparison = TBaseHelper.compareTo(this.key, typedOther.key);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -7753,19 +7587,9 @@ public class Cassandra {
           break;
         }
         switch (field.id) {
-          case 1: // KEYS
-            if (field.type == TType.LIST) {
-              {
-                TList _list46 = iprot.readListBegin();
-                this.keys = new ArrayList<byte[]>(_list46.size);
-                for (int _i47 = 0; _i47 < _list46.size; ++_i47)
-                {
-                  byte[] _elem48;
-                  _elem48 = iprot.readBinary();
-                  this.keys.add(_elem48);
-                }
-                iprot.readListEnd();
-              }
+          case 1: // KEY
+            if (field.type == TType.STRING) {
+              this.key = iprot.readBinary();
             } else { 
               TProtocolUtil.skip(iprot, field.type);
             }
@@ -7808,16 +7632,9 @@ public class Cassandra {
       validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
-      if (this.keys != null) {
-        oprot.writeFieldBegin(KEYS_FIELD_DESC);
-        {
-          oprot.writeListBegin(new TList(TType.STRING, this.keys.size()));
-          for (byte[] _iter49 : this.keys)
-          {
-            oprot.writeBinary(_iter49);
-          }
-          oprot.writeListEnd();
-        }
+      if (this.key != null) {
+        oprot.writeFieldBegin(KEY_FIELD_DESC);
+        oprot.writeBinary(this.key);
         oprot.writeFieldEnd();
       }
       if (this.column_parent != null) {
@@ -7841,14 +7658,19 @@ public class Cassandra {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("multiget_slice_args(");
+      StringBuilder sb = new StringBuilder("get_count_args(");
       boolean first = true;
 
-      sb.append("keys:");
-      if (this.keys == null) {
+      sb.append("key:");
+      if (this.key == null) {
         sb.append("null");
       } else {
-        sb.append(this.keys);
+          int __key_size = Math.min(this.key.length, 128);
+          for (int i = 0; i < __key_size; i++) {
+            if (i != 0) sb.append(" ");
+            sb.append(Integer.toHexString(this.key[i]).length() > 1 ? Integer.toHexString(this.key[i]).substring(Integer.toHexString(this.key[i]).length() - 2).toUpperCase() : "0" + Integer.toHexString(this.key[i]).toUpperCase());
+          }
+          if (this.key.length > 128) sb.append(" ...");
       }
       first = false;
       if (!first) sb.append(", ");
@@ -7881,8 +7703,8 @@ public class Cassandra {
 
     public void validate() throws TException {
       // check for required fields
-      if (keys == null) {
-        throw new TProtocolException("Required field 'keys' was not present! Struct: " + toString());
+      if (key == null) {
+        throw new TProtocolException("Required field 'key' was not present! Struct: " + toString());
       }
       if (column_parent == null) {
         throw new TProtocolException("Required field 'column_parent' was not present! Struct: " + toString());
@@ -7897,15 +7719,15 @@ public class Cassandra {
 
   }
 
-  public static class multiget_slice_result implements TBase<multiget_slice_result, multiget_slice_result._Fields>, java.io.Serializable, Cloneable   {
-    private static final TStruct STRUCT_DESC = new TStruct("multiget_slice_result");
+  public static class get_count_result implements TBase<get_count_result, get_count_result._Fields>, java.io.Serializable, Cloneable   {
+    private static final TStruct STRUCT_DESC = new TStruct("get_count_result");
 
-    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.MAP, (short)0);
+    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0);
     private static final TField IRE_FIELD_DESC = new TField("ire", TType.STRUCT, (short)1);
     private static final TField UE_FIELD_DESC = new TField("ue", TType.STRUCT, (short)2);
     private static final TField TE_FIELD_DESC = new TField("te", TType.STRUCT, (short)3);
 
-    public Map<byte[],List<ColumnOrSuperColumn>> success;
+    public int success;
     public InvalidRequestException ire;
     public UnavailableException ue;
     public TimedOutException te;
@@ -7978,15 +7800,14 @@ public class Cassandra {
     }
 
     // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private BitSet __isset_bit_vector = new BitSet(1);
 
     public static final Map<_Fields, FieldMetaData> metaDataMap;
     static {
       Map<_Fields, FieldMetaData> tmpMap = new EnumMap<_Fields, FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, 
-          new MapMetaData(TType.MAP, 
-              new FieldValueMetaData(TType.STRING), 
-              new ListMetaData(TType.LIST, 
-                  new StructMetaData(TType.STRUCT, ColumnOrSuperColumn.class)))));
+          new FieldValueMetaData(TType.I32)));
       tmpMap.put(_Fields.IRE, new FieldMetaData("ire", TFieldRequirementType.DEFAULT, 
           new FieldValueMetaData(TType.STRUCT)));
       tmpMap.put(_Fields.UE, new FieldMetaData("ue", TFieldRequirementType.DEFAULT, 
@@ -7994,20 +7815,21 @@ public class Cassandra {
       tmpMap.put(_Fields.TE, new FieldMetaData("te", TFieldRequirementType.DEFAULT, 
           new FieldValueMetaData(TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      FieldMetaData.addStructMetaDataMap(multiget_slice_result.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(get_count_result.class, metaDataMap);
     }
 
-    public multiget_slice_result() {
+    public get_count_result() {
     }
 
-    public multiget_slice_result(
-      Map<byte[],List<ColumnOrSuperColumn>> success,
+    public get_count_result(
+      int success,
       InvalidRequestException ire,
       UnavailableException ue,
       TimedOutException te)
     {
       this();
       this.success = success;
+      setSuccessIsSet(true);
       this.ire = ire;
       this.ue = ue;
       this.te = te;
@@ -8016,26 +7838,10 @@ public class Cassandra {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public multiget_slice_result(multiget_slice_result other) {
-      if (other.isSetSuccess()) {
-        Map<byte[],List<ColumnOrSuperColumn>> __this__success = new HashMap<byte[],List<ColumnOrSuperColumn>>();
-        for (Map.Entry<byte[], List<ColumnOrSuperColumn>> other_element : other.success.entrySet()) {
-
-          byte[] other_element_key = other_element.getKey();
-          List<ColumnOrSuperColumn> other_element_value = other_element.getValue();
-
-          byte[] __this__success_copy_key = new byte[other_element_key.length];
-          System.arraycopy(other_element_key, 0, __this__success_copy_key, 0, other_element_key.length);
-
-          List<ColumnOrSuperColumn> __this__success_copy_value = new ArrayList<ColumnOrSuperColumn>();
-          for (ColumnOrSuperColumn other_element_value_element : other_element_value) {
-            __this__success_copy_value.add(new ColumnOrSuperColumn(other_element_value_element));
-          }
-
-          __this__success.put(__this__success_copy_key, __this__success_copy_value);
-        }
-        this.success = __this__success;
-      }
+    public get_count_result(get_count_result other) {
+      __isset_bit_vector.clear();
+      __isset_bit_vector.or(other.__isset_bit_vector);
+      this.success = other.success;
       if (other.isSetIre()) {
         this.ire = new InvalidRequestException(other.ire);
       }
@@ -8047,55 +7853,43 @@ public class Cassandra {
       }
     }
 
-    public multiget_slice_result deepCopy() {
-      return new multiget_slice_result(this);
+    public get_count_result deepCopy() {
+      return new get_count_result(this);
     }
 
     @Deprecated
-    public multiget_slice_result clone() {
-      return new multiget_slice_result(this);
-    }
-
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public void putToSuccess(byte[] key, List<ColumnOrSuperColumn> val) {
-      if (this.success == null) {
-        this.success = new HashMap<byte[],List<ColumnOrSuperColumn>>();
-      }
-      this.success.put(key, val);
+    public get_count_result clone() {
+      return new get_count_result(this);
     }
 
-    public Map<byte[],List<ColumnOrSuperColumn>> getSuccess() {
+    public int getSuccess() {
       return this.success;
     }
 
-    public multiget_slice_result setSuccess(Map<byte[],List<ColumnOrSuperColumn>> success) {
+    public get_count_result setSuccess(int success) {
       this.success = success;
+      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      this.success = null;
+      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
     }
 
     /** Returns true if field success is set (has been asigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return this.success != null;
+      return __isset_bit_vector.get(__SUCCESS_ISSET_ID);
     }
 
     public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
+      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
     }
 
     public InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public multiget_slice_result setIre(InvalidRequestException ire) {
+    public get_count_result setIre(InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -8119,7 +7913,7 @@ public class Cassandra {
       return this.ue;
     }
 
-    public multiget_slice_result setUe(UnavailableException ue) {
+    public get_count_result setUe(UnavailableException ue) {
       this.ue = ue;
       return this;
     }
@@ -8143,7 +7937,7 @@ public class Cassandra {
       return this.te;
     }
 
-    public multiget_slice_result setTe(TimedOutException te) {
+    public get_count_result setTe(TimedOutException te) {
       this.te = te;
       return this;
     }
@@ -8169,7 +7963,7 @@ public class Cassandra {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((Map<byte[],List<ColumnOrSuperColumn>>)value);
+          setSuccess((Integer)value);
         }
         break;
 
@@ -8207,7 +8001,7 @@ public class Cassandra {
     public Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return getSuccess();
+        return new Integer(getSuccess());
 
       case IRE:
         return getIre();
@@ -8249,21 +8043,21 @@ public class Cassandra {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof multiget_slice_result)
-        return this.equals((multiget_slice_result)that);
+      if (that instanceof get_count_result)
+        return this.equals((get_count_result)that);
       return false;
     }
 
-    public boolean equals(multiget_slice_result that) {
+    public boolean equals(get_count_result that) {
       if (that == null)
         return false;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
+      boolean this_present_success = true;
+      boolean that_present_success = true;
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (!this.success.equals(that.success))
+        if (this.success != that.success)
           return false;
       }
 
@@ -8302,13 +8096,13 @@ public class Cassandra {
       return 0;
     }
 
-    public int compareTo(multiget_slice_result other) {
+    public int compareTo(get_count_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
-      multiget_slice_result typedOther = (multiget_slice_result)other;
+      get_count_result typedOther = (get_count_result)other;
 
       lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
       if (lastComparison != 0) {
@@ -8360,31 +8154,9 @@ public class Cassandra {
         }
         switch (field.id) {
           case 0: // SUCCESS
-            if (field.type == TType.MAP) {
-              {
-                TMap _map50 = iprot.readMapBegin();
-                this.success = new HashMap<byte[],List<ColumnOrSuperColumn>>(2*_map50.size);
-                for (int _i51 = 0; _i51 < _map50.size; ++_i51)
-                {
-                  byte[] _key52;
-                  List<ColumnOrSuperColumn> _val53;
-                  _key52 = iprot.readBinary();
-                  {
-                    TList _list54 = iprot.readListBegin();
-                    _val53 = new ArrayList<ColumnOrSuperColumn>(_list54.size);
-                    for (int _i55 = 0; _i55 < _list54.size; ++_i55)
-                    {
-                      ColumnOrSuperColumn _elem56;
-                      _elem56 = new ColumnOrSuperColumn();
-                      _elem56.read(iprot);
-                      _val53.add(_elem56);
-                    }
-                    iprot.readListEnd();
-                  }
-                  this.success.put(_key52, _val53);
-                }
-                iprot.readMapEnd();
-              }
+            if (field.type == TType.I32) {
+              this.success = iprot.readI32();
+              setSuccessIsSet(true);
             } else { 
               TProtocolUtil.skip(iprot, field.type);
             }
@@ -8429,22 +8201,7 @@ public class Cassandra {
 
       if (this.isSetSuccess()) {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-        {
-          oprot.writeMapBegin(new TMap(TType.STRING, TType.LIST, this.success.size()));
-          for (Map.Entry<byte[], List<ColumnOrSuperColumn>> _iter57 : this.success.entrySet())
-          {
-            oprot.writeBinary(_iter57.getKey());
-            {
-              oprot.writeListBegin(new TList(TType.STRUCT, _iter57.getValue().size()));
-              for (ColumnOrSuperColumn _iter58 : _iter57.getValue())
-              {
-                _iter58.write(oprot);
-              }
-              oprot.writeListEnd();
-            }
-          }
-          oprot.writeMapEnd();
-        }
+        oprot.writeI32(this.success);
         oprot.writeFieldEnd();
       } else if (this.isSetIre()) {
         oprot.writeFieldBegin(IRE_FIELD_DESC);
@@ -8465,15 +8222,11 @@ public class Cassandra {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("multiget_slice_result(");
+      StringBuilder sb = new StringBuilder("get_count_result(");
       boolean first = true;
 
       sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
+      sb.append(this.success);
       first = false;
       if (!first) sb.append(", ");
       sb.append("ire:");
@@ -8509,15 +8262,15 @@ public class Cassandra {
 
   }
 
-  public static class get_count_args implements TBase<get_count_args, get_count_args._Fields>, java.io.Serializable, Cloneable   {
-    private static final TStruct STRUCT_DESC = new TStruct("get_count_args");
+  public static class multiget_slice_args implements TBase<multiget_slice_args, multiget_slice_args._Fields>, java.io.Serializable, Cloneable   {
+    private static final TStruct STRUCT_DESC = new TStruct("multiget_slice_args");
 
-    private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)1);
+    private static final TField KEYS_FIELD_DESC = new TField("keys", TType.LIST, (short)1);
     private static final TField COLUMN_PARENT_FIELD_DESC = new TField("column_parent", TType.STRUCT, (short)2);
     private static final TField PREDICATE_FIELD_DESC = new TField("predicate", TType.STRUCT, (short)3);
     private static final TField CONSISTENCY_LEVEL_FIELD_DESC = new TField("consistency_level", TType.I32, (short)4);
 
-    public byte[] key;
+    public List<byte[]> keys;
     public ColumnParent column_parent;
     public SlicePredicate predicate;
     /**
@@ -8528,7 +8281,7 @@ public class Cassandra {
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements TFieldIdEnum {
-      KEY((short)1, "key"),
+      KEYS((short)1, "keys"),
       COLUMN_PARENT((short)2, "column_parent"),
       PREDICATE((short)3, "predicate"),
       /**
@@ -8550,8 +8303,8 @@ public class Cassandra {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // KEY
-            return KEY;
+          case 1: // KEYS
+            return KEYS;
           case 2: // COLUMN_PARENT
             return COLUMN_PARENT;
           case 3: // PREDICATE
@@ -8602,8 +8355,9 @@ public class Cassandra {
     public static final Map<_Fields, FieldMetaData> metaDataMap;
     static {
       Map<_Fields, FieldMetaData> tmpMap = new EnumMap<_Fields, FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.KEY, new FieldMetaData("key", TFieldRequirementType.REQUIRED, 
-          new FieldValueMetaData(TType.STRING)));
+      tmpMap.put(_Fields.KEYS, new FieldMetaData("keys", TFieldRequirementType.REQUIRED, 
+          new ListMetaData(TType.LIST, 
+              new FieldValueMetaData(TType.STRING))));
       tmpMap.put(_Fields.COLUMN_PARENT, new FieldMetaData("column_parent", TFieldRequirementType.REQUIRED, 
           new StructMetaData(TType.STRUCT, ColumnParent.class)));
       tmpMap.put(_Fields.PREDICATE, new FieldMetaData("predicate", TFieldRequirementType.REQUIRED, 
@@ -8611,22 +8365,22 @@ public class Cassandra {
       tmpMap.put(_Fields.CONSISTENCY_LEVEL, new FieldMetaData("consistency_level", TFieldRequirementType.REQUIRED, 
           new EnumMetaData(TType.ENUM, ConsistencyLevel.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      FieldMetaData.addStructMetaDataMap(get_count_args.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(multiget_slice_args.class, metaDataMap);
     }
 
-    public get_count_args() {
+    public multiget_slice_args() {
       this.consistency_level = ConsistencyLevel.ONE;
 
     }
 
-    public get_count_args(
-      byte[] key,
+    public multiget_slice_args(
+      List<byte[]> keys,
       ColumnParent column_parent,
       SlicePredicate predicate,
       ConsistencyLevel consistency_level)
     {
       this();
-      this.key = key;
+      this.keys = keys;
       this.column_parent = column_parent;
       this.predicate = predicate;
       this.consistency_level = consistency_level;
@@ -8635,10 +8389,15 @@ public class Cassandra {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_count_args(get_count_args other) {
-      if (other.isSetKey()) {
-        this.key = new byte[other.key.length];
-        System.arraycopy(other.key, 0, key, 0, other.key.length);
+    public multiget_slice_args(multiget_slice_args other) {
+      if (other.isSetKeys()) {
+        List<byte[]> __this__keys = new ArrayList<byte[]>();
+        for (byte[] other_element : other.keys) {
+          byte[] temp_binary_element = new byte[other_element.length];
+          System.arraycopy(other_element, 0, temp_binary_element, 0, other_element.length);
+          __this__keys.add(temp_binary_element);
+        }
+        this.keys = __this__keys;
       }
       if (other.isSetColumn_parent()) {
         this.column_parent = new ColumnParent(other.column_parent);
@@ -8651,36 +8410,51 @@ public class Cassandra {
       }
     }
 
-    public get_count_args deepCopy() {
-      return new get_count_args(this);
+    public multiget_slice_args deepCopy() {
+      return new multiget_slice_args(this);
     }
 
     @Deprecated
-    public get_count_args clone() {
-      return new get_count_args(this);
+    public multiget_slice_args clone() {
+      return new multiget_slice_args(this);
     }
 
-    public byte[] getKey() {
-      return this.key;
+    public int getKeysSize() {
+      return (this.keys == null) ? 0 : this.keys.size();
     }
 
-    public get_count_args setKey(byte[] key) {
-      this.key = key;
+    public java.util.Iterator<byte[]> getKeysIterator() {
+      return (this.keys == null) ? null : this.keys.iterator();
+    }
+
+    public void addToKeys(byte[] elem) {
+      if (this.keys == null) {
+        this.keys = new ArrayList<byte[]>();
+      }
+      this.keys.add(elem);
+    }
+
+    public List<byte[]> getKeys() {
+      return this.keys;
+    }
+
+    public multiget_slice_args setKeys(List<byte[]> keys) {
+      this.keys = keys;
       return this;
     }
 
-    public void unsetKey() {
-      this.key = null;
+    public void unsetKeys() {
+      this.keys = null;
     }
 
-    /** Returns true if field key is set (has been asigned a value) and false otherwise */
-    public boolean isSetKey() {
-      return this.key != null;
+    /** Returns true if field keys is set (has been asigned a value) and false otherwise */
+    public boolean isSetKeys() {
+      return this.keys != null;
     }
 
-    public void setKeyIsSet(boolean value) {
+    public void setKeysIsSet(boolean value) {
       if (!value) {
-        this.key = null;
+        this.keys = null;
       }
     }
 
@@ -8688,7 +8462,7 @@ public class Cassandra {
       return this.column_parent;
     }
 
-    public get_count_args setColumn_parent(ColumnParent column_parent) {
+    public multiget_slice_args setColumn_parent(ColumnParent column_parent) {
       this.column_parent = column_parent;
       return this;
     }
@@ -8712,7 +8486,7 @@ public class Cassandra {
       return this.predicate;
     }
 
-    public get_count_args setPredicate(SlicePredicate predicate) {
+    public multiget_slice_args setPredicate(SlicePredicate predicate) {
       this.predicate = predicate;
       return this;
     }
@@ -8744,7 +8518,7 @@ public class Cassandra {
      * 
      * @see ConsistencyLevel
      */
-    public get_count_args setConsistency_level(ConsistencyLevel consistency_level) {
+    public multiget_slice_args setConsistency_level(ConsistencyLevel consistency_level) {
       this.consistency_level = consistency_level;
       return this;
     }
@@ -8766,11 +8540,11 @@ public class Cassandra {
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case KEY:
+      case KEYS:
         if (value == null) {
-          unsetKey();
+          unsetKeys();
         } else {
-          setKey((byte[])value);
+          setKeys((List<byte[]>)value);
         }
         break;
 
@@ -8807,8 +8581,8 @@ public class Cassandra {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case KEY:
-        return getKey();
+      case KEYS:
+        return getKeys();
 
       case COLUMN_PARENT:
         return getColumn_parent();
@@ -8830,8 +8604,8 @@ public class Cassandra {
     /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */
     public boolean isSet(_Fields field) {
       switch (field) {
-      case KEY:
-        return isSetKey();
+      case KEYS:
+        return isSetKeys();
       case COLUMN_PARENT:
         return isSetColumn_parent();
       case PREDICATE:
@@ -8850,21 +8624,21 @@ public class Cassandra {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof get_count_args)
-        return this.equals((get_count_args)that);
+      if (that instanceof multiget_slice_args)
+        return this.equals((multiget_slice_args)that);
       return false;
     }
 
-    public boolean equals(get_count_args that) {
+    public boolean equals(multiget_slice_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_key = true && this.isSetKey();
-      boolean that_present_key = true && that.isSetKey();
-      if (this_present_key || that_present_key) {
-        if (!(this_present_key && that_present_key))
+      boolean this_present_keys = true && this.isSetKeys();
+      boolean that_present_keys = true && that.isSetKeys();
+      if (this_present_keys || that_present_keys) {
+        if (!(this_present_keys && that_present_keys))
           return false;
-        if (!java.util.Arrays.equals(this.key, that.key))
+        if (!this.keys.equals(that.keys))
           return false;
       }
 
@@ -8903,19 +8677,19 @@ public class Cassandra {
       return 0;
     }
 
-    public int compareTo(get_count_args other) {
+    public int compareTo(multiget_slice_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
-      get_count_args typedOther = (get_count_args)other;
+      multiget_slice_args typedOther = (multiget_slice_args)other;
 
-      lastComparison = Boolean.valueOf(isSetKey()).compareTo(typedOther.isSetKey());
+      lastComparison = Boolean.valueOf(isSetKeys()).compareTo(typedOther.isSetKeys());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetKey()) {        lastComparison = TBaseHelper.compareTo(this.key, typedOther.key);
+      if (isSetKeys()) {        lastComparison = TBaseHelper.compareTo(this.keys, typedOther.keys);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -8960,9 +8734,19 @@ public class Cassandra {
           break;
         }
         switch (field.id) {
-          case 1: // KEY
-            if (field.type == TType.STRING) {
-              this.key = iprot.readBinary();
+          case 1: // KEYS
+            if (field.type == TType.LIST) {
+              {
+                TList _list42 = iprot.readListBegin();
+                this.keys = new ArrayList<byte[]>(_list42.size);
+                for (int _i43 = 0; _i43 < _list42.size; ++_i43)
+                {
+                  byte[] _elem44;
+                  _elem44 = iprot.readBinary();
+                  this.keys.add(_elem44);
+                }
+                iprot.readListEnd();
+              }
             } else { 
               TProtocolUtil.skip(iprot, field.type);
             }
@@ -9005,9 +8789,16 @@ public class Cassandra {
       validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
-      if (this.key != null) {
-        oprot.writeFieldBegin(KEY_FIELD_DESC);
-        oprot.writeBinary(this.key);
+      if (this.keys != null) {
+        oprot.writeFieldBegin(KEYS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new TList(TType.STRING, this.keys.size()));
+          for (byte[] _iter45 : this.keys)
+          {
+            oprot.writeBinary(_iter45);
+          }
+          oprot.writeListEnd();
+        }
         oprot.writeFieldEnd();
       }
       if (this.column_parent != null) {
@@ -9031,19 +8822,14 @@ public class Cassandra {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("get_count_args(");
+      StringBuilder sb = new StringBuilder("multiget_slice_args(");
       boolean first = true;
 
-      sb.append("key:");
-      if (this.key == null) {
+      sb.append("keys:");
+      if (this.keys == null) {
         sb.append("null");
       } else {
-          int __key_size = Math.min(this.key.length, 128);
-          for (int i = 0; i < __key_size; i++) {
-            if (i != 0) sb.append(" ");
-            sb.append(Integer.toHexString(this.key[i]).length() > 1 ? Integer.toHexString(this.key[i]).substring(Integer.toHexString(this.key[i]).length() - 2).toUpperCase() : "0" + Integer.toHexString(this.key[i]).toUpperCase());
-          }
-          if (this.key.length > 128) sb.append(" ...");
+        sb.append(this.keys);
       }
       first = false;
       if (!first) sb.append(", ");
@@ -9076,8 +8862,8 @@ public class Cassandra {
 
     public void validate() throws TException {
       // check for required fields
-      if (key == null) {
-        throw new TProtocolException("Required field 'key' was not present! Struct: " + toString());
+      if (keys == null) {
+        throw new TProtocolException("Required field 'keys' was not present! Struct: " + toString());
       }
       if (column_parent == null) {
         throw new TProtocolException("Required field 'column_parent' was not present! Struct: " + toString());
@@ -9092,15 +8878,15 @@ public class Cassandra {
 
   }
 
-  public static class get_count_result implements TBase<get_count_result, get_count_result._Fields>, java.io.Serializable, Cloneable   {
-    private static final TStruct STRUCT_DESC = new TStruct("get_count_result");
+  public static class multiget_slice_result implements TBase<multiget_slice_result, multiget_slice_result._Fields>, java.io.Serializable, Cloneable   {
+    private static final TStruct STRUCT_DESC = new TStruct("multiget_slice_result");
 
-    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0);
+    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.MAP, (short)0);
     private static final TField IRE_FIELD_DESC = new TField("ire", TType.STRUCT, (short)1);
     private static final TField UE_FIELD_DESC = new TField("ue", TType.STRUCT, (short)2);
     private static final TField TE_FIELD_DESC = new TField("te", TType.STRUCT, (short)3);
 
-    public int success;
+    public Map<byte[],List<ColumnOrSuperColumn>> success;
     public InvalidRequestException ire;
     public UnavailableException ue;
     public TimedOutException te;
@@ -9173,14 +8959,15 @@ public class Cassandra {
     }
 
     // isset id assignments
-    private static final int __SUCCESS_ISSET_ID = 0;
-    private BitSet __isset_bit_vector = new BitSet(1);
 
     public static final Map<_Fields, FieldMetaData> metaDataMap;
     static {
       Map<_Fields, FieldMetaData> tmpMap = new EnumMap<_Fields, FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, 
-          new FieldValueMetaData(TType.I32)));
+          new MapMetaData(TType.MAP, 
+              new FieldValueMetaData(TType.STRING), 
+              new ListMetaData(TType.LIST, 
+                  new StructMetaData(TType.STRUCT, ColumnOrSuperColumn.class)))));
       tmpMap.put(_Fields.IRE, new FieldMetaData("ire", TFieldRequirementType.DEFAULT, 
           new FieldValueMetaData(TType.STRUCT)));
       tmpMap.put(_Fields.UE, new FieldMetaData("ue", TFieldRequirementType.DEFAULT, 
@@ -9188,21 +8975,20 @@ public class Cassandra {
       tmpMap.put(_Fields.TE, new FieldMetaData("te", TFieldRequirementType.DEFAULT, 
           new FieldValueMetaData(TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      FieldMetaData.addStructMetaDataMap(get_count_result.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(multiget_slice_result.class, metaDataMap);
     }
 
-    public get_count_result() {
+    public multiget_slice_result() {
     }
 
-    public get_count_result(
-      int success,
+    public multiget_slice_result(
+      Map<byte[],List<ColumnOrSuperColumn>> success,
       InvalidRequestException ire,
       UnavailableException ue,
       TimedOutException te)
     {
       this();
       this.success = success;
-      setSuccessIsSet(true);
       this.ire = ire;
       this.ue = ue;
       this.te = te;
@@ -9211,58 +8997,86 @@ public class Cassandra {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_count_result(get_count_result other) {
-      __isset_bit_vector.clear();
-      __isset_bit_vector.or(other.__isset_bit_vector);
-      this.success = other.success;
-      if (other.isSetIre()) {
-        this.ire = new InvalidRequestException(other.ire);
-      }
-      if (other.isSetUe()) {
-        this.ue = new UnavailableException(other.ue);
+    public multiget_slice_result(multiget_slice_result other) {
+      if (other.isSetSuccess()) {
+        Map<byte[],List<ColumnOrSuperColumn>> __this__success = new HashMap<byte[],List<ColumnOrSuperColumn>>();
+        for (Map.Entry<byte[], List<ColumnOrSuperColumn>> other_element : other.success.entrySet()) {
+
+          byte[] other_element_key = other_element.getKey();
+          List<ColumnOrSuperColumn> other_element_value = other_element.getValue();
+
+          byte[] __this__success_copy_key = new byte[other_element_key.length];
+          System.arraycopy(other_element_key, 0, __this__success_copy_key, 0, other_element_key.length);
+
+          List<ColumnOrSuperColumn> __this__success_copy_value = new ArrayList<ColumnOrSuperColumn>();
+          for (ColumnOrSuperColumn other_element_value_element : other_element_value) {
+            __this__success_copy_value.add(new ColumnOrSuperColumn(other_element_value_element));
+          }
+
+          __this__success.put(__this__success_copy_key, __this__success_copy_value);
+        }
+        this.success = __this__success;
+      }
+      if (other.isSetIre()) {
+        this.ire = new InvalidRequestException(other.ire);
+      }
+      if (other.isSetUe()) {
+        this.ue = new UnavailableException(other.ue);
       }
       if (other.isSetTe()) {
         this.te = new TimedOutException(other.te);
       }
     }
 
-    public get_count_result deepCopy() {
-      return new get_count_result(this);
+    public multiget_slice_result deepCopy() {
+      return new multiget_slice_result(this);
     }
 
     @Deprecated
-    public get_count_result clone() {
-      return new get_count_result(this);
+    public multiget_slice_result clone() {
+      return new multiget_slice_result(this);
     }
 
-    public int getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public void putToSuccess(byte[] key, List<ColumnOrSuperColumn> val) {
+      if (this.success == null) {
+        this.success = new HashMap<byte[],List<ColumnOrSuperColumn>>();
+      }
+      this.success.put(key, val);
+    }
+
+    public Map<byte[],List<ColumnOrSuperColumn>> getSuccess() {
       return this.success;
     }
 
-    public get_count_result setSuccess(int success) {
+    public multiget_slice_result setSuccess(Map<byte[],List<ColumnOrSuperColumn>> success) {
       this.success = success;
-      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      __isset_bit_vector.clear(__SUCCESS_ISSET_ID);
+      this.success = null;
     }
 
     /** Returns true if field success is set (has been asigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return __isset_bit_vector.get(__SUCCESS_ISSET_ID);
+      return this.success != null;
     }
 
     public void setSuccessIsSet(boolean value) {
-      __isset_bit_vector.set(__SUCCESS_ISSET_ID, value);
+      if (!value) {
+        this.success = null;
+      }
     }
 
     public InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public get_count_result setIre(InvalidRequestException ire) {
+    public multiget_slice_result setIre(InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -9286,7 +9100,7 @@ public class Cassandra {
       return this.ue;
     }
 
-    public get_count_result setUe(UnavailableException ue) {

[... 3020 lines stripped ...]