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

Switch to Plain View
Accumulo, mail # dev - Quoted visibility equality?

Ed Kohlwey 2013-07-13, 23:32
Eric Newton 2013-07-15, 13:34
Keith Turner 2013-07-15, 13:23
Ed Kohlwey 2013-07-15, 17:47
Copy link to this message
Re: Quoted visibility equality?
Christopher 2013-07-15, 19:41
Quotes in the underlying bytes in the column visibility will get
stripped during evaluation. They are only used for parsing the
expression, not for comparing with authorizations.

Christopher L Tubbs II
On Mon, Jul 15, 2013 at 1:47 PM, Ed Kohlwey <[EMAIL PROTECTED]> wrote:
> My intention was for the strings to be interpreted as java code - so the
> quotes are not part of the authorization name. The labels would be a&b and
> "a"&b (if we're talking bare strings).
> The issue I'm really trying to get at is that a programmer would think of
> these two labels as equivalent. This is a natural assumption for a
> programmer who generally thinks that escape characters or quotes don't
> contribute to the meaning of an expression because thats how programming
> languages usually work. But it sounds like thats not the case.
> On Mon, Jul 15, 2013 at 9:23 AM, Keith Turner <[EMAIL PROTECTED]> wrote:
>> On Sat, Jul 13, 2013 at 7:32 PM, Ed Kohlwey <[EMAIL PROTECTED]> wrote:
>> > I just noticed something as I was hacking today on the trunk - does the
>> new
>> > column visibility code (with escape sequences) accommodate visibilities
>> > that are equivalent but not stored using the same byte representation? My
>> > assumption is no...
>> >
>> > Ie., is the visibility "a&b" equivalent to "\"a\"&b" for the purpose of
>> the
>> > max versions iterator, etc.?
>> >
>> I do not think the visibility "a&b" and  "\"a\"&b" are equivalent.   The
>> escaped quotes are not ignored, they are part of the label.  To
>> see  "\"a\"&b", you would need to pass an authorization of: "a"&b to the
>> scanner.   Passing an authorization of a&b to scan would not see a column
>> labeled with "\"a\"&b".
>> The exact bytes you pass to ColumnVis is whats stored.  The colvis bytes
>> are used for lexicographic sorting w/o interpreting their contents.
>>  So "a&b" and "\"a\"&b"  would sort to different places.
>> If you did store something thats logically equivalent like a&b and b&a,
>> then these would still sort to different places.    ColumnVisibility has a
>> flatten() function that may help in some cases, but it will not always
>> normalize two expressions that are logically equivalent to the exact same
>> expression.
>> Keith
Ed Kohlwey 2013-07-15, 19:46
Christopher 2013-07-15, 19:56