HBase
  1. HBase
  2. HBASE-3191

FilterList with MUST_PASS_ONE and SCVF isn't working

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 0.89.20100924, 0.90.0
    • Fix Version/s: 0.90.0
    • Component/s: Filters
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      In a special case the FilterList with MUST_PASS_ONE operator doesn't work correctly:

      • a filter in the list is a SingleColumValueFilter with filterIfMissing=true
      • FilterList.filterKeyValue(KeyValue) is called
      • SingleColumValueFilter.filterKeyValue(KeyValue) is called
      • SingleColumValueFilter.filterKeyValue(KeyValue) returns ReturnCode.INCLUDE if the KeyValue doesn't match a column (to support filterIfMissing)
      • FilterList.filterKeyValue(KeyValue) immediately returns ReturnCode.INCLUDE, remaining filters in the list aren't evaluated.

      However it is required to evaluate remaining filters, otherwise filterRow() filters out rows in case the filter's filterKeyValue() saves state that is used by filterRow(). (SingleColumValueFilter, SkipFilter, WhileMatchFilter do so)

      1. HBASE-3191.patch
        6 kB
        Stefan Seelmann

        Activity

        Hide
        Stefan Seelmann added a comment -

        Patch with Test

        Show
        Stefan Seelmann added a comment - Patch with Test
        Hide
        stack added a comment -

        Committed to TRUNK. Thank you for the patch Stefan.

        Show
        stack added a comment - Committed to TRUNK. Thank you for the patch Stefan.

          People

          • Assignee:
            Unassigned
            Reporter:
            Stefan Seelmann
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development