You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/02/03 12:50:17 UTC
ignite git commit: ignite-4652
Repository: ignite
Updated Branches:
refs/heads/ignite-4652 bac9b690e -> 261ddbd4a
ignite-4652
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/261ddbd4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/261ddbd4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/261ddbd4
Branch: refs/heads/ignite-4652
Commit: 261ddbd4a06d50688c8d00fb39e59227a1e6ec1e
Parents: bac9b69
Author: sboikov <sb...@gridgain.com>
Authored: Fri Feb 3 15:50:10 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Feb 3 15:50:10 2017 +0300
----------------------------------------------------------------------
.../cache/database/tree/BPlusTree.java | 7 ++++
.../apache/ignite/internal/util/IgniteTree.java | 40 ++++++++++++++++++++
.../query/h2/opt/GridH2TreeIndex.java | 7 ++++
3 files changed, 54 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/261ddbd4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index a0dff8c..423acf2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -1669,6 +1669,13 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
/**
* {@inheritDoc}
*/
+ @Override public void invoke(L key, InvokeClosure<L> c) throws IgniteCheckedException {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override public final T put(T row) throws IgniteCheckedException {
return put(row, true);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/261ddbd4/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
index 8dcd205..faf4034 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.util;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.util.lang.GridCursor;
+import org.jetbrains.annotations.Nullable;
/**
* Interface for ignite internal tree.
@@ -34,6 +35,13 @@ public interface IgniteTree<L, T> {
public T put(T val) throws IgniteCheckedException;
/**
+ * @param key Key.
+ * @param c Closure.
+ * @throws IgniteCheckedException If failed.
+ */
+ public void invoke(L key, InvokeClosure<L> c) throws IgniteCheckedException;
+
+ /**
* Returns the value to which the specified key is mapped, or {@code null} if this tree contains no mapping for the
* key.
*
@@ -70,4 +78,36 @@ public interface IgniteTree<L, T> {
* @throws IgniteCheckedException If failed.
*/
public long size() throws IgniteCheckedException;
+
+ /**
+ *
+ */
+ interface InvokeClosure<T> {
+ /**
+ *
+ * @param row Old row or {@code null} if old row not found.
+ * @return Operation.
+ * @throws IgniteCheckedException If failed.
+ */
+ OperationType call(@Nullable T row) throws IgniteCheckedException;
+
+ /**
+ * @return New row for {@link OperationType#UPDATE} operation.
+ */
+ T newRow();
+ }
+
+ /**
+ *
+ */
+ enum OperationType {
+ /** */
+ NOOP,
+
+ /** */
+ REMOVE,
+
+ /** */
+ UPDATE
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/261ddbd4/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 729309a..2b47733 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
@@ -498,6 +498,13 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
this.tree = tree;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override public void invoke(GridSearchRowPointer key, InvokeClosure<GridSearchRowPointer> c) {
+ throw new UnsupportedOperationException();
+ }
+
/** {@inheritDoc} */
@Override public GridH2Row put(GridH2Row val) {
return tree.put(val, val);