You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Lars Hofhansl (JIRA)" <ji...@apache.org> on 2019/05/28 06:17:00 UTC

[jira] [Comment Edited] (HBASE-21158) Empty qualifier cell should not be returned if it does not match QualifierFilter

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

Lars Hofhansl edited comment on HBASE-21158 at 5/28/19 6:16 AM:
----------------------------------------------------------------

This causes *very* subtle changes, and actually break Phoenix secondary indexing.

Furthermore is different between
 * branch-1.3 (check remove)
 * branch-1.4 (check still present)
 * branch-1 (check removed, grrrr, took me 3h to track this down)
 * branch-2 (check still present) and
 * master (check removed)

This is bad. And bad that we managed to leave it all in different states in different HBase branches.

What happened here?

[~apurtell], we should check whether we have this in our HBase. If so it can cause subtle index out of sync problems (see linked Phoenix jira).

Phoenix in this case relies on that a family delete marker (which does not have a qualifier) is flowing through this filter along with all other K/Vs it might affect (but limited to a known set of qualifiers).


was (Author: lhofhansl):
This causes *very* subtle changes, and actually break Phoenix secondary indexing.

Furthermore is different between
 * branch-1.3 (check remove)
 * branch-1.4 (check still present)
 * branch-1 (check removed, grrrr, took me 3h to track this down)
 * branch-2 (check still present) and
 * master (check removed)

This is bad. And bad that we managed to leave it all in different states in different HBase branches.

What happened here?

[~apurtell],

> Empty qualifier cell should not be returned if it does not match QualifierFilter
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-21158
>                 URL: https://issues.apache.org/jira/browse/HBASE-21158
>             Project: HBase
>          Issue Type: Bug
>          Components: Filters
>    Affects Versions: 3.0.0, 2.2.0
>            Reporter: Guangxu Cheng
>            Assignee: Guangxu Cheng
>            Priority: Critical
>             Fix For: 3.0.0, 1.3.3, 1.2.8, 2.2.0, 1.4.8, 2.1.1, 2.0.3
>
>         Attachments: HBASE-21158.branch-1.001.patch, HBASE-21158.master.001.patch, HBASE-21158.master.002.patch, HBASE-21158.master.003.patch, HBASE-21158.master.004.patch
>
>
> {code:xml}
> 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
> {code}
> As the above operation, when the row contains empty qualifier column, empty qualifier cell is always returned when using QualifierFilter.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)