[ 
https://issues.apache.org/jira/browse/HBASE-15260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15145019#comment-15145019
 ] 

Ankit Singhal commented on HBASE-15260:
---------------------------------------

[~anoopsamjohn], but there is also a  zero length check on column value in 
checkAndMutate() when null is passed as expected value. 
So checkAndPut will still succeed even when column is present but value of 
column is empty byte array. WDYT about this case?


> Should we check zero length value in checkAndMutate when null is passes as 
> expected value?
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-15260
>                 URL: https://issues.apache.org/jira/browse/HBASE-15260
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ankit Singhal
>
> Should we check zero length value in checkAndMutate when null is passes as 
> expected value?
> If yes, then I think we should update the documentation for checkAndPut with 
> the same as sometimes column are used for marker with empty byte array.
> {code}
> If the passed value is null, the check
>    * is for the lack of column (ie: non-existance)
> boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier,
>     byte[] value, Put put) throws IOException;
> {code}
> otherwise , we should remove this check.
> {code}
> HRegion.class
> @Override
>   public boolean checkAndMutate(byte [] row, byte [] family, byte [] 
> qualifier,
>       CompareOp compareOp, ByteArrayComparable comparator, Mutation w,
>       boolean writeToWAL)
>   throws IOException{
> ...
> else if (result.size() > 0 && result.get(0).getValueLength() == 0 &&
>             valueIsNull) {
>           matches = true;
>         }
>  {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to