Apache9 commented on a change in pull request #1114: HBASE-23146 Support 
CheckAndMutate with multi conditions
URL: https://github.com/apache/hbase/pull/1114#discussion_r373894914
 
 

 ##########
 File path: 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncTable.java
 ##########
 @@ -233,6 +234,28 @@
    */
   CheckAndMutateBuilder checkAndMutate(byte[] row, byte[] family);
 
+  /**
+   * Atomically checks if a row matches the specified filter. If it does, it 
adds the
+   * Put/Delete/RowMutations.
+   * <p>
+   * Use the returned {@link CheckAndMutateBuilder} to construct your request 
and then execute it.
+   * This is a fluent style API, the code is like:
+   *
+   * <pre>
+   * <code>
+   * table.checkAndMutate(row).ifMatches(filter).thenPut(put)
+   *     .thenAccept(succ -> {
+   *       if (succ) {
+   *         System.out.println("Check and put succeeded");
+   *       } else {
+   *         System.out.println("Check and put failed");
+   *       }
+   *     });
+   * </code>
+   * </pre>
+   */
+  CheckAndMutateBuilder checkAndMutate(byte[] row);
 
 Review comment:
   The API here is a bit strange. We introduce the above family & row method is 
because that family and row both can not be null, but here since we allow 
matching multiple qualifiers acrossing different families, we can accept null 
families as we can pass it through the filter implementation? So here, either 
we deprecated the old checkAndMutate(family, row) method and introduce a new 
family method, or we introduce a new checkAndMutate(row, filter)?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to