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<>();
