hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10965) Automate detection of presence of Filter#filterRow()
Date Mon, 14 Apr 2014 13:36:16 GMT

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

Anoop Sam John commented on HBASE-10965:
----------------------------------------

{code}
+    if (hasFilterRow == null) {
+      for (Filter filter : filters) {
+        if (FilterWrapper.isFilterMethodImplemented(filter, "filterRow")) {
+          this.hasFilterRow = true;
+          return true;
+        }
       }
+      this.hasFilterRow = false;
     }
{code}
This will be problematic When a FL contains another FL, the inner one will always say hasFilterRow
as true.

So here as per V4 patch we will auto detect presence of filterRow() overridden alone?

FilterWrapper#hasFilterRow()  just checks presence of filterRow() ? !  When Filter extending

filterRowCells(List<Cell> kvs)   or filterRow(List<KeyValue> kvs)   hasFilter()
have to return true  (And we need fail in HRegion a scan with filter and batch being set)


> Automate detection of presence of Filter#filterRow()
> ----------------------------------------------------
>
>                 Key: HBASE-10965
>                 URL: https://issues.apache.org/jira/browse/HBASE-10965
>             Project: HBase
>          Issue Type: Task
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>         Attachments: 10965-v1.txt, 10965-v2.txt, 10965-v3.txt, 10965-v4.txt
>
>
> There is potential inconsistency between the return value of Filter#hasFilterRow() and
presence of Filter#filterRow().
> Filters may override Filter#filterRow() while leaving return value of Filter#hasFilterRow()
being false (inherited from FilterBase).
> This JIRA aims to remove the inconsistency by automatically detecting the presence of
overridden Filter#filterRow(). If filterRow() is implemented and not inherited from FilterBase,
it is equivalent to having hasFilterRow() return true.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message