You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/04/28 10:29:55 UTC

svn commit: r769290 - in /hadoop/hbase/branches/0.19: CHANGES.txt src/java/org/apache/hadoop/hbase/client/HTable.java

Author: stack
Date: Tue Apr 28 08:29:55 2009
New Revision: 769290

URL: http://svn.apache.org/viewvc?rev=769290&view=rev
Log:
HBASE-1350 New method in HTable.java to return start and end keys for regions in a table 

Modified:
    hadoop/hbase/branches/0.19/CHANGES.txt
    hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/client/HTable.java

Modified: hadoop/hbase/branches/0.19/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/CHANGES.txt?rev=769290&r1=769289&r2=769290&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.19/CHANGES.txt Tue Apr 28 08:29:55 2009
@@ -12,6 +12,8 @@
                not exist (Rong-en Fan via Stack)
    HBASE-1287  Partitioner class not used in TableMapReduceUtil.initTableReduceJob()
                (Lars George and Billy Pearson via Stack)
+   HBASE-1350  New method in HTable.java to return start and end keys for
+               regions in a table (Vimal Mathew via Stack)
 
 Release 0.19.1 - 03/19/2009
   BUG FIXES

Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/client/HTable.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/client/HTable.java?rev=769290&r1=769289&r2=769290&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/client/HTable.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/client/HTable.java Tue Apr 28 08:29:55 2009
@@ -47,6 +47,7 @@
 import org.apache.hadoop.hbase.io.RowResult;
 import org.apache.hadoop.hbase.io.HbaseMapWritable;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.Pair;
 import org.apache.hadoop.hbase.util.Writables;
 
 /**
@@ -227,7 +228,29 @@
    * @throws IOException
    */
   public byte[][] getStartKeys() throws IOException {
-    final List<byte[]> keyList = new ArrayList<byte[]>();
+    return getStartEndKeys().getFirst();
+  }
+
+  /**
+   * Gets the ending row key for every region in the currently open table
+   * 
+   * @return Array of region ending row keys
+   * @throws IOException
+   */
+  public byte[][] getEndKeys() throws IOException {
+    return getStartEndKeys().getSecond();
+  }
+
+  /**
+   * Gets the starting and ending row keys for every region in the currently open table
+   * 
+   * @return Pair of arrays of region starting and ending row keys
+   * @throws IOException
+   */
+  @SuppressWarnings("unchecked")
+  public Pair<byte[][],byte[][]> getStartEndKeys() throws IOException {
+    final List<byte[]> startKeyList = new ArrayList<byte[]>();
+    final List<byte[]> endKeyList = new ArrayList<byte[]>();
 
     MetaScannerVisitor visitor = new MetaScannerVisitor() {
       public boolean processRow(RowResult rowResult) throws IOException {
@@ -235,7 +258,8 @@
             rowResult.get(HConstants.COL_REGIONINFO));
         if (Bytes.equals(info.getTableDesc().getName(), getTableName())) {
           if (!(info.isOffline() || info.isSplit())) {
-            keyList.add(info.getStartKey());
+            startKeyList.add(info.getStartKey());
+            endKeyList.add(info.getEndKey());
           }
         }
         return true;
@@ -243,7 +267,8 @@
 
     };
     MetaScanner.metaScan(configuration, visitor, this.tableName);
-    return keyList.toArray(new byte[keyList.size()][]);
+    return new Pair(startKeyList.toArray(new byte[startKeyList.size()][]),
+                endKeyList.toArray(new byte[endKeyList.size()][]));
   }
 
   /**