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/05/24 18:05:55 UTC

[32/32] ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-5075' into ignite-5075-pds

Merge remote-tracking branch 'remotes/origin/ignite-5075' into ignite-5075-pds

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
#	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ebfbd994
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ebfbd994
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ebfbd994

Branch: refs/heads/ignite-5075-pds
Commit: ebfbd994fc1dc67ca5dab8dd3a2532b124f55927
Parents: bd7fde5 ca176a7
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 24 21:05:07 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 24 21:05:07 2017 +0300

----------------------------------------------------------------------
 examples/config/filesystem/example-igfs.xml     |    4 +
 .../examples/datagrid/CacheQueryExample.java    |    2 +-
 modules/clients/src/test/config/jdbc-config.xml |    6 -
 .../internal/jdbc2/JdbcMetadataSelfTest.java    |    5 +-
 .../internal/jdbc2/JdbcResultSetSelfTest.java   |   24 +-
 .../ignite/jdbc/JdbcMetadataSelfTest.java       |    4 +-
 .../ignite/jdbc/JdbcResultSetSelfTest.java      |  121 +-
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |    3 +
 .../jdbc/thin/JdbcConnectionSelfTest.java       |  195 ++
 .../java/org/apache/ignite/IgniteCache.java     |   13 +
 .../org/apache/ignite/IgniteJdbcThinDriver.java |  312 +++
 .../apache/ignite/IgniteSystemProperties.java   |    2 +-
 .../ignite/binary/BinaryBasicNameMapper.java    |    2 +-
 .../ignite/cache/query/FieldsQueryCursor.java   |   39 +
 .../configuration/AtomicConfiguration.java      |   25 +
 .../configuration/MemoryConfiguration.java      |    3 +-
 .../MemoryPolicyConfiguration.java              |    4 +-
 .../ignite/internal/GridKernalContext.java      |    8 +-
 .../ignite/internal/GridKernalContextImpl.java  |   12 +-
 .../apache/ignite/internal/IgniteKernal.java    |    6 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |    1 +
 .../internal/binary/BinaryClassDescriptor.java  |    1 +
 .../ignite/internal/binary/BinaryContext.java   |   58 +-
 .../internal/binary/BinaryWriterExImpl.java     |   16 +-
 .../GridClientOptimizedMarshaller.java          |    2 +-
 .../GridClientZipOptimizedMarshaller.java       |    2 +-
 .../internal/jdbc/thin/JdbcConnection.java      |  529 +++++
 .../ignite/internal/jdbc/thin/JdbcTcpIo.java    |  207 ++
 .../ignite/internal/jdbc2/JdbcConnection.java   |    3 +-
 .../managers/communication/GridIoManager.java   |  380 ++-
 .../communication/IgniteIoTestMessage.java      |  362 ++-
 .../managers/indexing/GridIndexingManager.java  |   19 +-
 .../optimized/OptimizedClassDescriptor.java     |    2 +-
 .../optimized/OptimizedMarshaller.java          |    2 +-
 .../marshaller/optimized/package-info.java      |   22 +
 .../mem/unsafe/UnsafeMemoryProvider.java        |   18 +-
 .../pagemem/impl/PageMemoryNoStoreImpl.java     |   22 +-
 .../processors/cache/GridCacheMapEntry.java     |    4 +-
 .../processors/cache/IgniteCacheProxy.java      |   22 +-
 .../processors/cache/QueryCursorImpl.java       |   19 +-
 .../IgniteCacheDatabaseSharedManager.java       |   29 +-
 .../cache/database/tree/BPlusTree.java          |   64 +-
 .../cache/query/GridCacheQueryManager.java      |   32 +-
 .../processors/odbc/OdbcNioListener.java        |  242 --
 .../internal/processors/odbc/OdbcProcessor.java |  199 --
 .../odbc/SqlListenerAbstractMessageParser.java  |  265 +++
 .../odbc/SqlListenerAbstractObjectReader.java   |  137 ++
 .../odbc/SqlListenerAbstractObjectWriter.java   |  111 +
 .../processors/odbc/SqlListenerNioListener.java |  263 +++
 .../processors/odbc/SqlListenerProcessor.java   |  191 ++
 .../odbc/SqlListenerRequestHandlerImpl.java     |  494 ++++
 .../processors/odbc/jdbc/JdbcMessageParser.java |   50 +
 .../processors/odbc/jdbc/JdbcObjectReader.java  |   33 +
 .../processors/odbc/jdbc/JdbcObjectWriter.java  |   33 +
 .../processors/odbc/odbc/OdbcMessageParser.java |  249 +-
 .../processors/odbc/odbc/OdbcObjectReader.java  |   33 +
 .../processors/odbc/odbc/OdbcObjectWriter.java  |   32 +
 .../odbc/odbc/OdbcRequestHandler.java           |  513 ----
 .../processors/query/GridQueryIndexing.java     |  100 +-
 .../processors/query/GridQueryProcessor.java    |  312 +--
 .../processors/query/QueryIndexKey.java         |   20 +-
 .../query/QueryTypeDescriptorImpl.java          |   16 +-
 .../processors/query/QueryTypeIdKey.java        |   26 +-
 .../processors/query/QueryTypeNameKey.java      |   12 +-
 .../internal/processors/query/QueryUtils.java   |   14 +-
 .../schema/SchemaIndexCacheVisitorImpl.java     |   12 +-
 .../processors/query/schema/SchemaKey.java      |   59 -
 .../message/SchemaProposeDiscoveryMessage.java  |    7 +-
 .../operation/SchemaAbstractOperation.java      |   27 +-
 .../operation/SchemaIndexAbstractOperation.java |    7 +-
 .../operation/SchemaIndexCreateOperation.java   |    8 +-
 .../operation/SchemaIndexDropOperation.java     |    7 +-
 .../handlers/GridRestCommandHandlerAdapter.java |    3 +
 .../handlers/cache/GridCacheCommandHandler.java |    2 +-
 .../handlers/query/QueryCommandHandler.java     |   13 +-
 .../ignite/internal/util/IgniteUtils.java       |   17 +
 .../apache/ignite/marshaller/Marshaller.java    |    3 -
 .../ignite/marshaller/jdk/JdkMarshaller.java    |    5 +-
 .../spi/indexing/IndexingQueryFilter.java       |    8 +-
 .../apache/ignite/spi/indexing/IndexingSpi.java |   17 +-
 .../spi/indexing/noop/NoopIndexingSpi.java      |    6 +-
 modules/core/src/test/config/example-cache.xml  |    5 +-
 .../src/test/config/spring-start-nodes-attr.xml |    4 +-
 .../core/src/test/config/spring-start-nodes.xml |    4 +-
 .../config/websession/example-cache-base.xml    |    5 +-
 .../IgniteExternalizableAbstractTest.java       |   15 +-
 ...dbcPojoStoreOptimizedMarshallerSelfTest.java |   31 -
 ...ptimizedMarshallerWithSqlEscapeSelfTest.java |   28 -
 .../apache/ignite/igfs/IgfsPathSelfTest.java    |    7 +-
 .../internal/GridLifecycleAwareSelfTest.java    |    3 +-
 .../BinarySimpleNameTestPropertySelfTest.java   |   17 +
 .../managers/GridManagerStopSelfTest.java       |    3 +-
 .../GridDiscoveryManagerAttributesSelfTest.java |    2 +-
 .../optimized/OptimizedMarshallerTest.java      |    8 +
 .../marshaller/optimized/package-info.java      |   22 +
 .../pagemem/impl/PageMemoryNoLoadSelfTest.java  |   31 +-
 .../AtomicCacheAffinityConfigurationTest.java   |  175 ++
 .../CacheStartupInDeploymentModesTest.java      |   37 -
 .../cache/GridCacheEntryMemorySizeSelfTest.java |    2 +-
 ...ridCacheStoreManagerDeserializationTest.java |    4 +-
 .../cache/GridCacheVersionSelfTest.java         |    7 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |    6 +-
 .../distributed/CacheAffinityEarlyTest.java     |    7 +-
 .../CacheGetFutureHangsSelfTest.java            |    6 +-
 .../IgniteCacheCreatePutMultiNodeSelfTest.java  |    7 +-
 .../distributed/IgniteCacheCreatePutTest.java   |    7 +-
 .../IgniteCachePartitionLossPolicySelfTest.java |    1 +
 .../paged/PageEvictionMultinodeTest.java        |   22 +-
 .../cache/query/IndexingSpiQuerySelfTest.java   |   14 +-
 .../cache/query/IndexingSpiQueryTxSelfTest.java |    6 +-
 .../CacheEntryProcessorNonSerializableTest.java |    5 +-
 .../igfs/IgfsAbstractBaseSelfTest.java          |   10 -
 .../processors/igfs/IgfsFileInfoSelfTest.java   |   16 +-
 .../IgfsPrimaryOptimziedMarshallerSelfTest.java |   28 -
 .../odbc/OdbcProcessorValidationSelfTest.java   |  182 --
 .../SqlListenerProcessorValidationSelfTest.java |  184 ++
 .../service/ClosureServiceClientsNodesTest.java |    4 +-
 ...namicProxySerializationMultiJvmSelfTest.java |   13 -
 .../GridMarshallerPerformanceTest.java          |    8 +-
 .../IgniteMessagingWithClientTest.java          |    4 +-
 ...pClientDiscoveryMarshallerCheckSelfTest.java |    4 +-
 .../TcpDiscoveryMarshallerCheckSelfTest.java    |    4 +-
 .../ignite/testframework/GridTestUtils.java     |    2 +-
 .../config/GridTestProperties.java              |    3 +-
 .../configvariations/ConfigVariations.java      |   14 +-
 .../testframework/junits/GridAbstractTest.java  |   33 +
 .../junits/IgniteTestResources.java             |    8 +-
 .../multijvm/IgniteCacheProcessProxy.java       |    8 +
 ...naryObjectsTxDeadlockDetectionTestSuite.java |   37 -
 .../ignite/testsuites/IgniteBasicTestSuite.java |    4 +-
 .../testsuites/IgniteBinaryBasicTestSuite.java  |   14 +-
 .../IgniteBinaryCacheFullApiTestSuite.java      |   37 -
 .../testsuites/IgniteBinaryCacheTestSuite.java  |    4 -
 ...ObjectsCacheDataStructuresSelfTestSuite.java |   42 -
 ...BinaryObjectsCacheExpiryPolicyTestSuite.java |   38 -
 ...gniteBinaryObjectsCacheRestartTestSuite.java |   37 -
 .../IgniteBinaryObjectsCacheTestSuite2.java     |   37 -
 .../IgniteBinaryObjectsCacheTestSuite3.java     |    2 -
 .../IgniteBinaryObjectsCacheTestSuite4.java     |   37 -
 ...IgniteBinaryObjectsComputeGridTestSuite.java |    4 -
 .../IgniteCacheDataStructuresSelfTestSuite.java |    3 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |    4 -
 ...teBasicConfigVariationsFullApiTestSuite.java |    2 +-
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |    3 -
 .../testsuites/IgniteKernalSelfTestSuite.java   |    4 -
 .../IgniteMarshallerSelfTestSuite.java          |    8 +-
 ...essagingConfigVariationFullApiTestSuite.java |    2 +-
 ...ServiceConfigVariationsFullApiTestSuite.java |    2 +-
 .../webapp/META-INF/ignite-webapp-config.xml    |   15 +-
 .../test/config/hadoop-fs-open-test/grid-0.xml  |    3 +-
 .../test/config/hadoop-fs-open-test/grid-1.xml  |    3 +-
 .../test/config/hadoop-fs-open-test/grid-2.xml  |    3 +-
 .../test/config/igfs-cli-config-dual-async.xml  |    3 +-
 .../test/config/igfs-cli-config-dual-sync.xml   |    3 +-
 .../src/test/config/igfs-cli-config-primary.xml |    3 +-
 .../src/test/config/igfs-cli-config-proxy.xml   |    3 +-
 .../IgniteHadoopFileSystemAbstractSelfTest.java |    4 +-
 .../query/h2/DmlStatementsProcessor.java        |   71 +-
 .../query/h2/GridH2ResultSetIterator.java       |  191 --
 .../query/h2/H2ConnectionWrapper.java           |   67 +
 .../processors/query/h2/H2DatabaseType.java     |  161 ++
 .../processors/query/h2/H2FieldsIterator.java   |   50 +
 .../processors/query/h2/H2KeyValueIterator.java |   48 +
 .../query/h2/H2ResultSetIterator.java           |  191 ++
 .../processors/query/h2/H2RowDescriptor.java    |  479 ++++
 .../internal/processors/query/h2/H2Schema.java  |  135 ++
 .../processors/query/h2/H2SqlFieldMetadata.java |  111 +
 .../processors/query/h2/H2StatementCache.java   |   73 +
 .../processors/query/h2/H2TableDescriptor.java  |  345 +++
 .../processors/query/h2/H2TableEngine.java      |   89 +
 .../query/h2/H2TwoStepCachedQuery.java          |   49 +
 .../query/h2/H2TwoStepCachedQueryKey.java       |  107 +
 .../internal/processors/query/h2/H2Utils.java   |  299 +++
 .../processors/query/h2/IgniteH2Indexing.java   | 2206 +++---------------
 .../query/h2/database/H2PkHashIndex.java        |    4 +-
 .../query/h2/database/H2TreeIndex.java          |    4 +-
 .../query/h2/ddl/DdlStatementsProcessor.java    |   25 +-
 .../query/h2/opt/GridH2CollocationModel.java    |    6 +-
 .../query/h2/opt/GridH2IndexBase.java           |   12 +-
 .../processors/query/h2/opt/GridH2Table.java    |  149 +-
 .../query/h2/opt/GridH2TreeIndex.java           |    2 +-
 .../query/h2/opt/GridLuceneIndex.java           |   15 +-
 .../query/h2/sql/GridSqlDropIndex.java          |   14 +-
 .../query/h2/sql/GridSqlQueryParser.java        |    2 +-
 .../query/h2/sql/GridSqlQuerySplitter.java      |    4 +-
 .../query/h2/twostep/GridMapQueryExecutor.java  |   10 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |   31 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |   12 +-
 .../cache/IgniteCacheNoClassQuerySelfTest.java  |    4 +-
 .../cache/SqlFieldsQuerySelfTest.java           |   12 +-
 .../DynamicIndexAbstractBasicSelfTest.java      |   26 +-
 .../DynamicIndexAbstractConcurrentSelfTest.java |   74 +-
 .../cache/index/SchemaExchangeSelfTest.java     |    2 +-
 .../query/IgniteQueryDedicatedPoolTest.java     |    6 +-
 .../query/IgniteSqlSegmentedIndexSelfTest.java  |   25 +
 .../h2/GridIndexingSpiAbstractSelfTest.java     |  140 +-
 .../h2/sql/AbstractH2CompareQueryTest.java      |    4 +-
 .../query/h2/sql/GridQueryParsingTest.java      |    6 +-
 .../FetchingQueryCursorStressTest.java          |    4 +-
 .../IgniteBinaryCacheQueryTestSuite.java        |    4 -
 .../IgniteBinaryCacheQueryTestSuite2.java       |    4 -
 .../IgniteBinaryCacheQueryTestSuite3.java       |   39 -
 .../IgniteBinaryCacheQueryTestSuite4.java       |   39 -
 .../cpp/odbc/include/ignite/odbc/message.h      |   10 +
 .../Apache.Ignite.Core.Tests/MarshallerTest.cs  |    2 +-
 .../GridSpringBeanSerializationSelfTest.java    |   15 +-
 .../webapp2/META-INF/ignite-webapp-config.xml   |   15 +-
 .../ignite-int-max-values-onheap-config.xml     |    4 +-
 modules/yardstick/config/ignite-jdbc-config.xml |    4 +-
 209 files changed, 7894 insertions(+), 5036 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
