[ 
https://issues.apache.org/jira/browse/HBASE-10992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kyle Purtell resolved HBASE-10992.
-----------------------------------------
    Resolution: Incomplete

> getRowNum of coprocessor may return error count when users set qualifiers
> -------------------------------------------------------------------------
>
>                 Key: HBASE-10992
>                 URL: https://issues.apache.org/jira/browse/HBASE-10992
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors
>    Affects Versions: 0.94.18
>            Reporter: Jianwei Cui
>            Priority: Minor
>
> We find getRowNum(...) of AggregateImplementation may return error count when 
> users set qualifiers to the parameter scan. The reason might be the following 
> code in AggregateImplementation#getRowNum:
> {code}
>  byte[] colFamily = scan.getFamilies()[0];
>  byte[] qualifier = scan.getFamilyMap().get(colFamily).pollFirst();
>  ...
> {code}
> In above code, the method will remove the first user-set qualifier from scan. 
> Then, the following scan will return all rows containing data belong to the 
> family, which might lead the miscounting. For example, if we put data for 
> family='A' and qualifier='a' and count the row by setting family='A' and 
> qualifier='b' in scan, we will get unexpected count.
> In my opinion, it is better to only count rows containing the qualifiers of 
> family set by user if we allow users to add qualifiers to scan; otherwise,  
> it might be better to prevent users from adding qualifiers to scan of 
> AggregationClient#rowCount. 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to