You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2010/10/02 01:48:10 UTC

svn commit: r1003710 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/client/Result.java

Author: rawson
Date: Fri Oct  1 23:48:10 2010
New Revision: 1003710

URL: http://svn.apache.org/viewvc?rev=1003710&view=rev
Log:
HBASE-2753  Remove sorted() methods from Result now that Gets are Scans

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/Result.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1003710&r1=1003709&r2=1003710&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Oct  1 23:48:10 2010
@@ -564,6 +564,7 @@ Release 0.21.0 - Unreleased
                in transition
    HBASE-3064  Long sleeping in HConnectionManager after thread is interrupted
                (Bruno Dumon via Stack)
+   HBASE-2753  Remove sorted() methods from Result now that Gets are Scans
 
   IMPROVEMENTS
    HBASE-1760  Cleanup TODOs in HTable

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/Result.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/Result.java?rev=1003710&r1=1003709&r2=1003710&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/Result.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/Result.java Fri Oct  1 23:48:10 2010
@@ -20,6 +20,7 @@
 
 package org.apache.hadoop.hbase.client;
 
+import com.google.common.collect.Ordering;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.SplitKeyValue;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
@@ -149,12 +150,18 @@ public class Result implements Writable 
    * @return sorted array of KeyValues
    */
   public KeyValue[] sorted() {
-    if (isEmpty()) {
+    if (isEmpty()) { // used for side effect!
       return null;
     }
-    Arrays.sort(kvs, KeyValue.COMPARATOR);
+    if (!sorted) {
+      assert Ordering.from(KeyValue.COMPARATOR).isOrdered(Arrays.asList(kvs));
+
+      Arrays.sort(kvs, KeyValue.COMPARATOR);
+      sorted = true;
+    }
     return kvs;
   }
+  private boolean sorted = false;
 
   /**
    * Map of families to all versions of its qualifiers and values.