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

Reply via email to