Ah, gotcha.

That definitely does not seem right. I'll see if I can poke around at this today.

Are you using 1.5.0 or 1.5.1? (1.5.1 was just released a few weeks ago)

On 4/12/14, 4:13 PM, David O'Gwynn wrote:
Hi Josh,

I guess I misspoke, the Range I'm passing is this:

Range('row0', true, 'row0\0',true)

Keeping in mind that the Thrift interface only exposes one Range
constructor (Range(Key,bool,Key,bool)), the actual call I'm passing is
this:

Range( Key('row0',null,...), true, Key('row0\0',null,...), true )

If I scan for all entries (without WholeRowIterator), I get the full
contents of "row0". However, when I add the WholeRowIterator, it
returns nothing.

Furthermore, if I were to pass the following:

Range( Key('row0',null,...), true, Key('row1\0',null,...), true )

not only do I get both "row0" and "row1" without the WRI, I get "row1"
as a whole row with the WRI (but not "row0"). I.e. the WRI is somehow
interpreting my Range as having startKeyInclusive set to false, which
is clearly not the case.

Thanks,
David


On Sat, Apr 12, 2014 at 2:49 PM, Josh Elser <[email protected]> wrote:
Hi David,

Looks like you're just mis-using the Range here.

If you create a range that is ["row0", "row0"] as you denote below, that
will only include Keys that have a rowId of "row0" with an empty colfam,
colqual, etc. Since you want to use the WholeRowIterator, I can assume you
want all columns in "row0". As such, ["row0", "row0\0") would be the best
range to fetch all of the columns in that single row.


On 4/12/2014 1:59 PM, David O'Gwynn wrote:

Hi all,

I'm working with the Python Thrift API for the Accumulo proxy service,
and I have a bit of odd behavior happening. I'm using Accumulo 1.5
(the standard one from the Accumulo website).

Whenever I use the WholeRowIterator with a Scanner, I cannot configure
the Range for that Scanner to correctly return the start row for the
Range. E.g. for the Range('row0',true,'row0',true) [to pull a singe
row], it returns zero entries. For Range('row0',true,'row1\0',true),
it returns only "row1".

  From the WholeRowIterator documentation, this behavior implies that
the startInclusive bit was set to False, which it clearly wasn't.

I've been able to hack around this issue by setting the start key to

Key(row=(row[:-1]+chr(ord(row[-1])-1))+'\0', inclusive=False)

but I'd really rather understand the correct way of using a Range
object in conjunction with a WholeRowIterator.

Thanks much,

David


Reply via email to