index f600066,4b9c0e2..fbb608b
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
@@@ -237,17 -231,19 +231,17 @@@ public interface GridQueryIndexing 
      /**
       * Rebuilds all indexes of given type from hash index.
       *
-      * @param spaceName Space name.
+      * @param cacheName Cache name.
 -     * @param type Type descriptor.
       * @throws IgniteCheckedException If failed.
       */
-     public void rebuildIndexesFromHash(String spaceName) throws IgniteCheckedException;
+     public void rebuildIndexesFromHash(String cacheName, GridQueryTypeDescriptor type) throws IgniteCheckedException;
  
      /**
       * Marks all indexes of given type for rebuild from hash index, making them unusable until rebuild finishes.
       *
-      * @param spaceName Space name.
+      * @param cacheName Cache name.
 -     * @param type Type descriptor.
       */
-     public void markForRebuildFromHash(String spaceName);
+     public void markForRebuildFromHash(String cacheName, GridQueryTypeDescriptor type);
  
      /**
       * Returns backup filter.

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 62242f1,a40c9e9..fb70a1c
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@@ -693,17 -696,15 +695,17 @@@ public class GridQueryProcessor extend
                      QueryTypeDescriptorImpl oldDesc = tblTypMap.put(desc.tableName(), desc);
  
                      if (oldDesc != null)
-                         throw new IgniteException("Duplicate table name [cache=" + space +
+                         throw new IgniteException("Duplicate table name [cache=" + cacheName +
 -                            ", tblName=" + desc.tableName() + ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
 +                            ",tblName=" + desc.tableName() +
 +                            ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
  
                      for (String idxName : desc.indexes().keySet()) {
                          oldDesc = idxTypMap.put(idxName, desc);
  
                          if (oldDesc != null)
-                             throw new IgniteException("Duplicate index name [cache=" + space +
+                             throw new IgniteException("Duplicate index name [cache=" + cacheName +
 -                                ", idxName=" + idxName + ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
 +                                ",idxName=" + idxName +
 +                                ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
                      }
                  }
  
@@@ -1445,7 -1448,10 +1449,7 @@@
       * @param desc Type descriptor.
       * @return Future that will be completed when rebuilding of all indexes is finished.
       */
