You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2010/07/25 06:32:45 UTC
svn commit: r978980 -
/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
Author: apurtell
Date: Sun Jul 25 04:32:45 2010
New Revision: 978980
URL: http://svn.apache.org/viewvc?rev=978980&view=rev
Log:
HBASE-1537 Intra-row scanning; Query matcher will be confused if intra-row scanning
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java?rev=978980&r1=978979&r2=978980&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java Sun Jul 25 04:32:45 2010
@@ -227,7 +227,12 @@ class StoreScanner implements KeyValueSc
return false;
}
- matcher.setRow(peeked.getRow());
+ // only call setRow if the row changes; avoids confusing the query matcher
+ // if scanning intra-row
+ if ((matcher.row == null) || !peeked.matchingRow(matcher.row)) {
+ matcher.setRow(peeked.getRow());
+ }
+
KeyValue kv;
List<KeyValue> results = new ArrayList<KeyValue>();
LOOP: while((kv = this.heap.peek()) != null) {