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 2016/02/01 02:52:23 UTC
[2/2] ignite git commit: sql-store-idx - replace on update
sql-store-idx - replace on update
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6ff77663
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6ff77663
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6ff77663
Branch: refs/heads/sql-store
Commit: 6ff77663b91e85ae68a11fca8ec2b40c7cbe6a4b
Parents: a83ac2c
Author: S.Vladykin <sv...@gridgain.com>
Authored: Mon Feb 1 03:30:35 2016 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Mon Feb 1 03:30:35 2016 +0300
----------------------------------------------------------------------
.../processors/query/h2/IgniteH2Indexing.java | 32 +++++++++++++++-----
.../processors/query/h2/opt/GridH2Row.java | 10 ++++--
.../query/h2/opt/GridH2RowDescriptor.java | 4 ++-
.../processors/query/h2/opt/GridH2Table.java | 9 ++----
4 files changed, 37 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/6ff77663/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 4cd7cb6..79b081a 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -2441,21 +2441,39 @@ public class IgniteH2Indexing implements GridQueryIndexing {
}
/** {@inheritDoc} */
- @Override public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, long expirationTime)
- throws IgniteCheckedException {
+ @Override public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, GridCacheVersion ver,
+ long expirationTime) throws IgniteCheckedException {
+ GridH2Row row;
+
try {
if (val == null) // Only can happen for remove operation, can create simple search row.
- return new GridH2Row(wrap(key, keyType), null);
-
- return schema.offheap == null ?
- new GridH2KeyValueRowOnheap(this, key, keyType, val, valType, expirationTime) :
- new GridH2KeyValueRowOffheap(this, key, keyType, val, valType, expirationTime);
+ row = new GridH2Row(wrap(key, keyType), null);
+ else
+ row = schema.offheap == null ?
+ new GridH2KeyValueRowOnheap(this, key, keyType, val, valType, expirationTime) :
+ new GridH2KeyValueRowOffheap(this, key, keyType, val, valType, expirationTime);
}
catch (ClassCastException e) {
throw new IgniteCheckedException("Failed to convert key to SQL type. " +
"Please make sure that you always store each value type with the same key type " +
"or configure key type as common super class for all actual keys for this value type.", e);
}
+
+ if (val != null) {
+ row.ver = ver;
+
+ CacheObjectContext coctx = cacheContext(schema.spaceName).cacheObjectContext();
+
+ try {
+ row.key = key.valueBytes(coctx);
+ row.val = val.valueBytes(coctx);
+ }
+ catch (IgniteCheckedException e) {
+ throw new IgniteException(e);
+ }
+ }
+
+ return row;
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/6ff77663/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Row.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Row.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Row.java
index a1aa728..d5b5e0d 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Row.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Row.java
@@ -17,7 +17,7 @@
package org.apache.ignite.internal.processors.query.h2.opt;
-import org.apache.ignite.internal.processors.cache.CacheObject;
+import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.h2.result.Row;
import org.h2.value.Value;
@@ -29,10 +29,14 @@ public class GridH2Row extends Row implements GridSearchRowPointer {
public long link; // TODO remove
/** */
- public CacheObject key; // TODO remove
+ public byte[] key; // TODO remove
/** */
- public CacheObject val; // TODO remove
+ public byte[] val; // TODO remove
+
+ /** */
+ public GridCacheVersion ver; // TODO remove
+
/**
* @param data Column values.
http://git-wip-us.apache.org/repos/asf/ignite/blob/6ff77663/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
index 80dcfcb..530f68c 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.query.h2.opt;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.processors.cache.CacheObject;
+import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
import org.apache.ignite.internal.util.offheap.unsafe.GridOffHeapSmartPointerFactory;
import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeGuard;
@@ -40,11 +41,12 @@ public interface GridH2RowDescriptor extends GridOffHeapSmartPointerFactory<Grid
*
* @param key Key.
* @param val Value.
+ * @param ver Version.
* @param expirationTime Expiration time in millis.
* @return Row.
* @throws IgniteCheckedException If failed.
*/
- public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, long expirationTime)
+ public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, GridCacheVersion ver, long expirationTime)
throws IgniteCheckedException;
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/6ff77663/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
index 4a00296..b39cce0 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
@@ -169,7 +169,7 @@ public class GridH2Table extends TableBase {
assert desc != null;
- GridH2Row searchRow = desc.createRow(key, null, 0);
+ GridH2Row searchRow = desc.createRow(key, null, null, 0);
GridUnsafeMemory mem = desc.memory();
@@ -335,12 +335,7 @@ public class GridH2Table extends TableBase {
throws IgniteCheckedException {
assert desc != null;
- // TODO use version here.
-
- GridH2Row row = desc.createRow(key, val, expirationTime);
-
- row.key = key;
- row.val = val;
+ GridH2Row row = desc.createRow(key, val, ver, expirationTime);
return doUpdate(row, rmv);
}