Skip to content

Commit

Permalink
HBASE-20231 Not able to delete column family from a row using RemoteH…
Browse files Browse the repository at this point in the history
…Table

Signed-off-by: Ashish Singhi <[email protected]>
  • Loading branch information
Pankaj Kumar authored and ashishsinghi committed Apr 4, 2018
1 parent 5937202 commit 7abaf22
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,16 @@ protected String buildRowSpec(final byte[] row, final Map familyMap,
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");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -353,18 +353,27 @@ public void testDelete() throws IOException {
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);
Expand Down Expand Up @@ -394,6 +403,19 @@ public void testDelete() throws IOException {
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);

Expand Down

0 comments on commit 7abaf22

Please sign in to comment.