Enis Soztutar created HBASE-14997:
-------------------------------------

             Summary: Move compareOp and Comparators out of filter to client 
package
                 Key: HBASE-14997
                 URL: https://issues.apache.org/jira/browse/HBASE-14997
             Project: HBase
          Issue Type: Bug
            Reporter: Enis Soztutar
             Fix For: 2.0.0


{{Table.checkAndPut()}} and its cousins depend on CompareOp from the filter 
package. Originally, ComparaOp and ByteArrayComparable, and various 
"comparators" have been used in filters, so these are in the filter package. 
However, for checkAndPut(), etc we depend on the filter subpackage although 
these are not filter related operations. We can use some clean up.

{code}
  boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier,
    CompareFilter.CompareOp compareOp, byte[] value, Put put) throws 
IOException;
{code}

Some ideas
 - Cleanup ByteArrayComparable interface (see the TODO at the class) 
 - Maybe introduce a {{Condition}} or a similar concept and do 
{{checkAndPut(Condition condition, Put put)}} and change filters to use that as 
well. 
 - Introducing Condition like thing will allow us to have an interface like: 
{{checkAndMutate(List<Condition> conditions, List<Mutation> mutations)}}. 
 - BinaryComparator, etc are not "Comparators", they are comparables. 



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

Reply via email to