You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Joep Rottinghuis (JIRA)" <ji...@apache.org> on 2012/05/31 21:21:23 UTC

[jira] [Commented] (HBASE-6142) Javadoc in some Filters ambiguous

    [ https://issues.apache.org/jira/browse/HBASE-6142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13286852#comment-13286852 ] 

Joep Rottinghuis commented on HBASE-6142:
-----------------------------------------

See the JavaDoc in SingleColumnValueFilter:
{code}
/**
 * This filter is used to filter cells based on value. It takes a {@link CompareFilter.CompareOp}
 * operator (equal, greater, not equal, etc), and either a byte [] value or
 * a WritableByteArrayComparable.
{code}
"to filter" is not clear. Filter in (pass), or filter out (like Filter#filterRowKey)?
Then the following snippet seems to match how Filter is defined, but is not actually how it does work:
{code}
 * If we have a byte [] value then we just do a lexicographic compare. For
 * example, if passed value is 'b' and cell has 'a' and the compare operator
 * is LESS, then we will filter out this cell (return true).  If this is not
 * sufficient (eg you want to deserialize a long and then compare it to a fixed
 * long value), then you can pass in your own comparator instead.
{code}
I think that is incorrect. In this example since 'a' _is_ LESS than 'b' the value would actually pass the filter (row returned by scan).

                
> Javadoc in some Filters ambiguous
> ---------------------------------
>
>                 Key: HBASE-6142
>                 URL: https://issues.apache.org/jira/browse/HBASE-6142
>             Project: HBase
>          Issue Type: Bug
>          Components: documentation
>    Affects Versions: 0.92.2, 0.96.0, 0.94.1
>            Reporter: Joep Rottinghuis
>            Priority: Minor
>
> The javadoc on some of the filter is somewhat confusing.
> The main Filter interface has methods that behave like a sieve; when filterRowKey returns true, that means that the row is filtered _out_ (not included).
> Many of the Filter implementations work the other way around. When the condition is met the value passes (ie, the row is returned).
> Most Filters make it clear when a values passes (passing through the filter meaning the values are returned from the scan).
> Some are less clear in light of how the Filter interface works: WhileMatchFilter and SingleColumnValueFilter are examples.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira