Pardon. Comparison to "a".getBytes() gave positive value. Comparison to null gave positive value.
Comparison to "x".getBytes() gave negative value. On Fri, Jul 3, 2015 at 3:08 PM, Ted Yu <[email protected]> wrote: > Minor correction to my previous email: > BinaryComparator instance was initialized with "value".getBytes(). > Comparison to "x".getBytes() and null gave return value of positive > number with the aforementioned fix. > > Cheers > > On Fri, Jul 3, 2015 at 3:04 PM, Ted Yu <[email protected]> wrote: > >> You want to check whether one of the conditions is met, right ? >> >> Looking at the second variant of checkAndPut(), HTable uses >> BinaryComparator. >> I wrote some simple code involving call to BinaryComparator.compareTo(). >> >> I had to fix the following: >> Caused by: java.lang.NullPointerException >> >> at >> org.apache.hadoop.hbase.filter.ByteArrayComparable.compareTo(ByteArrayComparable.java:85) >> >> with http://pastebin.com/UJ7eJ6zQ >> >> What I found was that comparison to "value".getBytes() and null both >> gave positive return value. >> >> FYI >> >> On Fri, Jul 3, 2015 at 2:43 PM, James Young <[email protected]> wrote: >> >>> Hi, >>> >>> I need to have a checkandput operation for the following condition: >>> >>> 1: null >>> 2: with value less than specified value. >>> >>> >>> I know it has two versions for checkandput and I can implement either >>> condition with one of requests. But I don't know how I can check both >>> conditions with one atomic call. >>> >>> Thanks in advance! >>> >>> James >>> >>> boolean*checkAndPut >>> < >>> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut(byte[],%20byte[],%20byte[],%20byte[],%20org.apache.hadoop.hbase.client.Put) >>> >*(byte[] >>> row, >>> byte[] family, byte[] qualifier, byte[] value, Put >>> < >>> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html >>> > >>> put) >>> Atomically checks if a row/family/qualifier value matches the expected >>> value. >>> boolean*checkAndPut >>> < >>> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut(byte[],%20byte[],%20byte[],%20org.apache.hadoop.hbase.filter.CompareFilter.CompareOp,%20byte[],%20org.apache.hadoop.hbase.client.Put) >>> >*(byte[] >>> row, >>> byte[] family, byte[] qualifier, CompareFilter.CompareOp >>> < >>> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html >>> > >>> compareOp, >>> byte[] value,Put >>> < >>> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html >>> > >>> put) >>> >> >> >
