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 2016/02/18 04:26:24 UTC

hbase git commit: HBASE-15285 Forward-port respect for isReturnResult from HBASE-15095

Repository: hbase
Updated Branches:
  refs/heads/master e0fa176f0 -> 4b1acead4


HBASE-15285 Forward-port respect for isReturnResult from HBASE-15095


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/4b1acead
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/4b1acead
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/4b1acead

Branch: refs/heads/master
Commit: 4b1acead42ffc625e398f0cd1cdec9e50f756fa9
Parents: e0fa176
Author: stack <st...@apache.org>
Authored: Wed Feb 17 19:26:17 2016 -0800
Committer: stack <st...@apache.org>
Committed: Wed Feb 17 19:26:17 2016 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/client/Append.java   |  7 +++----
 .../apache/hadoop/hbase/client/Increment.java    | 11 ++++-------
 .../org/apache/hadoop/hbase/client/Mutation.java | 19 +++++++++++++++++++
 .../hadoop/hbase/regionserver/HRegion.java       |  6 ++++--
 4 files changed, 30 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/4b1acead/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
index d5a4552..45f1e46 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
@@ -47,7 +47,6 @@ import org.apache.hadoop.hbase.util.Bytes;
 @InterfaceAudience.Public
 @InterfaceStability.Stable
 public class Append extends Mutation {
-  private static final String RETURN_RESULTS = "_rr_";
   /**
    * @param returnResults
    *          True (default) if the append operation should return the results.
@@ -55,16 +54,16 @@ public class Append extends Mutation {
    *          bandwidth setting this to false.
    */
   public Append setReturnResults(boolean returnResults) {
-    setAttribute(RETURN_RESULTS, Bytes.toBytes(returnResults));
+    super.setReturnResults(returnResults);
     return this;
   }
 
   /**
    * @return current setting for returnResults
    */
+  // This method makes public the superclasses's protected method.
   public boolean isReturnResults() {
-    byte[] v = getAttribute(RETURN_RESULTS);
-    return v == null ? true : Bytes.toBoolean(v);
+    return super.isReturnResults();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/4b1acead/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Increment.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Increment.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Increment.java
index d37cf82..187c077 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Increment.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Increment.java
@@ -52,9 +52,6 @@ import org.apache.hadoop.hbase.util.ClassSize;
 @InterfaceStability.Stable
 public class Increment extends Mutation implements Comparable<Row> {
   private static final long HEAP_OVERHEAD =  ClassSize.REFERENCE + ClassSize.TIMERANGE;
-
-  private static final String RETURN_RESULTS = "_rr_";
-
   private TimeRange tr = new TimeRange();
 
   /**
@@ -170,16 +167,16 @@ public class Increment extends Mutation implements Comparable<Row> {
    *          to false.
    */
   public Increment setReturnResults(boolean returnResults) {
-    setAttribute(RETURN_RESULTS, Bytes.toBytes(returnResults));
+    super.setReturnResults(returnResults);
     return this;
   }
 
   /**
-   * @return current value for returnResults
+   * @return current setting for returnResults
    */
+  // This method makes public the superclasses's protected method.
   public boolean isReturnResults() {
-    byte[] v = getAttribute(RETURN_RESULTS);
-    return v == null ? true : Bytes.toBoolean(v);
+    return super.isReturnResults();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/4b1acead/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java
index 9a550f9..06e0224 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java
@@ -82,6 +82,8 @@ public abstract class Mutation extends OperationWithAttributes implements Row, C
    */
   private static final String OP_ATTRIBUTE_TTL = "_ttl";
 
+  private static final String RETURN_RESULTS = "_rr_";
+
   protected byte [] row = null;
   protected long ts = HConstants.LATEST_TIMESTAMP;
   protected Durability durability = Durability.USE_DEFAULT;
@@ -452,6 +454,23 @@ public abstract class Mutation extends OperationWithAttributes implements Row, C
   }
 
   /**
+   * @return current value for returnResults
+   */
+  // Used by Increment and Append only.
+  @InterfaceAudience.Private
+  protected boolean isReturnResults() {
+    byte[] v = getAttribute(RETURN_RESULTS);
+    return v == null ? true : Bytes.toBoolean(v);
+  }
+
+  @InterfaceAudience.Private
+  // Used by Increment and Append only.
+  protected Mutation setReturnResults(boolean returnResults) {
+    setAttribute(RETURN_RESULTS, Bytes.toBytes(returnResults));
+    return this;
+  }
+
+  /**
    * Subclasses should override this method to add the heap size of their own fields.
    * @return the heap size to add (will be aligned).
    */

http://git-wip-us.apache.org/repos/asf/hbase/blob/4b1acead/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index 3e6c092..0d5a71e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -6972,7 +6972,9 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
       lock(this.updatesLock.readLock());
       try {
         Result cpResult = doCoprocessorPreCall(op, mutation);
-        if (cpResult != null) return cpResult;
+        if (cpResult != null) {
+          return returnResults? cpResult: null;
+        }
         Durability effectiveDurability = getEffectiveDurability(mutation.getDurability());
         Map<Store, List<Cell>> forMemStore =
             new HashMap<Store, List<Cell>>(mutation.getFamilyCellMap().size());
@@ -7000,7 +7002,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
         this.updatesLock.readLock().unlock();
       }
       // If results is null, then client asked that we not return the calculated results.
-      return results !=  null? Result.create(results): null;
+      return results != null && returnResults? Result.create(results): null;
     } finally {
       // Call complete always, even on success. doDelta is doing a Get READ_UNCOMMITTED when it goes
       // to get current value under an exclusive lock so no need so no need to wait to return to