Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase >> mail # dev >> Re: HBase Types: Explicit Null Support


+
Ted Yu 2013-04-01, 21:38
+
Ted Yu 2013-04-02, 00:10
Copy link to this message
-
Re: HBase Types: Explicit Null Support
Since SQL allows null valued composite key parts, we needed to support it.

On 04/01/2013 05:10 PM, Ted Yu wrote:
> bq. I create a dummy qualifier with a dummy value
>
> For any single application, the above can be done.
> For generic applications, how would we do this ?
>
> Thanks
>
>
> On Mon, Apr 1, 2013 at 5:07 PM, Matt Corgan <[EMAIL PROTECTED]> wrote:
>
>> I generally don't allow nulls in my composite row keys.  Does SQL allow
>> nulls in the PK?  In the rare case I wanted to do that I might create a
>> separate format called NullableCInt32 with 5 bytes where the first one
>> determined null.  It's important to keep the pure types pure.
>>
>> I have lots of null *values* however, but they're represented by lack of a
>> qualifier in the Put.  If a row has all null values, I create a dummy
>> qualifier with a dummy value to make sure the row key gets inserted as it
>> would in sql.
>>
>>
>> On Mon, Apr 1, 2013 at 4:49 PM, James Taylor <[EMAIL PROTECTED]>
>> wrote:
>>
>>> On 04/01/2013 04:41 PM, Nick Dimiduk wrote:
>>>
>>>> On Mon, Apr 1, 2013 at 4:31 PM, James Taylor <[EMAIL PROTECTED]>
>>>> wrote:
>>>>
>>>>    From the SQL perspective, handling null is important.
>>>>   From your perspective, it is critical to support NULLs, even at the
>>>> expense
>>>> of fixed-width encodings at all or supporting representation of a full
>>>> range of values. That is, you'd rather be able to represent NULL than
>>>> -2^31?
>>>>
>>> We've been able to get away with supporting NULL through the absence of
>>> the value rather than restricting the data range. We haven't had any push
>>> back on not allowing a fixed width nullable leading row key column. Since
>>> our variable length DECIMAL supports null and is a superset of the fixed
>>> width numeric types, users have a reasonable alternative.
>>>
>>> I'd rather not restrict the range of values, since it doesn't seem like
>>> this would be necessary.
>>>
>>>
>>>> On 04/01/2013 01:32 PM, Nick Dimiduk wrote:
>>>>
>>>>> Thanks for the thoughtful response (and code!).
>>>>>> I'm thinking I will press forward with a base implementation that does
>>>>>> not
>>>>>> support nulls. The idea is to provide an extensible set of interfaces,
>>>>>> so
>>>>>> I
>>>>>> think this will not box us into a corner later. That is, a mirroring
>>>>>> package could be implemented that supports null values and accepts
>>>>>> the relevant trade-offs.
>>>>>>
>>>>>> Thanks,
>>>>>> Nick
>>>>>>
>>>>>> On Mon, Apr 1, 2013 at 12:26 PM, Matt Corgan <[EMAIL PROTECTED]>
>>>>>> wrote:
>>>>>>
>>>>>>    I spent some time this weekend extracting bits of our serialization
>>>>>> code
>>>>>>
>>>>>>> to
>>>>>>> a public github repo at http://github.com/hotpads/****data-tools<
>> http://github.com/hotpads/**data-tools>
>>>>>>> <http://github.com/**hotpads/data-tools<
>> http://github.com/hotpads/data-tools>
>>>>>>> .
>>>>>>>     Contributions are welcome - i'm sure we all have this stuff laying
>>>>>>> around.
>>>>>>>
>>>>>>> You can see I've bumped into the NULL problem in a few places:
>>>>>>> *
>>>>>>>
>>>>>>> https://github.com/hotpads/****data-tools/blob/master/src/**<
>> https://github.com/hotpads/**data-tools/blob/master/src/**>
>> main/java/com/hotpads/data/****primitive/lists/LongArrayList.****java<
>>>>>>> https://github.com/**hotpads/data-tools/blob/**
>>>>>>> master/src/main/java/com/**hotpads/data/primitive/lists/**
>>>>>>> LongArrayList.java<
>> https://github.com/hotpads/data-tools/blob/master/src/main/java/com/hotpads/data/primitive/lists/LongArrayList.java
>>>>>>> *
>>>>>>>
>>>>>>> https://github.com/hotpads/****data-tools/blob/master/src/**<
>> https://github.com/hotpads/**data-tools/blob/master/src/**>
>>>>>>> main/java/com/hotpads/data/****types/floats/DoubleByteTool.****java<
>>>>>>> https://github.com/**hotpads/data-tools/blob/**
>>>>>>> master/src/main/java/com/**hotpads/data/types/floats/**
>>>>>>> DoubleByteTool.java<
>> https://github.com/hotpads/data-tools/blob/master/src/main/java/com/hotpads/data/types/floats/DoubleByteTool.java
+
Jesse Yates 2013-04-02, 06:29
+
James Taylor 2013-04-02, 06:33
+
Nick Dimiduk 2013-04-05, 01:49
+
James Taylor 2013-04-05, 02:18
+
Nick Dimiduk 2013-04-05, 02:54