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