[
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)