Ankit Singhal created PHOENIX-4467:
--------------------------------------
Summary: Scans with filter returning all the versions
Key: PHOENIX-4467
URL: https://issues.apache.org/jira/browse/PHOENIX-4467
Project: Phoenix
Issue Type: Sub-task
Reporter: Ankit Singhal
Assignee: Ankit Singhal
Fix For: 5.0.0
Even if we set max versions in the scan to 1, HBase is still returning all the
versions if there is a filter.
It seems to be a side-effect of HBASE-17125. where if INCLUDE_AND_NEXT_COL is
the return code from the filter, we are not checking the version of the cell
even though the documentation says.
{code}
@InterfaceAudience.Public
public enum ReturnCode {
/**
* Include the Cell
*/
INCLUDE,
/**
* Include the Cell and seek to the next column skipping older versions.
*/
INCLUDE_AND_NEXT_COL,
}
{code}
In UserScanQueryMatcher#mergeFilterResponse()
{code}
case INCLUDE_AND_NEXT_COL:
if (matchCode == MatchCode.INCLUDE) {
matchCode = MatchCode.INCLUDE_AND_SEEK_NEXT_COL;
}
break;
if (matchCode == MatchCode.INCLUDE_AND_SEEK_NEXT_COL
|| matchCode == MatchCode.INCLUDE_AND_SEEK_NEXT_ROW) {
return matchCode;
}
// Now we will check versions again.
if (curColCell == null || !CellUtil.matchingRowColumn(cell, curColCell)) {
count = 0;
curColCell = cell;
}
count += 1;
return count > versionsAfterFilter ? MatchCode.SEEK_NEXT_COL :
MatchCode.INCLUDE;
{code}
[~anoopsamjohn], It could be a bug in HBase
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)