There are some confusing parts about the Delete client API:
1. calling deleteFamily removes all prior column or columns markers without 
checking the TS.
2. delete{Column|Columns|Family} do not use the timestamp passed to Delete at 
construction time, but instead default to LATEST_TIMESTAMP.

  Delete d = new Delete(R,T);
  d.deleteFamily(CF);

Does not do what you expect (won't use T for the family delete, but rather the 
current time).

Neither does
  d.deleteColumns(CF, C1, T2);
  d.deleteFamily(CF, T1); // T1 < T2


(the columns marker will be removed)


#1 prevents Delete from adding a family marker F for time T1 and a 
column/columns marker for columns of F at T2 even if T2 > T1.
#2 is just unexpected and different from what Put is doing.

In HBASE-5205 I propose a simple patch to fix this.

Since this is a (slight) API change, please provide feed back.

Thanks.

-- Lars

Reply via email to