-     private IgniteInternalFuture<Object> rebuildIndexesFromHash(@Nullable final String space, @Nullable final QueryTypeDescriptorImpl desc) {
 -    private IgniteInternalFuture<Object> rebuildIndexesFromHash(
 -        @Nullable final String cacheName,
 -        @Nullable final QueryTypeDescriptorImpl desc
 -    ) {
++    private IgniteInternalFuture<Object> rebuildIndexesFromHash(@Nullable final String cacheName, @Nullable final QueryTypeDescriptorImpl desc) {
          if (idx == null)
              return new GridFinishedFuture<>(new IgniteCheckedException("Indexing is disabled."));
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index c3de1f7,4e9d0c7..d57c0f1
mode 100755,100644..100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/test/java/org/apache/ignite/testframework/config/GridTestProperties.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index b3b0881,8e6eeba..2556312
--- 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
@@@ -85,8 -71,8 +72,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
  import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
  import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
+ import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
  import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
  import org.apache.ignite.internal.processors.cache.query.GridCacheQueryMarshallable;
  import org.apache.ignite.internal.processors.cache.query.GridCacheTwoStepQuery;
  import org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode;
@@@ -2121,50 -1851,67 +1853,66 @@@ public class IgniteH2Indexing implement
      /**
       * Rebuild indexes from hash index.
       *
-      * @param spaceName Space name.
+      * @param cacheName Cache name.
 -     * @param type Type descriptor.
       * @throws IgniteCheckedException If failed.
       */
-     @Override public void rebuildIndexesFromHash(String spaceName) throws IgniteCheckedException {
-         int cacheId = CU.cacheId(spaceName);
+     @SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
+     @Override public void rebuildIndexesFromHash(String cacheName,
+         GridQueryTypeDescriptor type) throws IgniteCheckedException {
+         H2TableDescriptor tbl = tableDescriptor(type.name(), cacheName);
+ 
+         if (tbl == null)
+             return;
+ 
+         assert tbl.table() != null;
+ 
+         assert tbl.table().rebuildFromHashInProgress();
+ 
+         H2PkHashIndex hashIdx = tbl.primaryKeyHashIndex();
+ 
+         Cursor cursor = hashIdx.find((Session)null, null, null);
+ 
+         int cacheId = CU.cacheId(tbl.schema().cacheName());
  
          GridCacheContext cctx = ctx.cache().context().cacheContext(cacheId);
  
-         IgniteCacheOffheapManager offheapMgr = cctx.group().offheap();
+         while (cursor.next()) {
+             CacheDataRow dataRow = (CacheDataRow)cursor.get();
  
-         for (int p = 0; p < cctx.affinity().partitions(); p++) {
-             try (GridCloseableIterator<KeyCacheObject> keyIter = offheapMgr.cacheKeysIterator(cctx.cacheId(), p)) {
-                 while (keyIter.hasNext()) {
-                     cctx.shared().database().checkpointReadLock();
+             boolean done = false;
  
-                     try {
-                         KeyCacheObject key = keyIter.next();
+             while (!done) {
+                 GridCacheEntryEx entry = cctx.cache().entryEx(dataRow.key());
  
-                         while (true) {
-                             try {
-                                 GridCacheEntryEx entry = cctx.isNear() ?
-                                     cctx.near().dht().entryEx(key) : cctx.cache().entryEx(key);
+                 try {
+                     synchronized (entry) {
+                         // TODO : How to correctly get current value and link here?
  
-                                 entry.ensureIndexed();
+                         GridH2Row row = tbl.table().rowDescriptor().createRow(entry.key(), entry.partition(),
 -                            dataRow.value(), entry.version(), entry.expireTime());
++                                dataRow.value(), entry.version(), entry.expireTime());
  
-                                 break;
-                             }
-                             catch (GridCacheEntryRemovedException ignore) {
-                                 // Retry.
-                             }
-                             catch (GridDhtInvalidPartitionException ignore) {
-                                 break;
-                             }
+                         row.link(dataRow.link());
+ 
+                         List<Index> indexes = tbl.table().getAllIndexes();
+ 
+                         for (int i = 2; i < indexes.size(); i++) {
+                             Index idx = indexes.get(i);
+ 
+                             if (idx instanceof H2TreeIndex)
+                                 ((H2TreeIndex)idx).put(row);
                          }
-                     }
-                     finally {
-                         cctx.shared().database().checkpointReadUnlock();
+ 
+                         done = true;
                      }
                  }
+                 catch (GridCacheEntryRemovedException e) {
+                     // No-op
+                 }
              }
+ 
          }
  
-         for (TableDescriptor tblDesc : tables(spaceName))
-             tblDesc.tbl.markRebuildFromHashInProgress(false);
+         tbl.table().markRebuildFromHashInProgress(false);
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------