You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/10/11 19:43:32 UTC

svn commit: r1181946 [2/3] - in /hbase/branches/0.89/src/main: java/org/apache/hadoop/hbase/thrift/ java/org/apache/hadoop/hbase/thrift/generated/ resources/org/apache/hadoop/hbase/thrift/

Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java?rev=1181946&r1=1181945&r2=1181946&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java Tue Oct 11 17:43:31 2011
@@ -1,19 +1,7 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
+ * Autogenerated by Thrift
  *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  */
 package org.apache.hadoop.hbase.thrift.generated;
 
@@ -68,12 +56,14 @@ public class Hbase {
 
     /**
      * List all the userspace tables.
+     *
      * @return returns a list of names
      */
     public List<byte[]> getTableNames() throws IOError, TException;
 
     /**
      * List all the column families assoicated with a table.
+     *
      * @return list of column family descriptors
      *
      * @param tableName table name
@@ -82,6 +72,7 @@ public class Hbase {
 
     /**
      * List the regions associated with a table.
+     *
      * @return list of region descriptors
      *
      * @param tableName table name
@@ -95,6 +86,7 @@ public class Hbase {
      * values if not explicitly specified.
      *
      * @throws IllegalArgument if an input parameter is invalid
+     *
      * @throws AlreadyExists if the table name already exists
      *
      * @param tableName name of table to create
@@ -351,6 +343,16 @@ public class Hbase {
     public int scannerOpen(byte[] tableName, byte[] startRow, List<byte[]> columns) throws IOError, TException;
 
     /**
+     * Get a scanner on the current table, using the Scan instance
+     * for the scan parameters.
+     *
+     * @param tableName name of table
+     *
+     * @param scan Scan instance
+     */
+    public int scannerOpenWithScan(byte[] tableName, TScan scan) throws IOError, TException;
+
+    /**
      * Get a scanner on the current table starting and stopping at the
      * specified rows.  ending at the last row in the table.  Return the
      * specified columns.
@@ -430,13 +432,99 @@ public class Hbase {
     public int scannerOpenWithStopTs(byte[] tableName, byte[] startRow, byte[] stopRow, List<byte[]> columns, long timestamp) throws IOError, TException;
 
     /**
+     * Get a scanner on the current table starting at the first row and
+     * ending at the last row in the table.  Return the specified columns.
+     *
+     * Return the specified columns that pass the filter constructed
+     * by the filterString
+     *
+     * @return scanner id to be used with other scanner procedures
+     *
+     * @param tableName name of table
+     *
+     * @param filterString Filter string
+     */
+    public int scannerOpenWithFilterString(byte[] tableName, byte[] filterString) throws IOError, TException;
+
+    /**
+     * Get a scanner on the current table starting at the first row and
+     * ending at the last row in the table.
+     *
+     * Return the specified columns that pass the filter constructed
+     * by the filterString
+     *
+     * The timestamp of the keyvalue must also be within the specified timestamp
+     * No other columns will be returned.
+     *
+     * @return scanner id to be used with other scanner procedures
+     *
+     * @param tableName name of table
+     *
+     * @param filterString Filter string
+     *
+     * @param timestamp timestamp
+     */
+    public int scannerOpenWithFilterStringTs(byte[] tableName, byte[] filterString, long timestamp) throws IOError, TException;
+
+    /**
+     * Get a scanner on the current table starting and stopping at the
+     * specified rows.
+     *
+     * Return the specified columns that pass the filter constructed
+     * by the filterString
+     *
+     * @return scanner id to be used with other scanner procedures
+     *
+     * @param tableName name of table
+     *
+     * @param startRow Starting row in table to scan.
+     * Send "" (empty string) to start at the first row.
+     *
+     * @param stopRow row to stop scanning on. This row is *not* included in the
+     * scanner's results.
+     * Send "" (empty string) to end at the last row.
+     *
+     * @param filterString Filter string
+     */
+    public int scannerOpenWithStopAndFilterString(byte[] tableName, byte[] startRow, byte[] stopRow, byte[] filterString) throws IOError, TException;
+
+    /**
+     * Get a scanner on the current table starting and stopping at the
+     * specified rows.
+     *
+     * Return the specified columns that pass the filter constructed
+     * by the filterString
+     *
+     * The timestamp of the keyvalue must also be within the specified timestamp
+     * No other columns will be returned.
+     *
+     * @return scanner id to be used with other scanner procedures
+     *
+     * @param tableName name of table
+     *
+     * @param startRow Starting row in table to scan.
+     * Send "" (empty string) to start at the first row.
+     *
+     * @param stopRow row to stop scanning on. This row is *not* included in the
+     * scanner's results.
+     * Send "" (empty string) to end at the last row.
+     *
+     * @param filterString Filter string
+     *
+     * @param timestamp timestamp
+     */
+    public int scannerOpenWithStopAndFilterStringTs(byte[] tableName, byte[] startRow, byte[] stopRow, byte[] filterString, long timestamp) throws IOError, TException;
+
+    /**
      * Returns the scanner's current row value and advances to the next
      * row in the table.  When there are no more rows in the table, or a key
      * greater-than-or-equal-to the scanner's specified stopRow is reached,
      * an empty list is returned.
      *
      * @return a TRowResult containing the current row and a map of the columns to TCells.
+     *
      * @throws IllegalArgument if ScannerID is invalid
+     *
      * @throws NotFound when the scanner reaches the end
      *
      * @param id id of a scanner returned by scannerOpen
@@ -450,7 +538,9 @@ public class Hbase {
      * specified stopRow is reached,  an empty list is returned.
      *
      * @return a TRowResult containing the current row and a map of the columns to TCells.
+     *
      * @throws IllegalArgument if ScannerID is invalid
+     *
      * @throws NotFound when the scanner reaches the end
      *
      * @param id id of a scanner returned by scannerOpen
@@ -1486,6 +1576,43 @@ public class Hbase {
       throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpen failed: unknown result");
     }
 
+    public int scannerOpenWithScan(byte[] tableName, TScan scan) throws IOError, TException
+    {
+      send_scannerOpenWithScan(tableName, scan);
+      return recv_scannerOpenWithScan();
+    }
+
+    public void send_scannerOpenWithScan(byte[] tableName, TScan scan) throws TException
+    {
+      oprot_.writeMessageBegin(new TMessage("scannerOpenWithScan", TMessageType.CALL, seqid_));
+      scannerOpenWithScan_args args = new scannerOpenWithScan_args();
+      args.tableName = tableName;
+      args.scan = scan;
+      args.write(oprot_);
+      oprot_.writeMessageEnd();
+      oprot_.getTransport().flush();
+    }
+
+    public int recv_scannerOpenWithScan() throws IOError, TException
+    {
+      TMessage msg = iprot_.readMessageBegin();
+      if (msg.type == TMessageType.EXCEPTION) {
+        TApplicationException x = TApplicationException.read(iprot_);
+        iprot_.readMessageEnd();
+        throw x;
+      }
+      scannerOpenWithScan_result result = new scannerOpenWithScan_result();
+      result.read(iprot_);
+      iprot_.readMessageEnd();
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.io != null) {
+        throw result.io;
+      }
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpenWithScan failed: unknown result");
+    }
+
     public int scannerOpenWithStop(byte[] tableName, byte[] startRow, byte[] stopRow, List<byte[]> columns) throws IOError, TException
     {
       send_scannerOpenWithStop(tableName, startRow, stopRow, columns);
@@ -1642,6 +1769,160 @@ public class Hbase {
       throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpenWithStopTs failed: unknown result");
     }
 
+    public int scannerOpenWithFilterString(byte[] tableName, byte[] filterString) throws IOError, TException
+    {
+      send_scannerOpenWithFilterString(tableName, filterString);
+      return recv_scannerOpenWithFilterString();
+    }
+
+    public void send_scannerOpenWithFilterString(byte[] tableName, byte[] filterString) throws TException
+    {
+      oprot_.writeMessageBegin(new TMessage("scannerOpenWithFilterString", TMessageType.CALL, seqid_));
+      scannerOpenWithFilterString_args args = new scannerOpenWithFilterString_args();
+      args.tableName = tableName;
+      args.filterString = filterString;
+      args.write(oprot_);
+      oprot_.writeMessageEnd();
+      oprot_.getTransport().flush();
+    }
+
+    public int recv_scannerOpenWithFilterString() throws IOError, TException
+    {
+      TMessage msg = iprot_.readMessageBegin();
+      if (msg.type == TMessageType.EXCEPTION) {
+        TApplicationException x = TApplicationException.read(iprot_);
+        iprot_.readMessageEnd();
+        throw x;
+      }
+      scannerOpenWithFilterString_result result = new scannerOpenWithFilterString_result();
+      result.read(iprot_);
+      iprot_.readMessageEnd();
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.io != null) {
+        throw result.io;
+      }
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpenWithFilterString failed: unknown result");
+    }
+
+    public int scannerOpenWithFilterStringTs(byte[] tableName, byte[] filterString, long timestamp) throws IOError, TException
+    {
+      send_scannerOpenWithFilterStringTs(tableName, filterString, timestamp);
+      return recv_scannerOpenWithFilterStringTs();
+    }
+
+    public void send_scannerOpenWithFilterStringTs(byte[] tableName, byte[] filterString, long timestamp) throws TException
+    {
+      oprot_.writeMessageBegin(new TMessage("scannerOpenWithFilterStringTs", TMessageType.CALL, seqid_));
+      scannerOpenWithFilterStringTs_args args = new scannerOpenWithFilterStringTs_args();
+      args.tableName = tableName;
+      args.filterString = filterString;
+      args.timestamp = timestamp;
+      args.write(oprot_);
+      oprot_.writeMessageEnd();
+      oprot_.getTransport().flush();
+    }
+
+    public int recv_scannerOpenWithFilterStringTs() throws IOError, TException
+    {
+      TMessage msg = iprot_.readMessageBegin();
+      if (msg.type == TMessageType.EXCEPTION) {
+        TApplicationException x = TApplicationException.read(iprot_);
+        iprot_.readMessageEnd();
+        throw x;
+      }
+      scannerOpenWithFilterStringTs_result result = new scannerOpenWithFilterStringTs_result();
+      result.read(iprot_);
+      iprot_.readMessageEnd();
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.io != null) {
+        throw result.io;
+      }
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpenWithFilterStringTs failed: unknown result");
+    }
+
+    public int scannerOpenWithStopAndFilterString(byte[] tableName, byte[] startRow, byte[] stopRow, byte[] filterString) throws IOError, TException
+    {
+      send_scannerOpenWithStopAndFilterString(tableName, startRow, stopRow, filterString);
+      return recv_scannerOpenWithStopAndFilterString();
+    }
+
+    public void send_scannerOpenWithStopAndFilterString(byte[] tableName, byte[] startRow, byte[] stopRow, byte[] filterString) throws TException
+    {
+      oprot_.writeMessageBegin(new TMessage("scannerOpenWithStopAndFilterString", TMessageType.CALL, seqid_));
+      scannerOpenWithStopAndFilterString_args args = new scannerOpenWithStopAndFilterString_args();
+      args.tableName = tableName;
+      args.startRow = startRow;
+      args.stopRow = stopRow;
+      args.filterString = filterString;
+      args.write(oprot_);
+      oprot_.writeMessageEnd();
+      oprot_.getTransport().flush();
+    }
+
+    public int recv_scannerOpenWithStopAndFilterString() throws IOError, TException
+    {
+      TMessage msg = iprot_.readMessageBegin();
+      if (msg.type == TMessageType.EXCEPTION) {
+        TApplicationException x = TApplicationException.read(iprot_);
+        iprot_.readMessageEnd();
+        throw x;
+      }
+      scannerOpenWithStopAndFilterString_result result = new scannerOpenWithStopAndFilterString_result();
+      result.read(iprot_);
+      iprot_.readMessageEnd();
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.io != null) {
+        throw result.io;
+      }
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpenWithStopAndFilterString failed: unknown result");
+    }
+
+    public int scannerOpenWithStopAndFilterStringTs(byte[] tableName, byte[] startRow, byte[] stopRow, byte[] filterString, long timestamp) throws IOError, TException
+    {
+      send_scannerOpenWithStopAndFilterStringTs(tableName, startRow, stopRow, filterString, timestamp);
+      return recv_scannerOpenWithStopAndFilterStringTs();
+    }
+
+    public void send_scannerOpenWithStopAndFilterStringTs(byte[] tableName, byte[] startRow, byte[] stopRow, byte[] filterString, long timestamp) throws TException
+    {
+      oprot_.writeMessageBegin(new TMessage("scannerOpenWithStopAndFilterStringTs", TMessageType.CALL, seqid_));
+      scannerOpenWithStopAndFilterStringTs_args args = new scannerOpenWithStopAndFilterStringTs_args();
+      args.tableName = tableName;
+      args.startRow = startRow;
+      args.stopRow = stopRow;
+      args.filterString = filterString;
+      args.timestamp = timestamp;
+      args.write(oprot_);
+      oprot_.writeMessageEnd();
+      oprot_.getTransport().flush();
+    }
+
+    public int recv_scannerOpenWithStopAndFilterStringTs() throws IOError, TException
+    {
+      TMessage msg = iprot_.readMessageBegin();
+      if (msg.type == TMessageType.EXCEPTION) {
+        TApplicationException x = TApplicationException.read(iprot_);
+        iprot_.readMessageEnd();
+        throw x;
+      }
+      scannerOpenWithStopAndFilterStringTs_result result = new scannerOpenWithStopAndFilterStringTs_result();
+      result.read(iprot_);
+      iprot_.readMessageEnd();
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.io != null) {
+        throw result.io;
+      }
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "scannerOpenWithStopAndFilterStringTs failed: unknown result");
+    }
+
     public List<TRowResult> scannerGet(int id) throws IOError, IllegalArgument, TException
     {
       send_scannerGet(id);
@@ -1790,10 +2071,15 @@ public class Hbase {
       processMap_.put("deleteAllRow", new deleteAllRow());
       processMap_.put("deleteAllRowTs", new deleteAllRowTs());
       processMap_.put("scannerOpen", new scannerOpen());
+      processMap_.put("scannerOpenWithScan", new scannerOpenWithScan());
       processMap_.put("scannerOpenWithStop", new scannerOpenWithStop());
       processMap_.put("scannerOpenWithPrefix", new scannerOpenWithPrefix());
       processMap_.put("scannerOpenTs", new scannerOpenTs());
       processMap_.put("scannerOpenWithStopTs", new scannerOpenWithStopTs());
+      processMap_.put("scannerOpenWithFilterString", new scannerOpenWithFilterString());
+      processMap_.put("scannerOpenWithFilterStringTs", new scannerOpenWithFilterStringTs());
+      processMap_.put("scannerOpenWithStopAndFilterString", new scannerOpenWithStopAndFilterString());
+      processMap_.put("scannerOpenWithStopAndFilterStringTs", new scannerOpenWithStopAndFilterStringTs());
       processMap_.put("scannerGet", new scannerGet());
       processMap_.put("scannerGetList", new scannerGetList());
       processMap_.put("scannerClose", new scannerClose());
@@ -2597,6 +2883,35 @@ public class Hbase {
 
     }
 
+    private class scannerOpenWithScan implements ProcessFunction {
+      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
+      {
+        scannerOpenWithScan_args args = new scannerOpenWithScan_args();
+        args.read(iprot);
+        iprot.readMessageEnd();
+        scannerOpenWithScan_result result = new scannerOpenWithScan_result();
+        try {
+          result.success = iface_.scannerOpenWithScan(args.tableName, args.scan);
+          result.setSuccessIsSet(true);
+        } catch (IOError io) {
+          result.io = io;
+        } catch (Throwable th) {
+          LOGGER.error("Internal error processing scannerOpenWithScan", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithScan");
+          oprot.writeMessageBegin(new TMessage("scannerOpenWithScan", TMessageType.EXCEPTION, seqid));
+          x.write(oprot);
+          oprot.writeMessageEnd();
+          oprot.getTransport().flush();
+          return;
+        }
+        oprot.writeMessageBegin(new TMessage("scannerOpenWithScan", TMessageType.REPLY, seqid));
+        result.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
+
+    }
+
     private class scannerOpenWithStop implements ProcessFunction {
       public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
       {
@@ -2713,6 +3028,122 @@ public class Hbase {
 
     }
 
+    private class scannerOpenWithFilterString implements ProcessFunction {
+      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
+      {
+        scannerOpenWithFilterString_args args = new scannerOpenWithFilterString_args();
+        args.read(iprot);
+        iprot.readMessageEnd();
+        scannerOpenWithFilterString_result result = new scannerOpenWithFilterString_result();
+        try {
+          result.success = iface_.scannerOpenWithFilterString(args.tableName, args.filterString);
+          result.setSuccessIsSet(true);
+        } catch (IOError io) {
+          result.io = io;
+        } catch (Throwable th) {
+          LOGGER.error("Internal error processing scannerOpenWithFilterString", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithFilterString");
+          oprot.writeMessageBegin(new TMessage("scannerOpenWithFilterString", TMessageType.EXCEPTION, seqid));
+          x.write(oprot);
+          oprot.writeMessageEnd();
+          oprot.getTransport().flush();
+          return;
+        }
+        oprot.writeMessageBegin(new TMessage("scannerOpenWithFilterString", TMessageType.REPLY, seqid));
+        result.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
+
+    }
+
+    private class scannerOpenWithFilterStringTs implements ProcessFunction {
+      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
+      {
+        scannerOpenWithFilterStringTs_args args = new scannerOpenWithFilterStringTs_args();
+        args.read(iprot);
+        iprot.readMessageEnd();
+        scannerOpenWithFilterStringTs_result result = new scannerOpenWithFilterStringTs_result();
+        try {
+          result.success = iface_.scannerOpenWithFilterStringTs(args.tableName, args.filterString, args.timestamp);
+          result.setSuccessIsSet(true);
+        } catch (IOError io) {
+          result.io = io;
+        } catch (Throwable th) {
+          LOGGER.error("Internal error processing scannerOpenWithFilterStringTs", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithFilterStringTs");
+          oprot.writeMessageBegin(new TMessage("scannerOpenWithFilterStringTs", TMessageType.EXCEPTION, seqid));
+          x.write(oprot);
+          oprot.writeMessageEnd();
+          oprot.getTransport().flush();
+          return;
+        }
+        oprot.writeMessageBegin(new TMessage("scannerOpenWithFilterStringTs", TMessageType.REPLY, seqid));
+        result.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
+
+    }
+
+    private class scannerOpenWithStopAndFilterString implements ProcessFunction {
+      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
+      {
+        scannerOpenWithStopAndFilterString_args args = new scannerOpenWithStopAndFilterString_args();
+        args.read(iprot);
+        iprot.readMessageEnd();
+        scannerOpenWithStopAndFilterString_result result = new scannerOpenWithStopAndFilterString_result();
+        try {
+          result.success = iface_.scannerOpenWithStopAndFilterString(args.tableName, args.startRow, args.stopRow, args.filterString);
+          result.setSuccessIsSet(true);
+        } catch (IOError io) {
+          result.io = io;
+        } catch (Throwable th) {
+          LOGGER.error("Internal error processing scannerOpenWithStopAndFilterString", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithStopAndFilterString");
+          oprot.writeMessageBegin(new TMessage("scannerOpenWithStopAndFilterString", TMessageType.EXCEPTION, seqid));
+          x.write(oprot);
+          oprot.writeMessageEnd();
+          oprot.getTransport().flush();
+          return;
+        }
+        oprot.writeMessageBegin(new TMessage("scannerOpenWithStopAndFilterString", TMessageType.REPLY, seqid));
+        result.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
+
+    }
+
+    private class scannerOpenWithStopAndFilterStringTs implements ProcessFunction {
+      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
+      {
+        scannerOpenWithStopAndFilterStringTs_args args = new scannerOpenWithStopAndFilterStringTs_args();
+        args.read(iprot);
+        iprot.readMessageEnd();
+        scannerOpenWithStopAndFilterStringTs_result result = new scannerOpenWithStopAndFilterStringTs_result();
+        try {
+          result.success = iface_.scannerOpenWithStopAndFilterStringTs(args.tableName, args.startRow, args.stopRow, args.filterString, args.timestamp);
+          result.setSuccessIsSet(true);
+        } catch (IOError io) {
+          result.io = io;
+        } catch (Throwable th) {
+          LOGGER.error("Internal error processing scannerOpenWithStopAndFilterStringTs", th);
+          TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithStopAndFilterStringTs");
+          oprot.writeMessageBegin(new TMessage("scannerOpenWithStopAndFilterStringTs", TMessageType.EXCEPTION, seqid));
+          x.write(oprot);
+          oprot.writeMessageEnd();
+          oprot.getTransport().flush();
+          return;
+        }
+        oprot.writeMessageBegin(new TMessage("scannerOpenWithStopAndFilterStringTs", TMessageType.REPLY, seqid));
+        result.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
+
+    }
+
     private class scannerGet implements ProcessFunction {
       public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
       {
@@ -6353,13 +6784,13 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list9 = iprot.readListBegin();
-                  this.success = new ArrayList<byte[]>(_list9.size);
-                  for (int _i10 = 0; _i10 < _list9.size; ++_i10)
+                  TList _list13 = iprot.readListBegin();
+                  this.success = new ArrayList<byte[]>(_list13.size);
+                  for (int _i14 = 0; _i14 < _list13.size; ++_i14)
                   {
-                    byte[] _elem11;
-                    _elem11 = iprot.readBinary();
-                    this.success.add(_elem11);
+                    byte[] _elem15;
+                    _elem15 = iprot.readBinary();
+                    this.success.add(_elem15);
                   }
                   iprot.readListEnd();
                 }
@@ -6392,9 +6823,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRING, this.success.size()));
-          for (byte[] _iter12 : this.success)
+          for (byte[] _iter16 : this.success)
           {
-            oprot.writeBinary(_iter12);
+            oprot.writeBinary(_iter16);
           }
           oprot.writeListEnd();
         }
@@ -7048,16 +7479,16 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.MAP) {
                 {
-                  TMap _map13 = iprot.readMapBegin();
-                  this.success = new HashMap<byte[],ColumnDescriptor>(2*_map13.size);
-                  for (int _i14 = 0; _i14 < _map13.size; ++_i14)
+                  TMap _map17 = iprot.readMapBegin();
+                  this.success = new HashMap<byte[],ColumnDescriptor>(2*_map17.size);
+                  for (int _i18 = 0; _i18 < _map17.size; ++_i18)
                   {
-                    byte[] _key15;
-                    ColumnDescriptor _val16;
-                    _key15 = iprot.readBinary();
-                    _val16 = new ColumnDescriptor();
-                    _val16.read(iprot);
-                    this.success.put(_key15, _val16);
+                    byte[] _key19;
+                    ColumnDescriptor _val20;
+                    _key19 = iprot.readBinary();
+                    _val20 = new ColumnDescriptor();
+                    _val20.read(iprot);
+                    this.success.put(_key19, _val20);
                   }
                   iprot.readMapEnd();
                 }
@@ -7090,10 +7521,10 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeMapBegin(new TMap(TType.STRING, TType.STRUCT, this.success.size()));
-          for (Map.Entry<byte[], ColumnDescriptor> _iter17 : this.success.entrySet())
+          for (Map.Entry<byte[], ColumnDescriptor> _iter21 : this.success.entrySet())
           {
-            oprot.writeBinary(_iter17.getKey());
-            _iter17.getValue().write(oprot);
+            oprot.writeBinary(_iter21.getKey());
+            _iter21.getValue().write(oprot);
           }
           oprot.writeMapEnd();
         }
@@ -7769,14 +8200,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list18 = iprot.readListBegin();
-                  this.success = new ArrayList<TRegionInfo>(_list18.size);
-                  for (int _i19 = 0; _i19 < _list18.size; ++_i19)
+                  TList _list22 = iprot.readListBegin();
+                  this.success = new ArrayList<TRegionInfo>(_list22.size);
+                  for (int _i23 = 0; _i23 < _list22.size; ++_i23)
                   {
-                    TRegionInfo _elem20;
-                    _elem20 = new TRegionInfo();
-                    _elem20.read(iprot);
-                    this.success.add(_elem20);
+                    TRegionInfo _elem24;
+                    _elem24 = new TRegionInfo();
+                    _elem24.read(iprot);
+                    this.success.add(_elem24);
                   }
                   iprot.readListEnd();
                 }
@@ -7809,9 +8240,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TRegionInfo _iter21 : this.success)
+          for (TRegionInfo _iter25 : this.success)
           {
-            _iter21.write(oprot);
+            _iter25.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -8216,14 +8647,14 @@ public class Hbase {
             case COLUMN_FAMILIES:
               if (field.type == TType.LIST) {
                 {
-                  TList _list22 = iprot.readListBegin();
-                  this.columnFamilies = new ArrayList<ColumnDescriptor>(_list22.size);
-                  for (int _i23 = 0; _i23 < _list22.size; ++_i23)
+                  TList _list26 = iprot.readListBegin();
+                  this.columnFamilies = new ArrayList<ColumnDescriptor>(_list26.size);
+                  for (int _i27 = 0; _i27 < _list26.size; ++_i27)
                   {
-                    ColumnDescriptor _elem24;
-                    _elem24 = new ColumnDescriptor();
-                    _elem24.read(iprot);
-                    this.columnFamilies.add(_elem24);
+                    ColumnDescriptor _elem28;
+                    _elem28 = new ColumnDescriptor();
+                    _elem28.read(iprot);
+                    this.columnFamilies.add(_elem28);
                   }
                   iprot.readListEnd();
                 }
@@ -8254,9 +8685,9 @@ public class Hbase {
         oprot.writeFieldBegin(COLUMN_FAMILIES_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.columnFamilies.size()));
-          for (ColumnDescriptor _iter25 : this.columnFamilies)
+          for (ColumnDescriptor _iter29 : this.columnFamilies)
           {
-            _iter25.write(oprot);
+            _iter29.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -10190,14 +10621,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list26 = iprot.readListBegin();
-                  this.success = new ArrayList<TCell>(_list26.size);
-                  for (int _i27 = 0; _i27 < _list26.size; ++_i27)
+                  TList _list30 = iprot.readListBegin();
+                  this.success = new ArrayList<TCell>(_list30.size);
+                  for (int _i31 = 0; _i31 < _list30.size; ++_i31)
                   {
-                    TCell _elem28;
-                    _elem28 = new TCell();
-                    _elem28.read(iprot);
-                    this.success.add(_elem28);
+                    TCell _elem32;
+                    _elem32 = new TCell();
+                    _elem32.read(iprot);
+                    this.success.add(_elem32);
                   }
                   iprot.readListEnd();
                 }
@@ -10230,9 +10661,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TCell _iter29 : this.success)
+          for (TCell _iter33 : this.success)
           {
-            _iter29.write(oprot);
+            _iter33.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -11208,14 +11639,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list30 = iprot.readListBegin();
-                  this.success = new ArrayList<TCell>(_list30.size);
-                  for (int _i31 = 0; _i31 < _list30.size; ++_i31)
+                  TList _list34 = iprot.readListBegin();
+                  this.success = new ArrayList<TCell>(_list34.size);
+                  for (int _i35 = 0; _i35 < _list34.size; ++_i35)
                   {
-                    TCell _elem32;
-                    _elem32 = new TCell();
-                    _elem32.read(iprot);
-                    this.success.add(_elem32);
+                    TCell _elem36;
+                    _elem36 = new TCell();
+                    _elem36.read(iprot);
+                    this.success.add(_elem36);
                   }
                   iprot.readListEnd();
                 }
@@ -11248,9 +11679,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TCell _iter33 : this.success)
+          for (TCell _iter37 : this.success)
           {
-            _iter33.write(oprot);
+            _iter37.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -12321,14 +12752,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list34 = iprot.readListBegin();
-                  this.success = new ArrayList<TCell>(_list34.size);
-                  for (int _i35 = 0; _i35 < _list34.size; ++_i35)
+                  TList _list38 = iprot.readListBegin();
+                  this.success = new ArrayList<TCell>(_list38.size);
+                  for (int _i39 = 0; _i39 < _list38.size; ++_i39)
                   {
-                    TCell _elem36;
-                    _elem36 = new TCell();
-                    _elem36.read(iprot);
-                    this.success.add(_elem36);
+                    TCell _elem40;
+                    _elem40 = new TCell();
+                    _elem40.read(iprot);
+                    this.success.add(_elem40);
                   }
                   iprot.readListEnd();
                 }
@@ -12361,9 +12792,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TCell _iter37 : this.success)
+          for (TCell _iter41 : this.success)
           {
-            _iter37.write(oprot);
+            _iter41.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -13113,14 +13544,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list38 = iprot.readListBegin();
-                  this.success = new ArrayList<TRowResult>(_list38.size);
-                  for (int _i39 = 0; _i39 < _list38.size; ++_i39)
+                  TList _list42 = iprot.readListBegin();
+                  this.success = new ArrayList<TRowResult>(_list42.size);
+                  for (int _i43 = 0; _i43 < _list42.size; ++_i43)
                   {
-                    TRowResult _elem40;
-                    _elem40 = new TRowResult();
-                    _elem40.read(iprot);
-                    this.success.add(_elem40);
+                    TRowResult _elem44;
+                    _elem44 = new TRowResult();
+                    _elem44.read(iprot);
+                    this.success.add(_elem44);
                   }
                   iprot.readListEnd();
                 }
@@ -13153,9 +13584,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TRowResult _iter41 : this.success)
+          for (TRowResult _iter45 : this.success)
           {
-            _iter41.write(oprot);
+            _iter45.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -13648,13 +14079,13 @@ public class Hbase {
             case COLUMNS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list42 = iprot.readListBegin();
-                  this.columns = new ArrayList<byte[]>(_list42.size);
-                  for (int _i43 = 0; _i43 < _list42.size; ++_i43)
+                  TList _list46 = iprot.readListBegin();
+                  this.columns = new ArrayList<byte[]>(_list46.size);
+                  for (int _i47 = 0; _i47 < _list46.size; ++_i47)
                   {
-                    byte[] _elem44;
-                    _elem44 = iprot.readBinary();
-                    this.columns.add(_elem44);
+                    byte[] _elem48;
+                    _elem48 = iprot.readBinary();
+                    this.columns.add(_elem48);
                   }
                   iprot.readListEnd();
                 }
@@ -13690,9 +14121,9 @@ public class Hbase {
         oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRING, this.columns.size()));
-          for (byte[] _iter45 : this.columns)
+          for (byte[] _iter49 : this.columns)
           {
-            oprot.writeBinary(_iter45);
+            oprot.writeBinary(_iter49);
           }
           oprot.writeListEnd();
         }
@@ -14043,14 +14474,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list46 = iprot.readListBegin();
-                  this.success = new ArrayList<TRowResult>(_list46.size);
-                  for (int _i47 = 0; _i47 < _list46.size; ++_i47)
+                  TList _list50 = iprot.readListBegin();
+                  this.success = new ArrayList<TRowResult>(_list50.size);
+                  for (int _i51 = 0; _i51 < _list50.size; ++_i51)
                   {
-                    TRowResult _elem48;
-                    _elem48 = new TRowResult();
-                    _elem48.read(iprot);
-                    this.success.add(_elem48);
+                    TRowResult _elem52;
+                    _elem52 = new TRowResult();
+                    _elem52.read(iprot);
+                    this.success.add(_elem52);
                   }
                   iprot.readListEnd();
                 }
@@ -14083,9 +14514,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TRowResult _iter49 : this.success)
+          for (TRowResult _iter53 : this.success)
           {
-            _iter49.write(oprot);
+            _iter53.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -14933,14 +15364,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list50 = iprot.readListBegin();
-                  this.success = new ArrayList<TRowResult>(_list50.size);
-                  for (int _i51 = 0; _i51 < _list50.size; ++_i51)
+                  TList _list54 = iprot.readListBegin();
+                  this.success = new ArrayList<TRowResult>(_list54.size);
+                  for (int _i55 = 0; _i55 < _list54.size; ++_i55)
                   {
-                    TRowResult _elem52;
-                    _elem52 = new TRowResult();
-                    _elem52.read(iprot);
-                    this.success.add(_elem52);
+                    TRowResult _elem56;
+                    _elem56 = new TRowResult();
+                    _elem56.read(iprot);
+                    this.success.add(_elem56);
                   }
                   iprot.readListEnd();
                 }
@@ -14973,9 +15404,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TRowResult _iter53 : this.success)
+          for (TRowResult _iter57 : this.success)
           {
-            _iter53.write(oprot);
+            _iter57.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -15539,13 +15970,13 @@ public class Hbase {
             case COLUMNS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list54 = iprot.readListBegin();
-                  this.columns = new ArrayList<byte[]>(_list54.size);
-                  for (int _i55 = 0; _i55 < _list54.size; ++_i55)
+                  TList _list58 = iprot.readListBegin();
+                  this.columns = new ArrayList<byte[]>(_list58.size);
+                  for (int _i59 = 0; _i59 < _list58.size; ++_i59)
                   {
-                    byte[] _elem56;
-                    _elem56 = iprot.readBinary();
-                    this.columns.add(_elem56);
+                    byte[] _elem60;
+                    _elem60 = iprot.readBinary();
+                    this.columns.add(_elem60);
                   }
                   iprot.readListEnd();
                 }
@@ -15589,9 +16020,9 @@ public class Hbase {
         oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRING, this.columns.size()));
-          for (byte[] _iter57 : this.columns)
+          for (byte[] _iter61 : this.columns)
           {
-            oprot.writeBinary(_iter57);
+            oprot.writeBinary(_iter61);
           }
           oprot.writeListEnd();
         }
@@ -15949,14 +16380,14 @@ public class Hbase {
             case SUCCESS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list58 = iprot.readListBegin();
-                  this.success = new ArrayList<TRowResult>(_list58.size);
-                  for (int _i59 = 0; _i59 < _list58.size; ++_i59)
+                  TList _list62 = iprot.readListBegin();
+                  this.success = new ArrayList<TRowResult>(_list62.size);
+                  for (int _i63 = 0; _i63 < _list62.size; ++_i63)
                   {
-                    TRowResult _elem60;
-                    _elem60 = new TRowResult();
-                    _elem60.read(iprot);
-                    this.success.add(_elem60);
+                    TRowResult _elem64;
+                    _elem64 = new TRowResult();
+                    _elem64.read(iprot);
+                    this.success.add(_elem64);
                   }
                   iprot.readListEnd();
                 }
@@ -15989,9 +16420,9 @@ public class Hbase {
         oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.success.size()));
-          for (TRowResult _iter61 : this.success)
+          for (TRowResult _iter65 : this.success)
           {
-            _iter61.write(oprot);
+            _iter65.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -16484,14 +16915,14 @@ public class Hbase {
             case MUTATIONS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list62 = iprot.readListBegin();
-                  this.mutations = new ArrayList<Mutation>(_list62.size);
-                  for (int _i63 = 0; _i63 < _list62.size; ++_i63)
+                  TList _list66 = iprot.readListBegin();
+                  this.mutations = new ArrayList<Mutation>(_list66.size);
+                  for (int _i67 = 0; _i67 < _list66.size; ++_i67)
                   {
-                    Mutation _elem64;
-                    _elem64 = new Mutation();
-                    _elem64.read(iprot);
-                    this.mutations.add(_elem64);
+                    Mutation _elem68;
+                    _elem68 = new Mutation();
+                    _elem68.read(iprot);
+                    this.mutations.add(_elem68);
                   }
                   iprot.readListEnd();
                 }
@@ -16527,9 +16958,9 @@ public class Hbase {
         oprot.writeFieldBegin(MUTATIONS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.mutations.size()));
-          for (Mutation _iter65 : this.mutations)
+          for (Mutation _iter69 : this.mutations)
           {
-            _iter65.write(oprot);
+            _iter69.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -17488,14 +17919,14 @@ public class Hbase {
             case MUTATIONS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list66 = iprot.readListBegin();
-                  this.mutations = new ArrayList<Mutation>(_list66.size);
-                  for (int _i67 = 0; _i67 < _list66.size; ++_i67)
+                  TList _list70 = iprot.readListBegin();
+                  this.mutations = new ArrayList<Mutation>(_list70.size);
+                  for (int _i71 = 0; _i71 < _list70.size; ++_i71)
                   {
-                    Mutation _elem68;
-                    _elem68 = new Mutation();
-                    _elem68.read(iprot);
-                    this.mutations.add(_elem68);
+                    Mutation _elem72;
+                    _elem72 = new Mutation();
+                    _elem72.read(iprot);
+                    this.mutations.add(_elem72);
                   }
                   iprot.readListEnd();
                 }
@@ -17539,9 +17970,9 @@ public class Hbase {
         oprot.writeFieldBegin(MUTATIONS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.mutations.size()));
-          for (Mutation _iter69 : this.mutations)
+          for (Mutation _iter73 : this.mutations)
           {
-            _iter69.write(oprot);
+            _iter73.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -18336,14 +18767,14 @@ public class Hbase {
             case ROW_BATCHES:
               if (field.type == TType.LIST) {
                 {
-                  TList _list70 = iprot.readListBegin();
-                  this.rowBatches = new ArrayList<BatchMutation>(_list70.size);
-                  for (int _i71 = 0; _i71 < _list70.size; ++_i71)
+                  TList _list74 = iprot.readListBegin();
+                  this.rowBatches = new ArrayList<BatchMutation>(_list74.size);
+                  for (int _i75 = 0; _i75 < _list74.size; ++_i75)
                   {
-                    BatchMutation _elem72;
-                    _elem72 = new BatchMutation();
-                    _elem72.read(iprot);
-                    this.rowBatches.add(_elem72);
+                    BatchMutation _elem76;
+                    _elem76 = new BatchMutation();
+                    _elem76.read(iprot);
+                    this.rowBatches.add(_elem76);
                   }
                   iprot.readListEnd();
                 }
@@ -18374,9 +18805,9 @@ public class Hbase {
         oprot.writeFieldBegin(ROW_BATCHES_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.rowBatches.size()));
-          for (BatchMutation _iter73 : this.rowBatches)
+          for (BatchMutation _iter77 : this.rowBatches)
           {
-            _iter73.write(oprot);
+            _iter77.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -19239,14 +19670,14 @@ public class Hbase {
             case ROW_BATCHES:
               if (field.type == TType.LIST) {
                 {
-                  TList _list74 = iprot.readListBegin();
-                  this.rowBatches = new ArrayList<BatchMutation>(_list74.size);
-                  for (int _i75 = 0; _i75 < _list74.size; ++_i75)
+                  TList _list78 = iprot.readListBegin();
+                  this.rowBatches = new ArrayList<BatchMutation>(_list78.size);
+                  for (int _i79 = 0; _i79 < _list78.size; ++_i79)
                   {
-                    BatchMutation _elem76;
-                    _elem76 = new BatchMutation();
-                    _elem76.read(iprot);
-                    this.rowBatches.add(_elem76);
+                    BatchMutation _elem80;
+                    _elem80 = new BatchMutation();
+                    _elem80.read(iprot);
+                    this.rowBatches.add(_elem80);
                   }
                   iprot.readListEnd();
                 }
@@ -19285,9 +19716,9 @@ public class Hbase {
         oprot.writeFieldBegin(ROW_BATCHES_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRUCT, this.rowBatches.size()));
-          for (BatchMutation _iter77 : this.rowBatches)
+          for (BatchMutation _iter81 : this.rowBatches)
           {
-            _iter77.write(oprot);
+            _iter81.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -24412,13 +24843,13 @@ public class Hbase {
             case COLUMNS:
               if (field.type == TType.LIST) {
                 {
-                  TList _list78 = iprot.readListBegin();
-                  this.columns = new ArrayList<byte[]>(_list78.size);
-                  for (int _i79 = 0; _i79 < _list78.size; ++_i79)
+                  TList _list82 = iprot.readListBegin();
+                  this.columns = new ArrayList<byte[]>(_list82.size);
+                  for (int _i83 = 0; _i83 < _list82.size; ++_i83)
                   {
-                    byte[] _elem80;
-                    _elem80 = iprot.readBinary();
-                    this.columns.add(_elem80);
+                    byte[] _elem84;
+                    _elem84 = iprot.readBinary();
+                    this.columns.add(_elem84);
                   }
                   iprot.readListEnd();
                 }
@@ -24454,9 +24885,9 @@ public class Hbase {
         oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
         {
           oprot.writeListBegin(new TList(TType.STRING, this.columns.size()));
-          for (byte[] _iter81 : this.columns)
+          for (byte[] _iter85 : this.columns)
           {
-            oprot.writeBinary(_iter81);
+            oprot.writeBinary(_iter85);
           }
           oprot.writeListEnd();
         }
@@ -24881,34 +25312,20 @@ public class Hbase {
 
   }
 
-  public static class scannerOpenWithStop_args implements TBase<scannerOpenWithStop_args._Fields>, java.io.Serializable, Cloneable, Comparable<scannerOpenWithStop_args>   {
-    private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStop_args");
+  public static class scannerOpenWithScan_args implements TBase<scannerOpenWithScan_args._Fields>, java.io.Serializable, Cloneable, Comparable<scannerOpenWithScan_args>   {
+    private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithScan_args");
 
     private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1);
-    private static final TField START_ROW_FIELD_DESC = new TField("startRow", TType.STRING, (short)2);
-    private static final TField STOP_ROW_FIELD_DESC = new TField("stopRow", TType.STRING, (short)3);
-    private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)4);
+    private static final TField SCAN_FIELD_DESC = new TField("scan", TType.STRUCT, (short)2);
 
     /**
      * name of table
      */
     public byte[] tableName;
     /**
-     * Starting row in table to scan.
-     * Send "" (empty string) to start at the first row.
-     */
-    public byte[] startRow;
-    /**
-     * row to stop scanning on. This row is *not* included in the
-     * scanner's results
-     */
-    public byte[] stopRow;
-    /**
-     * columns to scan. If column name is a column family, all
-     * columns of the specified column family are returned. It's also possible
-     * to pass a regex in the column qualifier.
+     * Scan instance
      */
-    public List<byte[]> columns;
+    public TScan scan;
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements TFieldIdEnum {
@@ -24917,21 +25334,9 @@ public class Hbase {
        */
       TABLE_NAME((short)1, "tableName"),
       /**
-       * Starting row in table to scan.
-       * Send "" (empty string) to start at the first row.
-       */
-      START_ROW((short)2, "startRow"),
-      /**
-       * row to stop scanning on. This row is *not* included in the
-       * scanner's results
-       */
-      STOP_ROW((short)3, "stopRow"),
-      /**
-       * columns to scan. If column name is a column family, all
-       * columns of the specified column family are returned. It's also possible
-       * to pass a regex in the column qualifier.
+       * Scan instance
        */
-      COLUMNS((short)4, "columns");
+      SCAN((short)2, "scan");
 
       private static final Map<Integer, _Fields> byId = new HashMap<Integer, _Fields>();
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -24989,64 +25394,45 @@ public class Hbase {
     public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{
       put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT,
           new FieldValueMetaData(TType.STRING)));
-      put(_Fields.START_ROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT,
-          new FieldValueMetaData(TType.STRING)));
-      put(_Fields.STOP_ROW, new FieldMetaData("stopRow", TFieldRequirementType.DEFAULT,
-          new FieldValueMetaData(TType.STRING)));
-      put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT,
-          new ListMetaData(TType.LIST,
-              new FieldValueMetaData(TType.STRING))));
+      put(_Fields.SCAN, new FieldMetaData("scan", TFieldRequirementType.DEFAULT,
+          new StructMetaData(TType.STRUCT, TScan.class)));
     }});
 
     static {
-      FieldMetaData.addStructMetaDataMap(scannerOpenWithStop_args.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(scannerOpenWithScan_args.class, metaDataMap);
     }
 
-    public scannerOpenWithStop_args() {
+    public scannerOpenWithScan_args() {
     }
 
-    public scannerOpenWithStop_args(
+    public scannerOpenWithScan_args(
       byte[] tableName,
-      byte[] startRow,
-      byte[] stopRow,
-      List<byte[]> columns)
+      TScan scan)
     {
       this();
       this.tableName = tableName;
-      this.startRow = startRow;
-      this.stopRow = stopRow;
-      this.columns = columns;
+      this.scan = scan;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public scannerOpenWithStop_args(scannerOpenWithStop_args other) {
+    public scannerOpenWithScan_args(scannerOpenWithScan_args other) {
       if (other.isSetTableName()) {
         this.tableName = other.tableName;
       }
-      if (other.isSetStartRow()) {
-        this.startRow = other.startRow;
-      }
-      if (other.isSetStopRow()) {
-        this.stopRow = other.stopRow;
-      }
-      if (other.isSetColumns()) {
-        List<byte[]> __this__columns = new ArrayList<byte[]>();
-        for (byte[] other_element : other.columns) {
-          __this__columns.add(other_element);
-        }
-        this.columns = __this__columns;
+      if (other.isSetScan()) {
+        this.scan = new TScan(other.scan);
       }
     }
 
-    public scannerOpenWithStop_args deepCopy() {
-      return new scannerOpenWithStop_args(this);
+    public scannerOpenWithScan_args deepCopy() {
+      return new scannerOpenWithScan_args(this);
     }
 
     @Deprecated
-    public scannerOpenWithStop_args clone() {
-      return new scannerOpenWithStop_args(this);
+    public scannerOpenWithScan_args clone() {
+      return new scannerOpenWithScan_args(this);
     }
 
     /**
@@ -25059,7 +25445,7 @@ public class Hbase {
     /**
      * name of table
      */
-    public scannerOpenWithStop_args setTableName(byte[] tableName) {
+    public scannerOpenWithScan_args setTableName(byte[] tableName) {
       this.tableName = tableName;
       return this;
     }
@@ -25080,115 +25466,32 @@ public class Hbase {
     }
 
     /**
-     * Starting row in table to scan.
-     * Send "" (empty string) to start at the first row.
-     */
-    public byte[] getStartRow() {
-      return this.startRow;
-    }
-
-    /**
-     * Starting row in table to scan.
-     * Send "" (empty string) to start at the first row.
-     */
-    public scannerOpenWithStop_args setStartRow(byte[] startRow) {
-      this.startRow = startRow;
-      return this;
-    }
-
-    public void unsetStartRow() {
-      this.startRow = null;
-    }
-
-    /** Returns true if field startRow is set (has been asigned a value) and false otherwise */
-    public boolean isSetStartRow() {
-      return this.startRow != null;
-    }
-
-    public void setStartRowIsSet(boolean value) {
-      if (!value) {
-        this.startRow = null;
-      }
-    }
-
-    /**
-     * row to stop scanning on. This row is *not* included in the
-     * scanner's results
-     */
-    public byte[] getStopRow() {
-      return this.stopRow;
-    }
-
-    /**
-     * row to stop scanning on. This row is *not* included in the
-     * scanner's results
-     */
-    public scannerOpenWithStop_args setStopRow(byte[] stopRow) {
-      this.stopRow = stopRow;
-      return this;
-    }
-
-    public void unsetStopRow() {
-      this.stopRow = null;
-    }
-
-    /** Returns true if field stopRow is set (has been asigned a value) and false otherwise */
-    public boolean isSetStopRow() {
-      return this.stopRow != null;
-    }
-
-    public void setStopRowIsSet(boolean value) {
-      if (!value) {
-        this.stopRow = null;
-      }
-    }
-
-    public int getColumnsSize() {
-      return (this.columns == null) ? 0 : this.columns.size();
-    }
-
-    public java.util.Iterator<byte[]> getColumnsIterator() {
-      return (this.columns == null) ? null : this.columns.iterator();
-    }
-
-    public void addToColumns(byte[] elem) {
-      if (this.columns == null) {
-        this.columns = new ArrayList<byte[]>();
-      }
-      this.columns.add(elem);
-    }
-
-    /**
-     * columns to scan. If column name is a column family, all
-     * columns of the specified column family are returned. It's also possible
-     * to pass a regex in the column qualifier.
+     * Scan instance
      */
-    public List<byte[]> getColumns() {
-      return this.columns;
+    public TScan getScan() {
+      return this.scan;
     }
 
     /**
-     * columns to scan. If column name is a column family, all
-     * columns of the specified column family are returned. It's also possible
-     * to pass a regex in the column qualifier.
+     * Scan instance
      */
-    public scannerOpenWithStop_args setColumns(List<byte[]> columns) {
-      this.columns = columns;
+    public scannerOpenWithScan_args setScan(TScan scan) {
+      this.scan = scan;
       return this;
     }
 
-    public void unsetColumns() {
-      this.columns = null;
+    public void unsetScan() {
+      this.scan = null;
     }
 
-    /** Returns true if field columns is set (has been asigned a value) and false otherwise */
-    public boolean isSetColumns() {
-      return this.columns != null;
+    /** Returns true if field scan is set (has been asigned a value) and false otherwise */
+    public boolean isSetScan() {
+      return this.scan != null;
     }
 
-    public void setColumnsIsSet(boolean value) {
+    public void setScanIsSet(boolean value) {
       if (!value) {
-        this.columns = null;
+        this.scan = null;
       }
     }
 
@@ -25202,27 +25505,11 @@ public class Hbase {
         }
         break;
 
-      case START_ROW:
-        if (value == null) {
-          unsetStartRow();
-        } else {
-          setStartRow((byte[])value);
-        }
-        break;
-
-      case STOP_ROW:
-        if (value == null) {
-          unsetStopRow();
-        } else {
-          setStopRow((byte[])value);
-        }
-        break;
-
-      case COLUMNS:
+      case SCAN:
         if (value == null) {
-          unsetColumns();
+          unsetScan();
         } else {
-          setColumns((List<byte[]>)value);
+          setScan((TScan)value);
         }
         break;
 
@@ -25238,14 +25525,8 @@ public class Hbase {
       case TABLE_NAME:
         return getTableName();
 
-      case START_ROW:
-        return getStartRow();
-
-      case STOP_ROW:
-        return getStopRow();
-
-      case COLUMNS:
-        return getColumns();
+      case SCAN:
+        return getScan();
 
       }
       throw new IllegalStateException();
@@ -25260,12 +25541,8 @@ public class Hbase {
       switch (field) {
       case TABLE_NAME:
         return isSetTableName();
-      case START_ROW:
-        return isSetStartRow();
-      case STOP_ROW:
-        return isSetStopRow();
-      case COLUMNS:
-        return isSetColumns();
+      case SCAN:
+        return isSetScan();
       }
       throw new IllegalStateException();
     }
@@ -25278,12 +25555,12 @@ public class Hbase {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof scannerOpenWithStop_args)
-        return this.equals((scannerOpenWithStop_args)that);
+      if (that instanceof scannerOpenWithScan_args)
+        return this.equals((scannerOpenWithScan_args)that);
       return false;
     }
 
-    public boolean equals(scannerOpenWithStop_args that) {
+    public boolean equals(scannerOpenWithScan_args that) {
       if (that == null)
         return false;
 
@@ -25296,30 +25573,12 @@ public class Hbase {
           return false;
       }
 
-      boolean this_present_startRow = true && this.isSetStartRow();
-      boolean that_present_startRow = true && that.isSetStartRow();
-      if (this_present_startRow || that_present_startRow) {
-        if (!(this_present_startRow && that_present_startRow))
-          return false;
-        if (!java.util.Arrays.equals(this.startRow, that.startRow))
-          return false;
-      }
-
-      boolean this_present_stopRow = true && this.isSetStopRow();
-      boolean that_present_stopRow = true && that.isSetStopRow();
-      if (this_present_stopRow || that_present_stopRow) {
-        if (!(this_present_stopRow && that_present_stopRow))
-          return false;
-        if (!java.util.Arrays.equals(this.stopRow, that.stopRow))
-          return false;
-      }
-
-      boolean this_present_columns = true && this.isSetColumns();
-      boolean that_present_columns = true && that.isSetColumns();
-      if (this_present_columns || that_present_columns) {
-        if (!(this_present_columns && that_present_columns))
+      boolean this_present_scan = true && this.isSetScan();
+      boolean that_present_scan = true && that.isSetScan();
+      if (this_present_scan || that_present_scan) {
+        if (!(this_present_scan && that_present_scan))
           return false;
-        if (!this.columns.equals(that.columns))
+        if (!this.scan.equals(that.scan))
           return false;
       }
 
@@ -25335,31 +25594,21 @@ public class Hbase {
       if (present_tableName)
         builder.append(tableName);
 
-      boolean present_startRow = true && (isSetStartRow());
-      builder.append(present_startRow);
-      if (present_startRow)
-        builder.append(startRow);
-
-      boolean present_stopRow = true && (isSetStopRow());
-      builder.append(present_stopRow);
-      if (present_stopRow)
-        builder.append(stopRow);
-
-      boolean present_columns = true && (isSetColumns());
-      builder.append(present_columns);
-      if (present_columns)
-        builder.append(columns);
+      boolean present_scan = true && (isSetScan());
+      builder.append(present_scan);
+      if (present_scan)
+        builder.append(scan);
 
       return builder.toHashCode();
     }
 
-    public int compareTo(scannerOpenWithStop_args other) {
+    public int compareTo(scannerOpenWithScan_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
-      scannerOpenWithStop_args typedOther = (scannerOpenWithStop_args)other;
+      scannerOpenWithScan_args typedOther = (scannerOpenWithScan_args)other;
 
       lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName());
       if (lastComparison != 0) {
@@ -25369,27 +25618,11 @@ public class Hbase {
       if (lastComparison != 0) {
         return lastComparison;
       }
-      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(isSetStartRow());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      lastComparison = TBaseHelper.compareTo(startRow, typedOther.startRow);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      lastComparison = Boolean.valueOf(isSetStopRow()).compareTo(isSetStopRow());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      lastComparison = TBaseHelper.compareTo(stopRow, typedOther.stopRow);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns());
+      lastComparison = Boolean.valueOf(isSetScan()).compareTo(isSetScan());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      lastComparison = TBaseHelper.compareTo(columns, typedOther.columns);
+      lastComparison = TBaseHelper.compareTo(scan, typedOther.scan);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -25417,33 +25650,10 @@ public class Hbase {
                 TProtocolUtil.skip(iprot, field.type);
               }
               break;
-            case START_ROW:
-              if (field.type == TType.STRING) {
-                this.startRow = iprot.readBinary();
-              } else {
-                TProtocolUtil.skip(iprot, field.type);
-              }
-              break;
-            case STOP_ROW:
-              if (field.type == TType.STRING) {
-                this.stopRow = iprot.readBinary();
-              } else {
-                TProtocolUtil.skip(iprot, field.type);
-              }
-              break;
-            case COLUMNS:
-              if (field.type == TType.LIST) {
-                {
-                  TList _list82 = iprot.readListBegin();
-                  this.columns = new ArrayList<byte[]>(_list82.size);
-                  for (int _i83 = 0; _i83 < _list82.size; ++_i83)
-                  {
-                    byte[] _elem84;
-                    _elem84 = iprot.readBinary();
-                    this.columns.add(_elem84);
-                  }
-                  iprot.readListEnd();
-                }
+            case SCAN:
+              if (field.type == TType.STRUCT) {
+                this.scan = new TScan();
+                this.scan.read(iprot);
               } else {
                 TProtocolUtil.skip(iprot, field.type);
               }
@@ -25467,26 +25677,9 @@ public class Hbase {
         oprot.writeBinary(this.tableName);
         oprot.writeFieldEnd();
       }
-      if (this.startRow != null) {
-        oprot.writeFieldBegin(START_ROW_FIELD_DESC);
-        oprot.writeBinary(this.startRow);
-        oprot.writeFieldEnd();
-      }
-      if (this.stopRow != null) {
-        oprot.writeFieldBegin(STOP_ROW_FIELD_DESC);
-        oprot.writeBinary(this.stopRow);
-        oprot.writeFieldEnd();
-      }
-      if (this.columns != null) {
-        oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
-        {
-          oprot.writeListBegin(new TList(TType.STRING, this.columns.size()));
-          for (byte[] _iter85 : this.columns)
-          {
-            oprot.writeBinary(_iter85);
-          }
-          oprot.writeListEnd();
-        }
+      if (this.scan != null) {
+        oprot.writeFieldBegin(SCAN_FIELD_DESC);
+        this.scan.write(oprot);
         oprot.writeFieldEnd();
       }
       oprot.writeFieldStop();
@@ -25495,7 +25688,7 @@ public class Hbase {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("scannerOpenWithStop_args(");
+      StringBuilder sb = new StringBuilder("scannerOpenWithScan_args(");
       boolean first = true;
 
       sb.append("tableName:");
@@ -25506,27 +25699,11 @@ public class Hbase {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("startRow:");
-      if (this.startRow == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.startRow);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("stopRow:");
-      if (this.stopRow == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.stopRow);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("columns:");
-      if (this.columns == null) {
+      sb.append("scan:");
+      if (this.scan == null) {
         sb.append("null");
       } else {
-        sb.append(this.columns);
+        sb.append(this.scan);
       }
       first = false;
       sb.append(")");
@@ -25539,8 +25716,8 @@ public class Hbase {
 
   }
 
-  public static class scannerOpenWithStop_result implements TBase<scannerOpenWithStop_result._Fields>, java.io.Serializable, Cloneable, Comparable<scannerOpenWithStop_result>   {
-    private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStop_result");
+  public static class scannerOpenWithScan_result implements TBase<scannerOpenWithScan_result._Fields>, java.io.Serializable, Cloneable, Comparable<scannerOpenWithScan_result>   {
+    private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithScan_result");
 
     private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0);
     private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1);
@@ -25616,13 +25793,13 @@ public class Hbase {
     }});
 
     static {
-      FieldMetaData.addStructMetaDataMap(scannerOpenWithStop_result.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(scannerOpenWithScan_result.class, metaDataMap);
     }
 
-    public scannerOpenWithStop_result() {
+    public scannerOpenWithScan_result() {
     }
 
-    public scannerOpenWithStop_result(
+    public scannerOpenWithScan_result(
       int success,
       IOError io)
     {
@@ -25635,7 +25812,7 @@ public class Hbase {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public scannerOpenWithStop_result(scannerOpenWithStop_result other) {
+    public scannerOpenWithScan_result(scannerOpenWithScan_result other) {
       __isset_bit_vector.clear();
       __isset_bit_vector.or(other.__isset_bit_vector);
       this.success = other.success;
@@ -25644,20 +25821,20 @@ public class Hbase {
       }
     }
 
-    public scannerOpenWithStop_result deepCopy() {
-      return new scannerOpenWithStop_result(this);
+    public scannerOpenWithScan_result deepCopy() {
+      return new scannerOpenWithScan_result(this);
     }
 
     @Deprecated
-    public scannerOpenWithStop_result clone() {
-      return new scannerOpenWithStop_result(this);
+    public scannerOpenWithScan_result clone() {
+      return new scannerOpenWithScan_result(this);
     }
 
     public int getSuccess() {
       return this.success;
     }
 
-    public scannerOpenWithStop_result setSuccess(int success) {
+    public scannerOpenWithScan_result setSuccess(int success) {
       this.success = success;
       setSuccessIsSet(true);
       return this;
@@ -25680,7 +25857,7 @@ public class Hbase {
       return this.io;
     }
 
-    public scannerOpenWithStop_result setIo(IOError io) {
+    public scannerOpenWithScan_result setIo(IOError io) {
       this.io = io;
       return this;
     }
@@ -25760,12 +25937,12 @@ public class Hbase {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof scannerOpenWithStop_result)
-        return this.equals((scannerOpenWithStop_result)that);
+      if (that instanceof scannerOpenWithScan_result)
+        return this.equals((scannerOpenWithScan_result)that);
       return false;
     }
 
-    public boolean equals(scannerOpenWithStop_result that) {
+    public boolean equals(scannerOpenWithScan_result that) {
       if (that == null)
         return false;
 
@@ -25807,13 +25984,13 @@ public class Hbase {
       return builder.toHashCode();
     }
 
-    public int compareTo(scannerOpenWithStop_result other) {
+    public int compareTo(scannerOpenWithScan_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
-      scannerOpenWithStop_result typedOther = (scannerOpenWithStop_result)other;
+      scannerOpenWithScan_result typedOther = (scannerOpenWithScan_result)other;
 
       lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess());
       if (lastComparison != 0) {
@@ -25892,7 +26069,7 @@ public class Hbase {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("scannerOpenWithStop_result(");
+      StringBuilder sb = new StringBuilder("scannerOpenWithScan_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -25916,23 +26093,32 @@ public class Hbase {
 
   }
 
-  public static class scannerOpenWithPrefix_args implements TBase<scannerOpenWithPrefix_args._Fields>, java.io.Serializable, Cloneable, Comparable<scannerOpenWithPrefix_args>   {
-    private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithPrefix_args");
+  public static class scannerOpenWithStop_args implements TBase<scannerOpenWithStop_args._Fields>, java.io.Serializable, Cloneable, Comparable<scannerOpenWithStop_args>   {
+    private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStop_args");
 
     private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1);
-    private static final TField START_AND_PREFIX_FIELD_DESC = new TField("startAndPrefix", TType.STRING, (short)2);
-    private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)3);
+    private static final TField START_ROW_FIELD_DESC = new TField("startRow", TType.STRING, (short)2);
+    private static final TField STOP_ROW_FIELD_DESC = new TField("stopRow", TType.STRING, (short)3);
+    private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)4);
 
     /**
      * name of table
      */
     public byte[] tableName;
     /**
-     * the prefix (and thus start row) of the keys you want
+     * Starting row in table to scan.
+     * Send "" (empty string) to start at the first row.
      */
-    public byte[] startAndPrefix;
+    public byte[] startRow;
     /**
-     * the columns you want returned
+     * row to stop scanning on. This row is *not* included in the
+     * scanner's results
+     */
+    public byte[] stopRow;
+    /**
+     * columns to scan. If column name is a column family, all
+     * columns of the specified column family are returned. It's also possible
+     * to pass a regex in the column qualifier.
      */
     public List<byte[]> columns;
 
@@ -25943,13 +26129,21 @@ public class Hbase {
        */
       TABLE_NAME((short)1, "tableName"),
       /**
-       * the prefix (and thus start row) of the keys you want
+       * Starting row in table to scan.
+       * Send "" (empty string) to start at the first row.
        */
-      START_AND_PREFIX((short)2, "startAndPrefix"),
+      START_ROW((short)2, "startRow"),
       /**
-       * the columns you want returned
+       * row to stop scanning on. This row is *not* included in the
+       * scanner's results
        */
-      COLUMNS((short)3, "columns");
+      STOP_ROW((short)3, "stopRow"),
+      /**
+       * columns to scan. If column name is a column family, all
+       * columns of the specified column family are returned. It's also possible
+       * to pass a regex in the column qualifier.
+       */
+      COLUMNS((short)4, "columns");
 
       private static final Map<Integer, _Fields> byId = new HashMap<Integer, _Fields>();
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -26007,7 +26201,9 @@ public class Hbase {
     public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{
       put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT,
           new FieldValueMetaData(TType.STRING)));
-      put(_Fields.START_AND_PREFIX, new FieldMetaData("startAndPrefix", TFieldRequirementType.DEFAULT,
+      put(_Fields.START_ROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT,
+          new FieldValueMetaData(TType.STRING)));
+      put(_Fields.STOP_ROW, new FieldMetaData("stopRow", TFieldRequirementType.DEFAULT,
           new FieldValueMetaData(TType.STRING)));
       put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT,
           new ListMetaData(TType.LIST,
@@ -26015,32 +26211,37 @@ public class Hbase {
     }});
 
     static {
-      FieldMetaData.addStructMetaDataMap(scannerOpenWithPrefix_args.class, metaDataMap);
+      FieldMetaData.addStructMetaDataMap(scannerOpenWithStop_args.class, metaDataMap);
     }
 
-    public scannerOpenWithPrefix_args() {
+    public scannerOpenWithStop_args() {
     }
 
-    public scannerOpenWithPrefix_args(
+    public scannerOpenWithStop_args(
       byte[] tableName,
-      byte[] startAndPrefix,
+      byte[] startRow,
+      byte[] stopRow,
       List<byte[]> columns)
     {
       this();
       this.tableName = tableName;
-      this.startAndPrefix = startAndPrefix;
+      this.startRow = startRow;
+      this.stopRow = stopRow;
       this.columns = columns;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public scannerOpenWithPrefix_args(scannerOpenWithPrefix_args other) {
+    public scannerOpenWithStop_args(scannerOpenWithStop_args other) {
       if (other.isSetTableName()) {
         this.tableName = other.tableName;
       }
-      if (other.isSetStartAndPrefix()) {
-        this.startAndPrefix = other.startAndPrefix;
+      if (other.isSetStartRow()) {
+        this.startRow = other.startRow;
+      }
+      if (other.isSetStopRow()) {
+        this.stopRow = other.stopRow;
       }
       if (other.isSetColumns()) {
         List<byte[]> __this__columns = new ArrayList<byte[]>();
@@ -26051,13 +26252,13 @@ public class Hbase {
       }
     }
 
-    public scannerOpenWithPrefix_args deepCopy() {
-      return new scannerOpenWithPrefix_args(this);
+    public scannerOpenWithStop_args deepCopy() {
+      return new scannerOpenWithStop_args(this);
     }
 
     @Deprecated
-    public scannerOpenWithPrefix_args clone() {
-      return new scannerOpenWithPrefix_args(this);
+    public scannerOpenWithStop_args clone() {
+      return new scannerOpenWithStop_args(this);
     }
 
     /**
@@ -26070,7 +26271,7 @@ public class Hbase {
     /**
      * name of table
      */
-    public scannerOpenWithPrefix_args setTableName(byte[] tableName) {
+    public scannerOpenWithStop_args setTableName(byte[] tableName) {
       this.tableName = tableName;
       return this;
     }
@@ -26091,32 +26292,66 @@ public class Hbase {
     }
 
     /**
-     * the prefix (and thus start row) of the keys you want
+     * Starting row in table to scan.
+     * Send "" (empty string) to start at the first row.
      */
-    public byte[] getStartAndPrefix() {
-      return this.startAndPrefix;
+    public byte[] getStartRow() {
+      return this.startRow;
     }
 
     /**
-     * the prefix (and thus start row) of the keys you want
+     * Starting row in table to scan.
+     * Send "" (empty string) to start at the first row.
      */
-    public scannerOpenWithPrefix_args setStartAndPrefix(byte[] startAndPrefix) {
-      this.startAndPrefix = startAndPrefix;
+    public scannerOpenWithStop_args setStartRow(byte[] startRow) {
+      this.startRow = startRow;
       return this;
     }
 
-    public void unsetStartAndPrefix() {
-      this.startAndPrefix = null;
+    public void unsetStartRow() {
+      this.startRow = null;
     }
 
-    /** Returns true if field startAndPrefix is set (has been asigned a value) and false otherwise */
-    public boolean isSetStartAndPrefix() {
-      return this.startAndPrefix != null;
+    /** Returns true if field startRow is set (has been asigned a value) and false otherwise */
+    public boolean isSetStartRow() {
+      return this.startRow != null;
     }
 
-    public void setStartAndPrefixIsSet(boolean value) {
+    public void setStartRowIsSet(boolean value) {
       if (!value) {
-        this.startAndPrefix = null;
+        this.startRow = null;
+      }
+    }
+
+    /**
+     * row to stop scanning on. This row is *not* included in the
+     * scanner's results
+     */
+    public byte[] getStopRow() {
+      return this.stopRow;
+    }
+
+    /**
+     * row to stop scanning on. This row is *not* included in the
+     * scanner's results
+     */
+    public scannerOpenWithStop_args setStopRow(byte[] stopRow) {
+      this.stopRow = stopRow;
+      return this;
+    }
+
+    public void unsetStopRow() {
+      this.stopRow = null;
+    }
+
+    /** Returns true if field stopRow is set (has been asigned a value) and false otherwise */
+    public boolean isSetStopRow() {
+      return this.stopRow != null;
+    }
+
+    public void setStopRowIsSet(boolean value) {
+      if (!value) {
+        this.stopRow = null;
       }
     }
 
@@ -26136,16 +26371,20 @@ public class Hbase {
     }
 
     /**
-     * the columns you want returned
+     * columns to scan. If column name is a column family, all
+     * columns of the specified column family are returned. It's also possible
+     * to pass a regex in the column qualifier.
      */
     public List<byte[]> getColumns() {
       return this.columns;
     }
 
     /**
-     * the columns you want returned
+     * columns to scan. If column name is a column family, all
+     * columns of the specified column family are returned. It's also possible
+     * to pass a regex in the column qualifier.
      */
-    public scannerOpenWithPrefix_args setColumns(List<byte[]> columns) {
+    public scannerOpenWithStop_args setColumns(List<byte[]> columns) {
       this.columns = columns;
       return this;
     }
@@ -26175,11 +26414,19 @@ public class Hbase {
         }
         break;
 
-      case START_AND_PREFIX:
+      case START_ROW:
         if (value == null) {
-          unsetStartAndPrefix();
+          unsetStartRow();
         } else {
-          setStartAndPrefix((byte[])value);
+          setStartRow((byte[])value);
+        }
+        break;
+
+      case STOP_ROW:
+        if (value == null) {
+          unsetStopRow();
+        } else {
+          setStopRow((byte[])value);
         }
         break;
 
@@ -26203,8 +26450,11 @@ public class Hbase {
       case TABLE_NAME:
         return getTableName();
 
-      case START_AND_PREFIX:
-        return getStartAndPrefix();
+      case START_ROW:
+        return getStartRow();
+
+      case STOP_ROW:
+        return getStopRow();
 
       case COLUMNS:
         return getColumns();
@@ -26222,8 +26472,10 @@ public class Hbase {
       switch (field) {
       case TABLE_NAME:
         return isSetTableName();
-      case START_AND_PREFIX:
-        return isSetStartAndPrefix();
+      case START_ROW:
+        return isSetStartRow();
+      case STOP_ROW:
+        return isSetStopRow();
       case COLUMNS:
         return isSetColumns();
       }
@@ -26238,12 +26490,4813 @@ public class Hbase {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof scannerOpenWithPrefix_args)
-        return this.equals((scannerOpenWithPrefix_args)that);
+      if (that instanceof scannerOpenWithStop_args)
+        return this.equals((scannerOpenWithStop_args)that);
       return false;
     }
 
-    public boolean equals(scannerOpenWithPrefix_args that) {
+    public boolean equals(scannerOpenWithStop_args that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_tableName = true && this.isSetTableName();
+      boolean that_present_tableName = true && that.isSetTableName();
+      if (this_present_tableName || that_present_tableName) {
+        if (!(this_present_tableName && that_present_tableName))
+          return false;
+        if (!java.util.Arrays.equals(this.tableName, that.tableName))
+          return false;
+      }
+
+      boolean this_present_startRow = true && this.isSetStartRow();
+      boolean that_present_startRow = true && that.isSetStartRow();
+      if (this_present_startRow || that_present_startRow) {
+        if (!(this_present_startRow && that_present_startRow))
+          return false;
+        if (!java.util.Arrays.equals(this.startRow, that.startRow))
+          return false;
+      }
+
+      boolean this_present_stopRow = true && this.isSetStopRow();
+      boolean that_present_stopRow = true && that.isSetStopRow();
+      if (this_present_stopRow || that_present_stopRow) {
+        if (!(this_present_stopRow && that_present_stopRow))
+          return false;
+        if (!java.util.Arrays.equals(this.stopRow, that.stopRow))
+          return false;
+      }
+
+      boolean this_present_columns = true && this.isSetColumns();
+      boolean that_present_columns = true && that.isSetColumns();
+      if (this_present_columns || that_present_columns) {
+        if (!(this_present_columns && that_present_columns))
+          return false;
+        if (!this.columns.equals(that.columns))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      HashCodeBuilder builder = new HashCodeBuilder();
+
+      boolean present_tableName = true && (isSetTableName());
+      builder.append(present_tableName);
+      if (present_tableName)
+        builder.append(tableName);
+
+      boolean present_startRow = true && (isSetStartRow());
+      builder.append(present_startRow);
+      if (present_startRow)
+        builder.append(startRow);
+
+      boolean present_stopRow = true && (isSetStopRow());
+      builder.append(present_stopRow);
+      if (present_stopRow)
+        builder.append(stopRow);
+
+      boolean present_columns = true && (isSetColumns());
+      builder.append(present_columns);
+      if (present_columns)
+        builder.append(columns);
+
+      return builder.toHashCode();
+    }
+
+    public int compareTo(scannerOpenWithStop_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+      scannerOpenWithStop_args typedOther = (scannerOpenWithStop_args)other;
+
+      lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(isSetStartRow());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = TBaseHelper.compareTo(startRow, typedOther.startRow);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = Boolean.valueOf(isSetStopRow()).compareTo(isSetStopRow());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = TBaseHelper.compareTo(stopRow, typedOther.stopRow);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = TBaseHelper.compareTo(columns, typedOther.columns);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      return 0;
+    }
+
+    public void read(TProtocol iprot) throws TException {
+      TField field;
+      iprot.readStructBegin();
+      while (true)
+      {
+        field = iprot.readFieldBegin();
+        if (field.type == TType.STOP) {
+          break;
+        }
+        _Fields fieldId = _Fields.findByThriftId(field.id);
+        if (fieldId == null) {
+          TProtocolUtil.skip(iprot, field.type);
+        } else {
+          switch (fieldId) {
+            case TABLE_NAME:
+              if (field.type == TType.STRING) {
+                this.tableName = iprot.readBinary();
+              } else {
+                TProtocolUtil.skip(iprot, field.type);
+              }
+              break;
+            case START_ROW:
+              if (field.type == TType.STRING) {
+                this.startRow = iprot.readBinary();
+              } else {
+                TProtocolUtil.skip(iprot, field.type);
+              }
+              break;
+            case STOP_ROW:

[... 6255 lines stripped ...]