You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/11/20 13:43:25 UTC

ignite git commit: ignite-sql-opt - fixed comparator

Repository: ignite
Updated Branches:
  refs/heads/ignite-sql-opt d8bfa2c12 -> b21c62086


ignite-sql-opt - fixed comparator


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

Branch: refs/heads/ignite-sql-opt
Commit: b21c620865dca807d15d31c0671baea0aabaaea5
Parents: d8bfa2c
Author: S.Vladykin <sv...@gridgain.com>
Authored: Fri Nov 20 15:42:53 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Fri Nov 20 15:42:53 2015 +0300

----------------------------------------------------------------------
 .../query/h2/opt/GridH2TreeIndex.java           | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b21c6208/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
index f324224..1597ce8 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
@@ -22,12 +22,10 @@ import java.util.Arrays;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.NavigableMap;
-import java.util.concurrent.*;
+import java.util.concurrent.ConcurrentNavigableMap;
 import java.util.concurrent.ConcurrentSkipListMap;
 import org.apache.ignite.internal.util.GridEmptyIterator;
-import org.apache.ignite.internal.util.offheap.unsafe.GridOffHeapSnapTreeMap;
 import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeGuard;
-import org.apache.ignite.internal.util.snaptree.SnapTreeMap;
 import org.apache.ignite.internal.util.typedef.internal.SB;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.indexing.IndexingQueryFilter;
@@ -81,7 +79,19 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
 
         final GridH2RowDescriptor desc = tbl.rowDescriptor();
 
-        tree = new ConcurrentSkipListMap<>(this);
+        tree = new ConcurrentSkipListMap<>(
+            new Comparator<GridSearchRowPointer>() {
+                @Override public int compare(GridSearchRowPointer o1, GridSearchRowPointer o2) {
+                    if (o1 instanceof ComparableRow)
+                        return ((ComparableRow)o1).compareTo(o2);
+
+                    if (o2 instanceof ComparableRow)
+                        return -((ComparableRow)o2).compareTo(o1);
+
+                    return compareRows(o1, o2);
+                }
+            }
+        );
 //        tree = desc == null || desc.memory() == null ? new SnapTreeMap<GridSearchRowPointer, GridH2Row>(this) {
 //            @Override protected void afterNodeUpdate_nl(Node<GridSearchRowPointer, GridH2Row> node, Object val) {
 //                if (val != null)
@@ -374,7 +384,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
      * Comparable row with bias. Will be used for queries to have correct bounds (in case of multicolumn index
      * and query on few first columns we will multiple equal entries in tree).
      */
-    private class ComparableRow implements GridSearchRowPointer, Comparable<SearchRow> {
+    private final class ComparableRow implements GridSearchRowPointer, Comparable<SearchRow> {
         /** */
         private final SearchRow row;