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

Duo Zhang commented on HBASE-17958:
-----------------------------------

I do not think so.

Can you imagine that, you call a seek on an InputStream, and the InputStream 
may do nothing and still return the next byte to you and you need to guess 
whether it really done the seek? That's not natural. If you really want to do 
this, do not call it seek please.

And I do not get your point, why this is the job of the tracker? It is also 
strange that a ColumnTracker tells you that I have enough versions for this 
column so please seek to the next column or I have done with this row please 
seek to the next row, but you still pass the cells from the same column or same 
row to me and let me do the skip job? I can imagine that this question will be 
asked again and again by different people when they try to change the code in 
this area...

> Avoid passing unexpected cell to ScanQueryMatcher when optimize SEEK to SKIP
> ----------------------------------------------------------------------------
>
>                 Key: HBASE-17958
>                 URL: https://issues.apache.org/jira/browse/HBASE-17958
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Guanghao Zhang
>            Assignee: Guanghao Zhang
>
> {code}
> ScanQueryMatcher.MatchCode qcode = matcher.match(cell);
> qcode = optimize(qcode, cell);
> {code}
> The optimize method may change the MatchCode from SEEK_NEXT_COL/SEEK_NEXT_ROW 
> to SKIP. But it still pass the next cell to ScanQueryMatcher. It will get 
> wrong result when use some filter, etc. ColumnCountGetFilter. It just count 
> the  columns's number. If pass a same column to this filter, the count result 
> will be wrong. So we should avoid passing cell to ScanQueryMatcher when 
> optimize SEEK to SKIP.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to