eomiks opened a new pull request #4282:
URL: https://github.com/apache/hbase/pull/4282


   HBASE-26895
   
   on hbase shell,
   
   'delete' or 'deleteall' for the whole columnFamily is not working properly.
   
    
   ```
   hbase(main):026:0* put 'test', 'r1', 'f:1', 'a'
   Took 0.0233 seconds
   hbase(main):029:0> delete 'test', 'r1', 'f'
   Took 0.0070 seconds
   hbase(main):030:0> get 'test', 'r1'
   COLUMN                                                                  CELL
    f:1                                                                    
timestamp=1648114865022, value=a
   1 row(s)
   hbase(main):038:0> deleteall 'test', 'r1', 'f'
   Took 0.0059 seconds
   hbase(main):039:0> get 'test', 'r1'
   COLUMN                                                                  CELL
    f:1                                                                    
timestamp=1648114865022, value=a
   1 row(s) 
    ```
   
   looking inside of hbase-shell,
   
   all delete/deleteall on hbase shell are converted to 
delete.addColumn/addColumns.
   
   thus, delete/deleteall request without columnQualifier converted to 'null' 
qualifier deletion. (since 
[HBASE-15616](https://issues.apache.org/jira/browse/HBASE-15616), null 
columnQualifier is possible)
   
    
   ```ruby
           if column && all_version
             family, qualifier = parse_column_name(column)
             d.addColumns(family, qualifier, timestamp)
           elsif column && !all_version
             family, qualifier = parse_column_name(column)
             d.addColumn(family, qualifier, timestamp)
           end 
    ```
   
   According to the description of help 'deleteall' and 
[HBASE-9549](https://issues.apache.org/jira/browse/HBASE-9549)
   > "Users of the shell, MapReduce, REST, and Thrift who wish to interact with 
an entire column family must use "family" instead of "family:" (notice the 
omitted ':'). Including the ':' will be interpreted as an interaction with the 
empty qualifier in the "family" column family."
    
   a column expression without ':' means whole family.
   so in these cases, it's deletion request for the columnFamily,
   and we should use addFamily/addFamilyVersion instead of addColumn/addColumns 
for deletion.


-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to