You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/04/08 09:35:26 UTC

[11/50] [abbrv] hbase git commit: HBASE-20231 Not able to delete column family from a row using RemoteHTable

HBASE-20231 Not able to delete column family from a row using RemoteHTable

Signed-off-by: Ashish Singhi <as...@apache.org>


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

Branch: refs/heads/HBASE-19064
Commit: 7abaf22a12cc9e2655ff57ad46f66e2189fd52e2
Parents: 5937202
Author: Pankaj Kumar <pa...@huawei.com>
Authored: Wed Apr 4 10:11:09 2018 +0530
Committer: Ashish Singhi <as...@apache.org>
Committed: Wed Apr 4 10:11:09 2018 +0530

----------------------------------------------------------------------
 .../hadoop/hbase/rest/client/RemoteHTable.java  |  9 +++++---
 .../hbase/rest/client/TestRemoteTable.java      | 22 ++++++++++++++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/7abaf22a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
index cc3efdd..29b48e1 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/client/RemoteHTable.java
@@ -115,13 +115,16 @@ public class RemoteHTable implements Table {
           Iterator ii = quals.iterator();
           while (ii.hasNext()) {
             sb.append(toURLEncodedBytes((byte[])e.getKey()));
-            sb.append(':');
             Object o = ii.next();
             // Puts use byte[] but Deletes use KeyValue
             if (o instanceof byte[]) {
-              sb.append(toURLEncodedBytes((byte[])o));
+              sb.append(':');
+              sb.append(toURLEncodedBytes((byte[]) o));
             } else if (o instanceof KeyValue) {
-              sb.append(toURLEncodedBytes(CellUtil.cloneQualifier((KeyValue)o)));
+              if (((KeyValue) o).getQualifierLength() != 0) {
+                sb.append(':');
+                sb.append(toURLEncodedBytes(CellUtil.cloneQualifier((KeyValue) o)));
+              }
             } else {
               throw new RuntimeException("object type not handled");
             }

http://git-wip-us.apache.org/repos/asf/hbase/blob/7abaf22a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/client/TestRemoteTable.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/client/TestRemoteTable.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/client/TestRemoteTable.java
index 5053d91..c6f5195 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/client/TestRemoteTable.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/client/TestRemoteTable.java
@@ -353,18 +353,27 @@ public class TestRemoteTable {
     Put put = new Put(ROW_3);
     put.addColumn(COLUMN_1, QUALIFIER_1, VALUE_1);
     put.addColumn(COLUMN_2, QUALIFIER_2, VALUE_2);
+    put.addColumn(COLUMN_3, QUALIFIER_1, VALUE_1);
+    put.addColumn(COLUMN_3, QUALIFIER_2, VALUE_2);
     remoteTable.put(put);
 
     Get get = new Get(ROW_3);
     get.addFamily(COLUMN_1);
     get.addFamily(COLUMN_2);
+    get.addFamily(COLUMN_3);
     Result result = remoteTable.get(get);
     byte[] value1 = result.getValue(COLUMN_1, QUALIFIER_1);
     byte[] value2 = result.getValue(COLUMN_2, QUALIFIER_2);
+    byte[] value3 = result.getValue(COLUMN_3, QUALIFIER_1);
+    byte[] value4 = result.getValue(COLUMN_3, QUALIFIER_2);
     assertNotNull(value1);
     assertTrue(Bytes.equals(VALUE_1, value1));
     assertNotNull(value2);
     assertTrue(Bytes.equals(VALUE_2, value2));
+    assertNotNull(value3);
+    assertTrue(Bytes.equals(VALUE_1, value3));
+    assertNotNull(value4);
+    assertTrue(Bytes.equals(VALUE_2, value4));
 
     Delete delete = new Delete(ROW_3);
     delete.addColumn(COLUMN_2, QUALIFIER_2);
@@ -394,6 +403,19 @@ public class TestRemoteTable {
     assertTrue(Bytes.equals(VALUE_1, value1));
     assertNull(value2);
 
+    // Delete column family from row
+    delete = new Delete(ROW_3);
+    delete.addFamily(COLUMN_3);
+    remoteTable.delete(delete);
+
+    get = new Get(ROW_3);
+    get.addFamily(COLUMN_3);
+    result = remoteTable.get(get);
+    value3 = result.getValue(COLUMN_3, QUALIFIER_1);
+    value4 = result.getValue(COLUMN_3, QUALIFIER_2);
+    assertNull(value3);
+    assertNull(value4);
+
     delete = new Delete(ROW_3);
     remoteTable.delete(delete);