GEODE-1745: Fixed the comparison during query re-evaluation using 
CompactMapRangeIndexes

        * Initially the object to be searched was compared with the tuple 
returned by the Compact Range Index which contains the object to be searched 
and a key
        * This led to mismatch to occur resulting in false query results.
        * Fixed to compare with the first element of the tuple returned by the 
compact range index.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f8f8986f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f8f8986f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f8f8986f

Branch: refs/heads/feature/GEODE-420
Commit: f8f8986f39616114a97e7e7b9bad3af712e52f1f
Parents: 6f37769
Author: nabarun <[email protected]>
Authored: Wed Aug 10 14:15:29 2016 -0700
Committer: nabarun <[email protected]>
Committed: Mon Aug 15 14:11:55 2016 -0700

----------------------------------------------------------------------
 .../gemfire/cache/query/internal/index/CompactRangeIndex.java     | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f8f8986f/geode-core/src/main/java/com/gemstone/gemfire/cache/query/internal/index/CompactRangeIndex.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/com/gemstone/gemfire/cache/query/internal/index/CompactRangeIndex.java
 
b/geode-core/src/main/java/com/gemstone/gemfire/cache/query/internal/index/CompactRangeIndex.java
index d0a0ee5..ecfafb1 100644
--- 
a/geode-core/src/main/java/com/gemstone/gemfire/cache/query/internal/index/CompactRangeIndex.java
+++ 
b/geode-core/src/main/java/com/gemstone/gemfire/cache/query/internal/index/CompactRangeIndex.java
@@ -984,6 +984,9 @@ public class CompactRangeIndex extends AbstractIndex {
 
     if (key != null) {
       right = key.evaluate(context);
+      if(null != right  && indexInfo._getIndex() instanceof 
CompactMapRangeIndex){
+        right = ((Object[])right)[0];
+      }
     } else {
       right = keyVal;
     }

Reply via email to