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)