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;