Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-21158

Empty qualifier cell should not be returned if it does not match QualifierFilter

    Details

    • Hadoop Flags:
      Incompatible change
    • Release Note:
      Hide
      <!-- markdown -->

      Scans that make use of `QualifierFilter` previously would erroneously return both columns with an empty qualifier along with those that matched. After this change that behavior has changed to only return those columns that match.
      Show
      <!-- markdown --> Scans that make use of `QualifierFilter` previously would erroneously return both columns with an empty qualifier along with those that matched. After this change that behavior has changed to only return those columns that match.

      Description

      hbase(main):002:0> put 'testTable','testrow','f:testcol1','testvalue1'
      0 row(s) in 0.0040 seconds
      
      hbase(main):003:0> put 'testTable','testrow','f:','testvalue2'
      0 row(s) in 0.0070 seconds
      
      # get row with empty column f:, result is correct.
      hbase(main):004:0> scan 'testTable',{FILTER => "QualifierFilter (=, 'binary:')"}
      ROW                                         COLUMN+CELL                                                                                                                    
       testrow                                    column=f:, timestamp=1536218563581, value=testvalue2                                                                           
      1 row(s) in 0.0460 seconds
      
      # get row with column f:testcol1, result is incorrect.
      hbase(main):005:0> scan 'testTable',{FILTER => "QualifierFilter (=, 'binary:testcol1')"}
      ROW                                         COLUMN+CELL                                                                                                                    
       testrow                                    column=f:, timestamp=1536218563581, value=testvalue2                                                                           
       testrow                                    column=f:testcol1, timestamp=1536218550827, value=testvalue1                                                                   
      1 row(s) in 0.0070 seconds
      

      As the above operation, when the row contains empty qualifier column, empty qualifier cell is always returned when using QualifierFilter.

        Attachments

        1. HBASE-21158.master.004.patch
          8 kB
          Guangxu Cheng
        2. HBASE-21158.master.003.patch
          8 kB
          Guangxu Cheng
        3. HBASE-21158.master.002.patch
          8 kB
          Guangxu Cheng
        4. HBASE-21158.master.001.patch
          8 kB
          Guangxu Cheng
        5. HBASE-21158.branch-1.001.patch
          8 kB
          Guangxu Cheng

          Issue Links

            Activity

              People

              • Assignee:
                andrewcheng Guangxu Cheng
                Reporter:
                andrewcheng Guangxu Cheng
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: