[ https://issues.apache.org/jira/browse/HBASE-7337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13532066#comment-13532066 ]
Zhou wenjian commented on HBASE-7337: ------------------------------------- [~anoopsamjohn] actually i did get all the versions. when using SCVF, it is not allowed to set version in the scan for it will get data againset SCVF,do you mean it? > SingleColumnValueFilter seems to get unavailble data > ---------------------------------------------------- > > Key: HBASE-7337 > URL: https://issues.apache.org/jira/browse/HBASE-7337 > Project: HBase > Issue Type: Bug > Components: Filters > Affects Versions: 0.94.3, 0.96.0 > Environment: 0.94 > Reporter: Zhou wenjian > Assignee: Zhou wenjian > Fix For: 0.96.0, 0.94.4 > > > put multi versions of a row. > r1 cf:q version:1 value:1 > r1 cf:q version:2 value:3 > r1 cf:q version:3 value:2 > the filter in scan is set as below: > SingleColumnValueFilter valueF = new SingleColumnValueFilter( > family,qualifier,CompareOp.EQUAL,new BinaryComparator(Bytes > .toBytes("2"))); > then i found all of the three versions will be emmitted, then i set > latestVersionOnly to false, the result does no change. > public ReturnCode filterKeyValue(KeyValue keyValue) { > // System.out.println("REMOVE KEY=" + keyValue.toString() + ", value=" + > Bytes.toString(keyValue.getValue())); > if (this.matchedColumn) { > // We already found and matched the single column, all keys now pass > return ReturnCode.INCLUDE; > } else if (this.latestVersionOnly && this.foundColumn) { > // We found but did not match the single column, skip to next row > return ReturnCode.NEXT_ROW; > } > if (!keyValue.matchingColumn(this.columnFamily, this.columnQualifier)) { > return ReturnCode.INCLUDE; > } > foundColumn = true; > if (filterColumnValue(keyValue.getBuffer(), > keyValue.getValueOffset(), keyValue.getValueLength())) { > return this.latestVersionOnly? ReturnCode.NEXT_ROW: ReturnCode.INCLUDE; > } > this.matchedColumn = true; > return ReturnCode.INCLUDE; > } > From the code above, it seeems that version 3 will be first emmited, and set > matchedColumn to true, which leads the following version 2 and 1 emmited too. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira