GG-11414 - Fixed cursor issue with expire time
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8852c80a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8852c80a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8852c80a Branch: refs/heads/ignite-3477 Commit: 8852c80a0c6b52531ae6a287344f1ab776e3b32f Parents: 1ffd04a Author: Alexey Goncharuk <alexey.goncha...@gmail.com> Authored: Thu Dec 29 16:52:59 2016 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Thu Dec 29 16:52:59 2016 +0300 ---------------------------------------------------------------------- .../query/h2/database/H2TreeIndex.java | 36 ++++++++++++-------- .../query/h2/opt/GridH2IndexBase.java | 2 +- 2 files changed, 23 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/8852c80a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java index f685f3a..c1eb986 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java @@ -79,18 +79,24 @@ public class H2TreeIndex extends GridH2IndexBase { name = BPlusTree.treeName(name, "H2Tree"); - IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database(); - - RootPage page = cctx.offheap().rootPageForIndex(name); - - tree = new H2Tree(name, cctx.offheap().reuseListForIndex(name), cctx.cacheId(), - dbMgr.pageMemory(), cctx.shared().wal(), cctx.offheap().globalRemoveId(), - tbl.rowFactory(), page.pageId().pageId(), page.isAllocated()) { - @Override protected int compare(BPlusIO<SearchRow> io, ByteBuffer buf, int idx, SearchRow row) - throws IgniteCheckedException { - return compareRows(getRow(io, buf, idx), row); - } - }; + if (!cctx.kernalContext().clientNode()) { + IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database(); + + RootPage page = cctx.offheap().rootPageForIndex(name); + + tree = new H2Tree(name, cctx.offheap().reuseListForIndex(name), cctx.cacheId(), + dbMgr.pageMemory(), cctx.shared().wal(), cctx.offheap().globalRemoveId(), + tbl.rowFactory(), page.pageId().pageId(), page.isAllocated()) { + @Override + protected int compare(BPlusIO<SearchRow> io, ByteBuffer buf, int idx, SearchRow row) + throws IgniteCheckedException { + return compareRows(getRow(io, buf, idx), row); + } + }; + } + else + // We need indexes on the client node, but index will not contain any data. + tree = null; initDistributedJoinMessaging(tbl); } @@ -194,9 +200,11 @@ public class H2TreeIndex extends GridH2IndexBase { /** {@inheritDoc} */ @Override public void destroy() { try { - tree.destroy(); + if (!cctx.kernalContext().clientNode()) { + tree.destroy(); - cctx.offheap().dropRootPageForIndex(tree.getName()); + cctx.offheap().dropRootPageForIndex(tree.getName()); + } } catch (IgniteCheckedException e) { throw new IgniteException(e); http://git-wip-us.apache.org/repos/asf/ignite/blob/8852c80a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java index 56c9edc..bd569df 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java @@ -1525,7 +1525,7 @@ public abstract class GridH2IndexBase extends BaseIndex { */ @SuppressWarnings("unchecked") protected boolean accept(GridH2Row row) { - if (row.expireTime() <= time) + if (row.expireTime() != 0 && row.expireTime() <= time) return false; if (fltr == null)