http://git-wip-us.apache.org/repos/asf/ignite/blob/420cabac/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 d8d283b..52b9b5f 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
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.query.h2.opt;
 
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
 import org.h2.result.Row;
 import org.h2.value.Value;

http://git-wip-us.apache.org/repos/asf/ignite/blob/420cabac/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 873af99..2fba9ed 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
@@ -30,10 +30,11 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+import org.apache.ignite.internal.processors.query.h2.database.DataStore;
+import org.apache.ignite.internal.processors.query.h2.database.H2RowStore;
 import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.lang.IgniteBiTuple;
@@ -91,6 +92,9 @@ public class GridH2Table extends TableBase {
     /** */
     private final boolean snapshotEnabled;
 
+    /** */
+    private final H2RowStore dataStore;
+
     /**
      * Creates table.
      *
@@ -108,6 +112,7 @@ public class GridH2Table extends TableBase {
         this.desc = desc;
         this.spaceName = spaceName;
 
+        dataStore = idxsFactory.createDataStore(this);
         idxs = idxsFactory.createIndexes(this);
 
         assert idxs != null;
@@ -405,6 +410,14 @@ public class GridH2Table extends TableBase {
             desc.guard().begin();
 
         try {
+            if (dataStore != null) {
+                assert row.link == 0;
+
+                dataStore.writeRowData(row);
+
+                assert row.link != 0;
+            }
+
             GridH2IndexBase pk = pk();
 
             if (!del) {
@@ -680,6 +693,13 @@ public class GridH2Table extends TableBase {
     }
 
     /**
+     * @return Data store.
+     */
+    public DataStore<GridH2Row> dataStore() {
+        return dataStore;
+    }
+
+    /**
      * H2 Table engine.
      */
     @SuppressWarnings({"PublicInnerClass", 
"FieldAccessedSynchronizedAndUnsynchronized"})
@@ -750,6 +770,12 @@ public class GridH2Table extends TableBase {
          * @return List of indexes.
          */
         ArrayList<Index> createIndexes(GridH2Table tbl);
+
+        /**
+         * @param tbl Table.
+         * @return Data store.
+         */
+        H2RowStore createDataStore(GridH2Table tbl);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/420cabac/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
index e70ee8d..d880dd5 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
@@ -33,6 +33,7 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.ignite.internal.processors.query.h2.database.H2RowStore;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.h2.Driver;
 import org.h2.index.Index;
@@ -87,6 +88,10 @@ public class GridH2TableSelfTest extends 
GridCommonAbstractTest {
         conn = DriverManager.getConnection(DB_URL);
 
         tbl = GridH2Table.Engine.createTable(conn, CREATE_TABLE_SQL, null, new 
GridH2Table.IndexesFactory() {
+            @Override public H2RowStore createDataStore(GridH2Table tbl) {
+                return null;
+            }
+
             @Override public ArrayList<Index> createIndexes(GridH2Table tbl) {
                 ArrayList<Index> idxs = new ArrayList<>();
 

Reply via email to