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

Switch to Threaded View
HBase, mail # user - HBase Client API: Why does HTable.get(get).getValue() return null if more than one family is added to the get instance?


Copy link to this message
-
Re: HBase Client API: Why does HTable.get(get).getValue() return null if more than one family is added to the get instance?
Harsh J 2012-06-10, 18:45
Hi,

Am unable to reproduce this on 0.90.6 at least. What version are you using?

Regardless of "get.addFamily(Bytes.toBytes("family2"));" being present
or not, I do not receive a null.

Original table scan (of a table 't'), to match your qualifier-less f1 family:

 x   column=f1:, timestamp=1339353441608, value=value

And then again tried with a qualifier-added f2 family column:

 x   column=f1:, timestamp=1339353441608, value=value
 x   column=f2:x, timestamp=1339353614689, value=value

With both these data sets am still unable to get the null returns. I
only get a null if I instead comment the
"get.addFamily(Bytes.toBytes("family1"));" family1 line, which is
expected.

Can you also detail out the steps you did to check this? Did you
recreate rows/tables between tests?

On Sun, Jun 10, 2012 at 9:20 PM, Desert R. <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
>
>
>
>
>
>        I have a table with 2 column families. The column 'family1'
> has no qualifiers, and the row 'x' has the value \xFF. If I do the
> following
>
> HTable htable = new HTable(config, TABLE_NAME);
> Get get = new Get(Bytes.toBytes("x"));
> get.addFamily(Bytes.toBytes("family1"));
> if(htable.get(get).getValue(Bytes.toBytes("family1"), Bytes.toBytes("")) == null)
>  log.debug("Value is null!");
>
>
> the method getValue() returns not null (as expected). But if I add other family:
>
> HTable htable = new HTable(config, TABLE_NAME);
> Get get = new Get(Bytes.toBytes("x"));
> get.addFamily(Bytes.toBytes("family1"));
> get.addFamily(Bytes.toBytes("family2"));
> if(htable.get(get).getValue(Bytes.toBytes("family1"), Bytes.toBytes("")) == null)
>  log.debug("Value is null!");
>
>
> I get a null. Why does this happen?

--
Harsh J