You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2021/10/26 17:49:25 UTC

[ignite] 01/01: Merge remote-tracking branch 'remotes/upstream/master' into sql-calcite

This is an automated email from the ASF dual-hosted git repository.

alexpl pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit ff9414fbdfbc3762e0ea57f9dd078336a19b3ee5
Merge: 9fa2d2d 2752bb5
Author: Aleksey Plekhanov <pl...@gmail.com>
AuthorDate: Tue Oct 26 20:27:59 2021 +0300

    Merge remote-tracking branch 'remotes/upstream/master' into sql-calcite
    
    # Conflicts:
    #	modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryTypeDescriptorImpl.java

 .gitignore                                         |    1 +
 .travis.yml                                        |    2 +-
 assembly/dependencies-apache-ignite-lgpl.xml       |   52 +-
 assembly/dependencies-apache-ignite-slim.xml       |  115 +--
 assembly/dependencies-apache-ignite.xml            |   68 +-
 assembly/dependencies-sqlline.xml                  |    2 +-
 assembly/dependencies-visor-console.xml            |    6 +-
 assembly/libs/README.txt                           |    3 -
 assembly/release-apache-ignite-base.xml            |   26 +-
 config/ignite-log4j.xml                            |   17 +
 docs/_config.yml                                   |    2 +-
 docs/_docs/SQL/sql-transactions.adoc               |    2 +-
 docs/_docs/clustering/discovery-in-the-cloud.adoc  |    6 +-
 docs/_docs/code-snippets/dotnet/dotnet.csproj      |    2 +-
 docs/_docs/code-snippets/java/pom.xml              |   42 +-
 docs/_docs/configuring-caches/atomicity-modes.adoc |    6 +-
 docs/_docs/data-rebalancing.adoc                   |    4 +
 .../ignite-for-spark/overview.adoc                 |    4 +-
 .../spring/spring-caching.adoc                     |  382 ++++++-
 .../spring/spring-tx.adoc                          |   90 +-
 docs/_docs/installation/deb-rpm.adoc               |    5 +-
 .../installation/installing-using-docker.adoc      |    2 +-
 docs/_docs/monitoring-metrics/new-metrics.adoc     |    3 +
 docs/_docs/setup.adoc                              |   36 +-
 docs/_docs/transactions/mvcc.adoc                  |    2 +-
 examples/pom-standalone-lgpl.xml                   |   36 +-
 examples/pom-standalone.xml                        |   36 +-
 examples/pom.xml                                   |   42 +-
 .../client/ClientKubernetesPutGetExample.java      |    2 +-
 .../examples/client/ClientPutGetExample.java       |    3 -
 .../store/spring/CacheSpringPersonStore.java       |  118 ---
 .../store/spring/CacheSpringStoreExample.java      |  160 ---
 modules/aop/pom.xml                                |   10 +-
 modules/apache-license-gen/pom.xml                 |    2 +-
 modules/aws/README.txt                             |   32 -
 modules/aws/licenses/apache-2.0.txt                |  202 ----
 modules/aws/pom.xml                                |  211 ----
 .../ignite/spi/checkpoint/s3/S3CheckpointData.java |  146 ---
 .../ignite/spi/checkpoint/s3/S3CheckpointSpi.java  |  830 ---------------
 .../spi/checkpoint/s3/S3CheckpointSpiMBean.java    |   71 --
 .../ignite/spi/checkpoint/s3/S3TimeData.java       |   79 --
 .../tcp/ipfinder/elb/TcpDiscoveryAlbIpFinder.java  |  218 ----
 .../tcp/ipfinder/elb/TcpDiscoveryElbIpFinder.java  |  186 ----
 .../tcp/ipfinder/s3/TcpDiscoveryS3IpFinder.java    |  501 ---------
 .../s3/encrypt/AsymmetricKeyEncryptionService.java |  109 --
 .../s3/encrypt/AwsKmsEncryptionService.java        |  154 ---
 .../tcp/ipfinder/s3/encrypt/EncryptionService.java |   47 -
 .../s3/encrypt/SymmetricKeyEncryptionService.java  |   98 --
 .../tcp/ipfinder/s3/encrypt/package-info.java      |   21 -
 .../discovery/tcp/ipfinder/s3/package-info.java    |   21 -
 .../checkpoint/s3/S3CheckpointManagerSelfTest.java |   73 --
 .../spi/checkpoint/s3/S3CheckpointSpiSelfTest.java |  254 -----
 ...eckpointSpiStartStopBucketEndpointSelfTest.java |   51 -
 ...CheckpointSpiStartStopSSEAlgorithmSelfTest.java |   51 -
 .../s3/S3CheckpointSpiStartStopSelfTest.java       |   51 -
 .../checkpoint/s3/S3SessionCheckpointSelfTest.java |   56 -
 .../elb/TcpDiscoveryAlbIpFinderSelfTest.java       |   81 --
 .../elb/TcpDiscoveryElbIpFinderSelfTest.java       |   83 --
 .../s3/TcpDiscoveryS3IpFinderAbstractSelfTest.java |  168 ---
 ...ryS3IpFinderAwsCredentialsProviderSelfTest.java |   49 -
 ...pDiscoveryS3IpFinderAwsCredentialsSelfTest.java |   48 -
 ...pDiscoveryS3IpFinderBucketEndpointSelfTest.java |   57 -
 ...veryS3IpFinderClientSideEncryptionSelfTest.java |   72 --
 .../TcpDiscoveryS3IpFinderKeyPrefixSelfTest.java   |   70 --
 ...TcpDiscoveryS3IpFinderSSEAlgorithmSelfTest.java |   50 -
 .../tcp/ipfinder/s3/client/DummyObjectListing.java |   83 --
 .../ipfinder/s3/client/DummyObjectListingTest.java |   70 --
 .../tcp/ipfinder/s3/client/DummyS3Client.java      | 1085 --------------------
 .../tcp/ipfinder/s3/client/DummyS3ClientTest.java  |  169 ---
 .../tcp/ipfinder/s3/client/package-info.java       |   22 -
 .../AsymmetricKeyEncryptionServiceTest.java        |   97 --
 .../s3/encrypt/AwsKmsEncryptionServiceTest.java    |   73 --
 .../ipfinder/s3/encrypt/MockEncryptionService.java |   66 --
 .../s3/encrypt/MockEncryptionServiceTest.java      |   49 -
 .../encrypt/SymmetricKeyEncryptionServiceTest.java |   54 -
 .../tcp/ipfinder/s3/encrypt/package-info.java      |   21 -
 .../discovery/tcp/ipfinder/s3/package-info.java    |   23 -
 .../ignite/testsuites/IgniteS3TestSuite.java       |  108 --
 modules/azure/README.txt                           |   32 -
 modules/azure/pom.xml                              |  385 -------
 .../azure/TcpDiscoveryAzureBlobStoreIpFinder.java  |  350 -------
 .../spi/discovery/tcp/ipfinder/package-info.java   |   23 -
 ...TcpDiscoveryAzureBlobStoreIpFinderSelfTest.java |  100 --
 .../discovery/tcp/ipfinder/azure/package-info.java |   21 -
 .../ignite/testsuites/IgniteAzureTestSuite.java    |   61 --
 modules/benchmarks/pom.xml                         |    6 +-
 modules/calcite/pom.xml                            |    2 +-
 .../integration/IndexDdlIntegrationTest.java       |   29 +-
 .../integration/KillCommandDdlIntegrationTest.java |   10 +-
 modules/cassandra/pom.xml                          |    4 +-
 modules/cassandra/serializers/pom.xml              |    8 +-
 modules/cassandra/store/pom.xml                    |   14 +-
 modules/clients/pom.xml                            |   20 +-
 .../client/suite/IgniteClientTestSuite.java        |    2 +
 .../JettyRestProcessorCacheNodeFilterTest.java     |  135 +++
 modules/cloud/pom.xml                              |    8 +-
 modules/codegen/pom.xml                            |    6 +-
 modules/compatibility/pom.xml                      |   10 +-
 modules/compress/pom.xml                           |   12 +-
 modules/control-utility/pom.xml                    |   16 +-
 .../GridCommandHandlerIndexForceRebuildTest.java   |   12 +-
 .../ignite/util/KillCommandsCommandShTest.java     |    4 +-
 .../apache/ignite/util/SystemViewCommandTest.java  |   11 +-
 modules/core/pom.xml                               |    6 +-
 .../main/java/org/apache/ignite/IgniteCache.java   |    2 +
 .../apache/ignite/cache/CacheAtomicityMode.java    |    5 +-
 .../java/org/apache/ignite/cache/CacheMode.java    |    4 +
 .../org/apache/ignite/cache/query/IndexQuery.java  |   80 +-
 .../org/apache/ignite/cdc/CdcConfiguration.java    |   23 +
 .../java/org/apache/ignite/cdc/CdcConsumer.java    |    8 +-
 .../org/apache/ignite/client/IgniteClient.java     |    5 +
 .../ignite/configuration/CacheConfiguration.java   |    6 +-
 .../events/CacheConsistencyViolationEvent.java     |   15 +
 .../org/apache/ignite/internal/IgnitionEx.java     |    9 +-
 .../cache/query/RangeIndexQueryCriterion.java      |    5 +
 .../cache/query/index/IndexDefinition.java         |    6 +-
 .../cache/query/index/IndexQueryProcessor.java     |  503 ++++++---
 .../query/index/sorted/IndexKeyDefinition.java     |   11 +-
 .../query/index/sorted/IndexRowComparator.java     |   12 +-
 .../query/index/sorted/IndexRowCompartorImpl.java  |   16 +-
 .../query/index/sorted/inline/InlineIndexImpl.java |    2 +-
 .../sorted/inline/InlineIndexKeyTypeRegistry.java  |    5 +-
 .../query/index/sorted/inline/InlineIndexTree.java |   10 +-
 .../sorted/inline/InlineObjectBytesDetector.java   |   13 +-
 .../index/sorted/inline/InlineRecommender.java     |    4 +-
 .../org/apache/ignite/internal/cdc/CdcMain.java    |  243 +++--
 .../ignite/internal/cdc/WalRecordsConsumer.java    |   29 +-
 .../internal/client/thin/TcpIgniteClient.java      |    2 +-
 .../DistributedTransactionConfiguration.java       |  357 +++++++
 .../managers/collision/GridCollisionManager.java   |    4 +-
 .../managers/encryption/GridEncryptionManager.java |   13 +
 .../managers/encryption/GroupKeyChangeProcess.java |    6 +
 .../processors/cache/CacheMetricsImpl.java         |   60 ++
 .../processors/cache/CacheObjectUtils.java         |    2 +-
 .../processors/cache/GridCacheAdapter.java         |   96 +-
 .../processors/cache/GridCacheProcessor.java       |   41 +-
 .../processors/cache/IgniteCacheProxyImpl.java     |    2 +-
 .../cache/LongOperationsDumpSettingsClosure.java   |   53 -
 .../LongRunningTxTimeDumpSettingsClosure.java      |   73 --
 .../TxOwnerDumpRequestAllowedSettingClosure.java   |   56 -
 .../GridNearReadRepairAbstractFuture.java          |    1 +
 .../cache/persistence/file/EncryptedFileIO.java    |   78 +-
 .../persistence/file/EncryptedFileIOFactory.java   |   15 +-
 .../persistence/file/FilePageStoreManager.java     |   29 +-
 .../snapshot/IgniteSnapshotManager.java            |   57 +-
 .../persistence/snapshot/SnapshotFutureTask.java   |   21 +-
 .../snapshot/SnapshotRestoreProcess.java           |   10 +
 .../cache/persistence/wal/FileDescriptor.java      |    5 +
 .../persistence/wal/FileWriteAheadLogManager.java  |    3 +-
 .../wal/reader/StandaloneGridKernalContext.java    |   21 +-
 .../GridCacheDistributedFieldsQueryFuture.java     |   10 +-
 .../query/GridCacheDistributedQueryFuture.java     |  337 +++---
 .../query/GridCacheDistributedQueryManager.java    |  230 +----
 .../query/GridCacheLocalFieldsQueryFuture.java     |    2 +-
 .../cache/query/GridCacheLocalQueryFuture.java     |   35 +-
 .../cache/query/GridCacheLocalQueryManager.java    |    5 -
 .../cache/query/GridCacheQueryAdapter.java         |   13 +-
 .../cache/query/GridCacheQueryFutureAdapter.java   |  358 ++-----
 .../cache/query/GridCacheQueryManager.java         |   45 +-
 .../cache/query/GridCacheQueryRequest.java         |   85 +-
 .../processors/cache/query/IndexQueryDesc.java     |    5 +-
 .../processors/cache/query/ScoredCacheEntry.java}  |   68 +-
 .../cache/query/reducer/CacheQueryReducer.java     |   70 ++
 .../query/reducer/MergeSortCacheQueryReducer.java  |  104 ++
 .../processors/cache/query/reducer/NodePage.java   |   80 ++
 .../cache/query/reducer/NodePageStream.java        |  127 +++
 .../query/reducer/UnsortedCacheQueryReducer.java   |   83 ++
 .../cache/transactions/IgniteTxManager.java        |  187 ++--
 .../distributed/DistributedDoubleProperty.java}    |   24 +-
 .../distributed/DistributedIntegerProperty.java}   |   24 +-
 .../datastructures/DataStructuresProcessor.java    |  166 +--
 .../processors/metric/GridMetricManager.java       |    4 +
 .../processors/odbc/ClientListenerNioListener.java |    2 +-
 .../processors/odbc/ClientListenerProcessor.java   |    2 +
 .../internal/processors/odbc/SqlListenerUtils.java |   31 +
 .../processors/odbc/jdbc/JdbcRequestHandler.java   |   23 +-
 .../processors/odbc/odbc/OdbcRequestHandler.java   |   20 +-
 .../internal/processors/odbc/odbc/OdbcUtils.java   |   18 -
 .../platform/client/ClientRequestHandler.java      |   16 +-
 .../processors/query/GridQueryProcessor.java       |   16 +-
 .../processors/query/QueryTypeDescriptorImpl.java  |   17 +
 .../stat/config/StatisticsColumnConfiguration.java |    6 +-
 .../stat/config/StatisticsColumnOverrides.java     |    8 +-
 .../stat/config/StatisticsObjectConfiguration.java |   38 +-
 .../processors/rest/GridRestProcessor.java         |    7 +-
 .../handlers/cache/GridCacheCommandHandler.java    |   24 +-
 .../internal/sql/command/SqlAnalyzeCommand.java    |    3 +-
 .../suggestions/GridPerformanceSuggestions.java    |    2 +-
 .../ignite/internal/util/GridArgumentCheck.java    |   14 +
 .../apache/ignite/internal/util/IgniteUtils.java   |   18 +-
 .../org/apache/ignite/internal/util/typedef/X.java |  106 +-
 .../consistency/VisorConsistencyRepairTask.java    |   33 +-
 .../spi/checkpoint/noop/NoopCheckpointSpi.java     |   18 +-
 .../spi/discovery/isolated}/package-info.java      |    4 +-
 .../main/resources/META-INF/classnames.properties  |    1 -
 modules/core/src/main/resources/ignite.properties  |    2 +-
 .../org/apache/ignite/cdc/AbstractCdcTest.java     |  186 +++-
 .../org/apache/ignite/cdc/CdcCacheVersionTest.java |    9 +-
 .../java/org/apache/ignite/cdc/CdcSelfTest.java    |  142 ++-
 .../GridCollisionManagerLoggingSelfTest.java       |   74 ++
 .../internal/TransactionsMXBeanImplTest.java       |  300 +++++-
 .../encryption/CacheGroupReencryptionTest.java     |    6 +-
 .../metric/SystemViewClusterActivationTest.java    |  111 ++
 .../cache/GridCacheAbstractMetricsSelfTest.java    |  119 ++-
 .../GridTransactionsSystemUserTimeMetricsTest.java |   85 +-
 .../cache/binary/BinaryMetadataRemoveTest.java     |   19 +-
 .../cache/expiry/ExpiryPolicyInfoLoggingTest.java  |  155 +++
 .../expiry/IgniteCacheExpiryPolicyTestSuite.java   |    4 +-
 .../db/wal/IgniteWalHistoryReservationsTest.java   |    4 +-
 .../snapshot/AbstractSnapshotSelfTest.java         |  148 +++
 .../snapshot/EncryptedSnapshotTest.java            |  298 ++++++
 .../snapshot/IgniteClusterSnapshotCheckTest.java   |   89 +-
 .../IgniteClusterSnapshotRestoreBaseTest.java      |   86 +-
 .../IgniteClusterSnapshotRestoreSelfTest.java      |   14 +-
 .../snapshot/IgniteClusterSnapshotSelfTest.java    |    2 +
 .../snapshot/IgniteSnapshotManagerSelfTest.java    |   99 +-
 .../StartImplicitlyTxOnStopCacheTest.java          |  103 ++
 .../TxRollbackDuringPreparingTest.java             |  102 ++
 .../PerformanceStatisticsSelfTest.java             |    3 +
 .../java/org/apache/ignite/lang/GridXSelfTest.java |   47 +
 .../noop/NoopCheckpointSpiLoggingTest.java         |  152 +++
 .../apache/ignite/testframework/GridTestUtils.java |   20 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java    |    5 +-
 .../IgniteBasicWithPersistenceTestSuite.java       |    2 +
 .../ignite/testsuites/IgniteCacheTestSuite6.java   |    6 +
 .../ignite/testsuites/IgniteCacheTestSuite9.java   |    2 +
 .../testsuites/IgniteComputeGridTestSuite.java     |    2 +
 modules/dev-utils/ignite-modules-test/build.gradle |    2 +-
 modules/dev-utils/pom.xml                          |   10 +-
 modules/direct-io/pom.xml                          |   14 +-
 modules/ducktests/README.md                        |    1 -
 modules/ducktests/pom.xml                          |   12 +-
 .../InconsistentNodeApplication.java               |  100 ++
 .../ducktests/src/main/resources/log4j.properties  |   25 -
 .../ducktests/tests/checks/utils/check_cluster.py  |    1 -
 .../tests/checks/utils/check_enum_constructible.py |    3 +-
 .../tests/checks/utils/check_jvm_settings.py       |    1 -
 .../tests/checks/utils/check_parametrized.py       |    6 +-
 .../ducktests/tests/checks/utils/check_version.py  |    3 -
 .../ducktests/tests/docker/requirements-dev.txt    |    1 -
 modules/ducktests/tests/ignitetest/__init__.py     |    3 +-
 .../ducktests/tests/ignitetest/services/ignite.py  |    1 -
 .../tests/ignitetest/services/ignite_app.py        |    2 -
 .../ducktests/tests/ignitetest/services/spark.py   |    2 -
 .../ignitetest/services/utils/control_utility.py   |    9 +-
 .../ignitetest/services/utils/ducktests_service.py |    2 -
 .../ignitetest/services/utils/ignite_aware.py      |   20 +-
 .../utils/ignite_configuration/__init__.py         |    5 +-
 .../tests/ignitetest/services/utils/ignite_spec.py |   12 +-
 .../tests/ignitetest/services/utils/jvm_utils.py   |    1 -
 .../tests/ignitetest/services/utils/log_utils.py   |    1 -
 .../tests/ignitetest/services/utils/path.py        |    4 +-
 .../ignitetest/services/utils/ssl/ssl_params.py    |    1 -
 .../services/utils/templates/ignite.xml.j2         |    2 +-
 .../services/utils/templates/log4j.xml.j2          |    2 +-
 .../ducktests/tests/ignitetest/tests/__init__.py   |    1 -
 .../ducktests/tests/ignitetest/tests/auth_test.py  |    2 -
 .../ignitetest/tests/cellular_affinity_test.py     |    7 -
 .../tests/ignitetest/tests/client_test.py          |    5 -
 .../tests/control_utility/baseline_test.py         |    1 -
 .../tests/control_utility/consistency_test.py      |  114 ++
 .../ignitetest/tests/control_utility/tx_test.py    |    1 -
 .../tests/ignitetest/tests/discovery_test.py       |    3 -
 .../ignitetest/tests/persistence_upgrade_test.py   |    1 -
 .../tests/ignitetest/tests/pme_free_switch_test.py |    2 -
 .../ignitetest/tests/rebalance/in_memory_test.py   |    4 -
 .../ignitetest/tests/rebalance/persistent_test.py  |    3 -
 .../tests/ignitetest/tests/rebalance/util.py       |    6 -
 .../ducktests/tests/ignitetest/tests/self_test.py  |    1 -
 .../ducktests/tests/ignitetest/tests/smoke_test.py |    1 -
 .../tests/ignitetest/tests/snapshot_test.py        |    1 -
 .../ducktests/tests/ignitetest/tests/ssl_test.py   |    1 -
 .../tests/ignitetest/tests/thin_client_test.py     |    1 -
 modules/ducktests/tests/ignitetest/utils/enum.py   |    1 -
 .../tests/ignitetest/utils/ignite_test.py          |    2 -
 .../ducktests/tests/ignitetest/utils/version.py    |    1 -
 modules/ducktests/tests/tox.ini                    |    7 +-
 modules/extdata/p2p/pom.xml                        |    8 +-
 modules/extdata/platform/pom.xml                   |    8 +-
 modules/extdata/uri/modules/uri-dependency/pom.xml |    4 +-
 modules/extdata/uri/pom.xml                        |    8 +-
 modules/gce/README.txt                             |   32 -
 modules/gce/licenses/apache-2.0.txt                |  202 ----
 modules/gce/pom.xml                                |  144 ---
 .../gce/TcpDiscoveryGoogleStorageIpFinder.java     |  431 --------
 .../discovery/tcp/ipfinder/gce/package-info.java   |   23 -
 .../TcpDiscoveryGoogleStorageIpFinderSelfTest.java |   97 --
 .../discovery/tcp/ipfinder/gce/package-info.java   |   23 -
 .../ignite/testsuites/IgniteGCETestSuite.java      |   62 --
 modules/geospatial/pom.xml                         |   10 +-
 .../query/h2/opt/GeoSpatialIndexDefinition.java    |   13 +-
 .../processors/query/h2/opt/GeoSpatialUtils.java   |    7 +-
 modules/hibernate-4.2/pom.xml                      |   16 +-
 modules/hibernate-5.1/pom.xml                      |   16 +-
 modules/hibernate-5.3/pom.xml                      |   16 +-
 modules/hibernate-core/pom.xml                     |    6 +-
 modules/ignored-tests/pom.xml                      |   50 +-
 modules/indexing/pom.xml                           |   10 +-
 .../processors/query/h2/CommandProcessor.java      |    1 +
 .../query/h2/GridSubqueryJoinOptimizer.java        |   78 +-
 .../processors/query/h2/index/H2RowComparator.java |   21 +-
 .../query/h2/index/QueryIndexDefinition.java       |    5 +-
 .../h2/index/QueryIndexKeyDefinitionProvider.java  |   18 +-
 .../query/h2/index/QueryIndexRowHandler.java       |    7 +-
 .../query/h2/index/QueryRowHandlerFactory.java     |    5 +-
 .../h2/index/client/ClientIndexDefinition.java     |    5 +-
 .../query/h2/index/client/ClientIndexFactory.java  |    9 +-
 .../processors/query/h2/opt/GridH2Table.java       |    3 +-
 .../processors/query/h2/opt/GridLuceneIndex.java   |   11 +-
 .../query/h2/sql/GridSqlQueryParser.java           |    9 +-
 .../processors/query/stat/BusyExecutor.java        |  140 +++
 .../stat/IgniteStatisticsConfigurationManager.java |  555 +++-------
 .../query/stat/IgniteStatisticsDummyStoreImpl.java |   15 +
 .../query/stat/IgniteStatisticsHelper.java         |   32 +-
 .../stat/IgniteStatisticsInMemoryStoreImpl.java    |   35 +
 .../query/stat/IgniteStatisticsManagerImpl.java    |  386 ++++---
 .../stat/IgniteStatisticsPersistenceStoreImpl.java |   69 +-
 .../query/stat/IgniteStatisticsRepository.java     |  510 ++-------
 .../query/stat/IgniteStatisticsStore.java          |   21 +-
 .../stat/LocalStatisticsGatheringContext.java      |  139 ++-
 .../ObjectPartitionStatisticsObsolescence.java     |    2 +-
 .../processors/query/stat/StatisticsGatherer.java  |  282 -----
 .../processors/query/stat/StatisticsProcessor.java |  345 +++++++
 .../query/stat/task/GatherPartitionStatistics.java |  264 ++++-
 .../stat/view/ColumnConfigurationViewSupplier.java |  101 ++
 .../stat/view/ColumnLocalDataViewSupplier.java     |  110 ++
 .../stat/view/ColumnPartitionDataViewSupplier.java |  106 ++
 .../ignite/cache/query/IndexQueryAliasTest.java    |   34 +-
 .../ignite/cache/query/IndexQueryAllTypesTest.java |   40 +-
 .../ignite/cache/query/IndexQueryFailoverTest.java |  112 +-
 .../ignite/cache/query/IndexQueryFilterTest.java   |  297 ++++++
 .../cache/query/IndexQueryKeepBinaryTest.java      |   47 +-
 .../cache/query/IndexQueryQueryEntityTest.java     |   53 +-
 .../ignite/cache/query/IndexQueryRangeTest.java    |   21 +-
 .../ignite/cache/query/IndexQuerySqlIndexTest.java |   73 +-
 .../ignite/cache/query/IndexQueryTestSuite.java    |    5 +-
 .../cache/query/IndexQueryWrongIndexTest.java      |  120 +++
 .../ignite/cache/query/MultiTableIndexQuery.java   |   63 +-
 .../cache/query/MultifieldIndexQueryTest.java      |  158 +--
 .../cache/query/RepeatedFieldIndexQueryTest.java   |  360 +++++++
 .../org/apache/ignite/internal/cdc/SqlCdcTest.java |   28 +-
 .../EnumClassImplementingIndexedInterfaceTest.java |  242 +++++
 .../cache/GridCacheFullTextQueryAbstractTest.java  |   69 ++
 .../cache/GridCacheFullTextQueryFailoverTest.java  |   77 ++
 .../cache/GridCacheFullTextQueryLimitTest.java     |   94 ++
 ...ridCacheFullTextQueryMultithreadedSelfTest.java |    3 +-
 .../cache/GridCacheFullTextQueryPagesTest.java     |  182 ++++
 .../cache/IgniteCacheQueryH2IndexingLeakTest.java  |    7 +-
 .../processors/cache/index/BasicIndexTest.java     |   47 +
 .../cache/metric/SqlViewExporterSpiTest.java       |   11 +-
 .../IgniteClusterSnapshotCheckWithIndexesTest.java |    8 +
 .../IgniteClusterSnapshotWithIndexesTest.java      |    7 +
 .../h2/GridSubqueryJoinOptimizerSelfTest.java      |  185 +++-
 .../processors/query/stat/BusyExecutorTest.java    |  185 ++++
 .../stat/IgniteStatisticsRepositoryStaticTest.java |  133 ---
 .../query/stat/IgniteStatisticsRepositoryTest.java |  187 ++--
 .../query/stat/PSUStatisticsStorageTest.java       |    2 +-
 .../query/stat/SqlStatisticsCommandTests.java      |    7 +-
 .../query/stat/StatisticsAbstractTest.java         |   22 +-
 .../query/stat/StatisticsConfigurationTest.java    |   93 +-
 .../query/stat/StatisticsGatheringTest.java        |   22 +
 .../query/stat/StatisticsStorageAbstractTest.java  |    2 +-
 .../processors/query/stat/StatisticsViewsTest.java |   18 +-
 .../IgniteBinaryCacheQueryTestSuite.java           |    6 +
 .../IgniteCacheWithIndexingTestSuite.java          |    5 +-
 .../testsuites/IgniteStatisticsTestSuite.java      |    4 +-
 .../org/apache/ignite/util/KillCommandsTests.java  |   13 +-
 modules/jcl/pom.xml                                |    8 +-
 modules/jta/pom.xml                                |   10 +-
 modules/kubernetes/pom.xml                         |    8 +-
 .../KubernetesConnectionConfiguration.java         |   22 +
 .../kubernetes/TcpDiscoveryKubernetesIpFinder.java |    2 +-
 modules/log4j/pom.xml                              |    8 +-
 modules/log4j2/pom.xml                             |    8 +-
 modules/mesos/pom.xml                              |    4 +-
 modules/ml/catboost-model-parser/pom.xml           |    6 +-
 modules/ml/h2o-model-parser/pom.xml                |    6 +-
 modules/ml/pom.xml                                 |   10 +-
 modules/ml/spark-model-parser/pom.xml              |    6 +-
 .../ml/composition/bagging}/package-info.java      |    5 +-
 .../ignite/ml/inference/json}/package-info.java    |    5 +-
 .../ignite/ml/knn/utils/indices}/package-info.java |    4 +-
 .../ignite/ml/util/plugin}/package-info.java       |    5 +-
 modules/ml/xgboost-model-parser/pom.xml            |    6 +-
 modules/opencensus/pom.xml                         |   16 +-
 modules/osgi-karaf/pom.xml                         |    2 +-
 modules/osgi-karaf/src/main/resources/features.xml |   14 -
 modules/osgi-paxlogging/pom.xml                    |    2 +-
 modules/osgi/pom.xml                               |    8 +-
 modules/platforms/cpp/CMakeLists.txt               |   21 +-
 modules/platforms/cpp/CMakeSettings.json.in        |   64 ++
 modules/platforms/cpp/DEVNOTES.txt                 |  148 ++-
 modules/platforms/cpp/binary/CMakeLists.txt        |    6 +-
 .../platforms/cpp/binary/project/vs/binary.vcxproj |  241 -----
 .../cpp/binary/project/vs/binary.vcxproj.filters   |  175 ----
 modules/platforms/cpp/common/CMakeLists.txt        |    6 +-
 modules/platforms/cpp/common/project/README.TXT    |    1 -
 modules/platforms/cpp/common/project/vs/README.TXT |    1 -
 .../platforms/cpp/common/project/vs/common.vcxproj |  213 ----
 .../cpp/common/project/vs/common.vcxproj.filters   |  133 ---
 modules/platforms/cpp/core-test/project/README.TXT |    1 -
 .../platforms/cpp/core-test/project/vs/README.TXT  |    1 -
 .../cpp/core-test/project/vs/core-test.vcxproj     |  244 -----
 .../core-test/project/vs/core-test.vcxproj.filters |  260 -----
 modules/platforms/cpp/core/CMakeLists.txt          |    6 +-
 modules/platforms/cpp/core/project/README.TXT      |    1 -
 modules/platforms/cpp/core/project/vs/README.TXT   |    1 -
 modules/platforms/cpp/core/project/vs/core.vcxproj |  305 ------
 .../cpp/core/project/vs/core.vcxproj.filters       |  348 -------
 .../platforms/cpp/examples/CMakeSettings.json.in   |   38 +
 modules/platforms/cpp/examples/README.txt          |   37 +-
 .../project/vs/cluster-compute-example.vcxproj     |  104 --
 .../vs/cluster-compute-example.vcxproj.filters     |   33 -
 .../project/vs/compute-example.vcxproj             |  102 --
 .../project/vs/compute-example.vcxproj.filters     |   27 -
 .../project/vs/continuous-query-example.vcxproj    |  106 --
 .../vs/continuous-query-example.vcxproj.filters    |   35 -
 .../odbc-example/project/vs/odbc-example.vcxproj   |  111 --
 .../project/vs/odbc-example.vcxproj.filters        |   36 -
 .../cpp/examples/project/vs/ignite-examples.sln    |   56 -
 .../project/vs/put-get-example.vcxproj             |  110 --
 .../project/vs/put-get-example.vcxproj.filters     |   38 -
 .../query-example/project/vs/query-example.vcxproj |  111 --
 .../project/vs/query-example.vcxproj.filters       |   35 -
 .../project/vs/thin-client-put-get-example.vcxproj |  104 --
 .../vs/thin-client-put-get-example.vcxproj.filters |   27 -
 modules/platforms/cpp/ignite/project/README.TXT    |    1 -
 modules/platforms/cpp/ignite/project/vs/README.TXT |    1 -
 .../platforms/cpp/ignite/project/vs/ignite.vcxproj |  170 ---
 .../cpp/ignite/project/vs/ignite.vcxproj.filters   |   17 -
 modules/platforms/cpp/jni/CMakeLists.txt           |    6 +-
 modules/platforms/cpp/jni/project/README.TXT       |    1 -
 modules/platforms/cpp/jni/project/vs/README.TXT    |    1 -
 modules/platforms/cpp/jni/project/vs/jni.vcxproj   |  204 ----
 .../cpp/jni/project/vs/jni.vcxproj.filters         |   39 -
 modules/platforms/cpp/jni/project/vs/module.def    |   25 -
 modules/platforms/cpp/network/CMakeLists.txt       |    6 +-
 .../cpp/network/project/vs/network.vcxproj         |  206 ----
 .../cpp/network/project/vs/network.vcxproj.filters |   63 --
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj     |  256 -----
 .../odbc-test/project/vs/odbc-test.vcxproj.filters |  252 -----
 modules/platforms/cpp/odbc/CMakeLists.txt          |   70 +-
 .../cpp/odbc/include/ignite/odbc/common_types.h    |    3 +
 .../cpp/odbc/include/ignite/odbc/connection.h      |    6 +-
 .../odbc/include/ignite/odbc/system/system_dsn.h}  |   35 +-
 .../platforms/cpp/odbc/install/ignite-odbc-x86.wxs |  114 --
 .../{ignite-odbc-amd64.wxs => ignite-odbc.wxs.in}  |   95 +-
 .../platforms/cpp/odbc/{project/vs => }/module.def |    0
 .../platforms/cpp/odbc/os/win/src/system_dsn.cpp   |   17 +-
 modules/platforms/cpp/odbc/project/README.TXT      |    1 -
 modules/platforms/cpp/odbc/project/vs/README.TXT   |    1 -
 modules/platforms/cpp/odbc/project/vs/odbc.vcxproj |  287 ------
 .../cpp/odbc/project/vs/odbc.vcxproj.filters       |  369 -------
 modules/platforms/cpp/odbc/src/connection.cpp      |   20 +-
 modules/platforms/cpp/odbc/src/odbc.cpp            |   29 +-
 modules/platforms/cpp/project/vs/ignite.sln        |  138 ---
 modules/platforms/cpp/project/vs/ignite.slnrel     |   98 --
 modules/platforms/cpp/project/vs/ignite_x86.slnrel |   98 --
 .../project/vs/thin-client-test.vcxproj            |  206 ----
 .../project/vs/thin-client-test.vcxproj.filters    |  130 ---
 .../thin-client-test/src/sql_fields_query_test.cpp |   43 +
 modules/platforms/cpp/thin-client/CMakeLists.txt   |    6 +-
 .../cpp/thin-client/project/vs/thin-client.vcxproj |  236 -----
 .../project/vs/thin-client.vcxproj.filters         |  214 ----
 .../src/impl/cache/cache_client_impl.cpp           |   23 +-
 .../thin-client/src/impl/cache/cache_client_impl.h |   12 +
 .../Apache.Ignite.AspNet.Tests.csproj              |   95 +-
 .../Properties/AssemblyInfo.cs                     |   10 -
 .../Apache.Ignite.AspNet.csproj                    |   98 +-
 .../Apache.Ignite.AspNet.nuspec                    |   63 --
 .../IgniteSessionStateStoreProvider.cs             |   68 +-
 .../Properties/AssemblyInfo.cs                     |   10 -
 .../Apache.Ignite.BenchmarkDotNet.csproj           |    8 +-
 .../ThinClient/ThinClientServicesBenchmark.cs      |    2 +-
 .../Apache.Ignite.Benchmarks.DotNetCore.csproj     |    8 +-
 .../Apache.Ignite.Benchmarks.csproj                |  116 +--
 .../Properties/AssemblyInfo.cs                     |   10 -
 .../Apache.Ignite.Core.Tests.NuGet.csproj          |  175 ----
 .../Apache.Ignite.Core.Tests.NuGet.sln             |   32 -
 .../Apache.Ignite.Core.Tests.NuGet.sln.DotSettings |    6 -
 .../Apache.Ignite.Core.Tests.NuGet/AspNetTest.cs   |   73 --
 .../Apache.Ignite.Core.Tests.NuGet/CacheTest.cs    |  134 ---
 .../Apache.Ignite.Core.Tests.NuGet/ComputeTest.cs  |   84 --
 .../Config/ignite-config.xml                       |   49 -
 .../EntityFrameworkCacheTest.cs                    |   62 --
 .../Apache.Ignite.Core.Tests.NuGet/Log4NetTest.cs  |   87 --
 .../Apache.Ignite.Core.Tests.NuGet/NLogTest.cs     |   82 --
 .../Apache.Ignite.Core.Tests.NuGet/NuGet.config    |   35 -
 .../Apache.Ignite.Core.Tests.NuGet/SchemaTest.cs   |   62 --
 .../Apache.Ignite.Core.Tests.NuGet/StartupTest.cs  |  155 ---
 .../Apache.Ignite.Core.Tests.NuGet/TestRunner.cs   |   70 --
 .../Apache.Ignite.Core.Tests.NuGet/TestUtil.cs     |   73 --
 .../install-package.ps1                            |   29 -
 .../Apache.Ignite.Core.Tests.NuGet/packages.config |   31 -
 .../Apache.Ignite.Core.Tests.TestDll.csproj        |   68 +-
 .../Properties/AssemblyInfo.cs                     |   20 -
 .../Apache.Ignite.Core.Tests.TestDll2.csproj       |   68 +-
 .../Properties/AssemblyInfo.cs                     |   20 -
 .../Apache.Ignite.Core.Tests.DotNetCore.csproj     |   12 +-
 .../Apache.Ignite.Core.Tests.csproj                |  711 +++----------
 .../Cache/CacheForkedTest.cs                       |   81 --
 .../Client/Cache/CacheClientAbstractTxTest.cs      |    1 +
 .../Client/Cache/ContinuousQueryTest.cs            |    8 +-
 .../Client/Cache/PartitionAwarenessTest.cs         |    4 +-
 .../Client/ClientConnectionTest.cs                 |   11 +
 .../Client/ClientTestBase.cs                       |   17 +-
 .../Cluster/ClientClusterDiscoveryTestsBase.cs     |    2 +
 .../Client/Datastream/DataStreamerClientTest.cs    |    8 +-
 .../Client/RawSecureSocketTest.cs                  |    4 -
 .../ConsoleRedirectTest.cs                         |   10 +-
 .../Deployment/PeerAssemblyLoadingTest.cs          |   10 +-
 .../PeerAssemblyLoadingVersioningTest.cs           |    8 +-
 .../Apache.Ignite.Core.Tests/DeploymentTest.cs     |   24 +-
 .../Examples/ExamplesTestBase.cs                   |    2 +-
 .../Apache.Ignite.Core.Tests/ExecutableTest.cs     |    5 +-
 .../Apache.Ignite.Core.Tests/MultiAppDomainTest.cs |    2 +-
 .../Apache.Ignite.Core.Tests/ProjectFilesTest.cs   |  108 +-
 .../Properties/AssemblyInfo.cs                     |   10 -
 .../Services/ServicesTest.cs                       |   12 +-
 .../dotnet/Apache.Ignite.Core.Tests/TestRunner.cs  |  118 +--
 .../dotnet/Apache.Ignite.Core.Tests/TestUtils.cs   |   33 +-
 .../dotnet/Apache.Ignite.Core.Tests/nunit.addins   |   16 +
 .../Apache.Ignite.Core.Tests/packages.config       |   25 -
 .../Apache.Ignite.Core.DotNetCore.csproj           |   34 -
 .../Apache.Ignite.Core.Schema.nuspec               |   56 -
 .../Apache.Ignite.Core/Apache.Ignite.Core.csproj   |  677 +-----------
 .../Apache.Ignite.Core/Apache.Ignite.Core.nuspec   |   84 --
 .../Apache.Ignite.Core/Client/SslStreamFactory.cs  |    7 -
 .../Impl/Client/ClientFailoverSocket.cs            |    3 +-
 .../Impl/Services/ServiceProxyTypeGenerator.cs     |    7 +-
 .../Impl/Unmanaged/Jni/AppDomains.cs               |   22 +-
 .../Impl/Unmanaged/Jni/Jvm.CrossAppDomain.cs       |   26 +-
 .../Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs   |    9 +-
 .../Impl/Unmanaged/Jni/JvmDll.cs                   |    4 -
 .../Apache.Ignite.Core/Properties/AssemblyInfo.cs  |   14 +-
 .../platforms/dotnet/Apache.Ignite.DotNetCore.sln  |   24 +-
 .../Apache.Ignite.EntityFramework.Tests.csproj     |  129 +--
 .../EntityFrameworkCacheTest.cs                    |    2 +
 .../Properties/AssemblyInfo.cs                     |   12 +-
 .../Apache.Ignite.EntityFramework.csproj           |  121 +--
 .../Apache.Ignite.EntityFramework.nuspec           |   66 --
 .../Properties/AssemblyInfo.cs                     |   10 -
 .../Apache.Ignite.EntityFramework/packages.config  |   20 -
 .../Apache.Ignite.Linq.DotNetCore.csproj           |   30 -
 .../Apache.Ignite.Linq/Apache.Ignite.Linq.csproj   |  122 +--
 .../Apache.Ignite.Linq/Apache.Ignite.Linq.nuspec   |   79 --
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs       |    8 +-
 .../Apache.Ignite.Linq/Properties/AssemblyInfo.cs  |   10 -
 .../Apache.Ignite.Log4Net.csproj                   |  102 +-
 .../Apache.Ignite.Log4Net.nuspec                   |   66 --
 .../Properties/AssemblyInfo.cs                     |   10 -
 .../dotnet/Apache.Ignite.Log4Net/packages.config   |   20 -
 .../Apache.Ignite.NLog/Apache.Ignite.NLog.csproj   |   93 +-
 .../Apache.Ignite.NLog/Apache.Ignite.NLog.nuspec   |   66 --
 .../Apache.Ignite.NLog/Properties/AssemblyInfo.cs  |   10 -
 .../dotnet/Apache.Ignite.NLog/packages.config      |   22 -
 .../Apache.Ignite.Schema.csproj                    |   16 +
 .../platforms/dotnet/Apache.Ignite.Tests.ruleset   |    6 +
 modules/platforms/dotnet/Apache.Ignite.sln         |  119 ++-
 .../Apache.Ignite/Apache.Ignite.DotNetCore.csproj  |   19 +-
 .../dotnet/Apache.Ignite/Apache.Ignite.csproj      |   92 +-
 .../platforms/dotnet/Apache.Ignite/IgniteRunner.cs |    2 +
 .../Apache.Ignite/Properties/AssemblyInfo.cs       |   10 -
 .../dotnet/Apache.Ignite/Service/IgniteService.cs  |    6 +-
 modules/platforms/dotnet/DEVNOTES.txt              |   78 +-
 modules/platforms/dotnet/Directory.Build.props     |   17 +
 .../AssemblyInfo.cs => SharedAssemblyInfo.cs}      |   14 +-
 modules/platforms/dotnet/build-mono.sh             |   34 -
 modules/platforms/dotnet/build.ps1                 |  174 +---
 .../platforms/dotnet/examples/.vscode/launch.json  |   80 +-
 .../dotnet/examples/Directory.Build.props          |    4 +-
 modules/platforms/dotnet/examples/README.md        |    2 +-
 .../dotnet/examples/ServerNode/ServerNode.csproj   |    2 +-
 .../platforms/dotnet/examples/Shared/Shared.csproj |    2 +-
 .../Thick/Cache/BinaryMode/BinaryMode.csproj       |    2 +-
 .../Thick/Cache/DataStreamer/DataStreamer.csproj   |    2 +-
 .../Cache/EntryProcessor/EntryProcessor.csproj     |    2 +-
 .../Cache/MultiTieredCache/MultiTieredCache.csproj |    2 +-
 .../Thick/Cache/NearCache/NearCache.csproj         |    2 +-
 .../OptimisticTransaction.csproj                   |    2 +-
 .../examples/Thick/Cache/PutGet/PutGet.csproj      |    2 +-
 .../Cache/QueryContinuous/QueryContinuous.csproj   |    2 +-
 .../Thick/Cache/QueryFullText/QueryFullText.csproj |    2 +-
 .../Thick/Cache/QueryScan/QueryScan.csproj         |    2 +-
 .../dotnet/examples/Thick/Cache/Store/Store.csproj |    2 +-
 .../Thick/Cache/Transaction/Transaction.csproj     |    2 +-
 .../TransactionDeadlockDetection.csproj            |    2 +-
 .../dotnet/examples/Thick/Compute/Func/Func.csproj |    2 +-
 .../PeerAssemblyLoading/PeerAssemblyLoading.csproj |    2 +-
 .../dotnet/examples/Thick/Compute/Task/Task.csproj |    2 +-
 .../DataStructures/AtomicLong/AtomicLong.csproj    |    2 +-
 .../AtomicReference/AtomicReference.csproj         |    2 +-
 .../AtomicSequence/AtomicSequence.csproj           |    2 +-
 .../Misc/ClientReconnect/ClientReconnect.csproj    |    2 +-
 .../examples/Thick/Misc/Events/Events.csproj       |    2 +-
 .../examples/Thick/Misc/Lifecycle/Lifecycle.csproj |    2 +-
 .../examples/Thick/Misc/Messaging/Messaging.csproj |    2 +-
 .../examples/Thick/Misc/Services/Services.csproj   |    2 +-
 .../dotnet/examples/Thick/Sql/Ddl/Ddl.csproj       |    2 +-
 .../dotnet/examples/Thick/Sql/Dml/Dml.csproj       |    2 +-
 .../dotnet/examples/Thick/Sql/Linq/Linq.csproj     |    2 +-
 .../dotnet/examples/Thick/Sql/Sql/Sql.csproj       |    2 +-
 .../Cache/BinaryModeThin/BinaryModeThin.csproj     |    2 +-
 .../OptimisticTransactionThin.csproj               |    2 +-
 .../Thin/Cache/PutGetThin/PutGetThin.csproj        |    2 +-
 .../QueryContinuousThin/QueryContinuousThin.csproj |    2 +-
 .../Thin/Cache/QueryScanThin/QueryScanThin.csproj  |    2 +-
 .../Cache/TransactionThin/TransactionThin.csproj   |    2 +-
 .../Thin/Misc/ServicesThin/ServicesThin.csproj     |    2 +-
 .../examples/Thin/Sql/DdlThin/DdlThin.csproj       |    2 +-
 .../examples/Thin/Sql/DmlThin/DmlThin.csproj       |    2 +-
 .../examples/Thin/Sql/LinqThin/LinqThin.csproj     |    2 +-
 .../examples/Thin/Sql/SqlThin/SqlThin.csproj       |    2 +-
 .../Apache.Ignite.Example/ExampleProject.csproj    |    2 +-
 .../ExampleProjectThin.csproj                      |    2 +-
 .../Apache.Ignite.Examples.csproj                  |    8 +-
 modules/rest-http/pom.xml                          |    8 +-
 .../rest/protocols/http/jetty/GridRestSuite.java   |    1 +
 .../http/jetty/RestProcessorAuthorizationTest.java |  139 +++
 modules/scalar-2.10/pom.xml                        |   14 +-
 modules/scalar/pom.xml                             |   14 +-
 modules/schedule/pom.xml                           |   10 +-
 modules/slf4j/pom.xml                              |    8 +-
 modules/spark-2.4/pom.xml                          |   14 +-
 modules/spark/pom.xml                              |   14 +-
 modules/spring/pom.xml                             |   75 +-
 .../org/apache/ignite/IgniteClientSpringBean.java  |    2 +-
 .../spring/CacheSpringStoreSessionListener.java    |  212 ----
 .../ignite/cache/store/spring/package-info.java    |   22 -
 .../CacheSpringStoreSessionListenerSelfTest.java   |  230 -----
 .../apache/ignite/cdc/CdcConfigurationTest.java    |    3 +-
 .../ignite/testsuites/IgniteSpringTestSuite.java   |    3 -
 modules/sqlline/pom.xml                            |    4 +-
 modules/ssh/pom.xml                                |   14 +-
 modules/tools/pom.xml                              |    2 +-
 modules/urideploy/pom.xml                          |    8 +-
 modules/visor-console-2.10/pom.xml                 |   10 +-
 modules/visor-console/pom.xml                      |   12 +-
 modules/visor-plugins/pom.xml                      |    4 +-
 modules/web/ignite-appserver-test/pom.xml          |   10 +-
 modules/web/ignite-websphere-test/pom.xml          |    6 +-
 modules/web/pom.xml                                |   12 +-
 modules/yardstick/README.txt                       |    8 +-
 .../benchmark-cache-query-get-all.properties       |   89 ++
 .../benchmark-multicache-putall-tx.properties      |   81 ++
 .../config/benchmark-multicache-tx.properties      |   84 ++
 modules/yardstick/config/ignite-base-config.xml    |    3 +
 modules/yardstick/pom-standalone.xml               |   10 +-
 modules/yardstick/pom.xml                          |   14 +-
 .../ignite/yardstick/IgniteBenchmarkArguments.java |   22 +-
 .../cache/IgniteCacheAbstractBenchmark.java        |   14 +-
 .../cache/IgniteCacheQueryGetAllBenchmark.java     |   88 ++
 .../cache/IgniteIndexQueryGetAllBenchmark.java}    |   27 +-
 .../yardstick/cache/IgnitePutAllBenchmark.java     |  124 +--
 ...java => IgnitePutAllMultiCacheTxBenchmark.java} |   53 +-
 ...rk.java => IgnitePutMultiCacheTxBenchmark.java} |   62 +-
 .../yardstick/cache/IgnitePutTxBenchmark.java      |    2 +-
 .../cache/IgniteScanQueryGetAllBenchmark.java}     |   19 +-
 .../cache/IgniteTextQueryGetAllBenchmark.java}     |   20 +-
 .../load/IgniteCacheRandomOperationBenchmark.java  |    2 +-
 .../{SampleValue.java => PersonTextIndex.java}     |   61 +-
 .../ignite/yardstick/cache/model/SampleValue.java  |    2 +-
 modules/yarn/pom.xml                               |    4 +-
 modules/yarn/src/main/resources/ignite.properties  |    2 +-
 modules/zookeeper/pom.xml                          |   22 +-
 packaging/rpm/apache-ignite.spec                   |    1 +
 parent/pom.xml                                     |   29 +-
 pom.xml                                            |   19 +-
 scripts/update-versions.sh                         |    5 +
 669 files changed, 13070 insertions(+), 24941 deletions(-)

diff --cc modules/calcite/pom.xml
index 1f15b34,0000000..74b9095
mode 100644,000000..100644
--- a/modules/calcite/pom.xml
+++ b/modules/calcite/pom.xml
@@@ -1,295 -1,0 +1,295 @@@
 +<?xml version="1.0" encoding="UTF-8"?>
 +
 +<!--
 +  Licensed to the Apache Software Foundation (ASF) under one or more
 +  contributor license agreements.  See the NOTICE file distributed with
 +  this work for additional information regarding copyright ownership.
 +  The ASF licenses this file to You under the Apache License, Version 2.0
 +  (the "License"); you may not use this file except in compliance with
 +  the License.  You may obtain a copy of the License at
 +
 +       http://www.apache.org/licenses/LICENSE-2.0
 +
 +  Unless required by applicable law or agreed to in writing, software
 +  distributed under the License is distributed on an "AS IS" BASIS,
 +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +  See the License for the specific language governing permissions and
 +  limitations under the License.
 +-->
 +
 +<!--
 +    POM file.
 +-->
 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 +    <modelVersion>4.0.0</modelVersion>
 +
 +    <!-- Module specific package versions -->
 +    <properties>
 +        <calcite.version>1.27.0</calcite.version>
 +        <janino.version>3.1.4</janino.version>
 +        <avatica.version>1.18.0</avatica.version>
 +        <jsonpath.version>2.4.0</jsonpath.version>
 +        <reflections.version>0.9.10</reflections.version>
 +        <javassist.version>3.28.0-GA</javassist.version>
 +        <esri.geometry.version>2.2.0</esri.geometry.version>
 +        <checker.version>3.10.0</checker.version>
 +    </properties>
 +
 +    <parent>
 +        <groupId>org.apache.ignite</groupId>
 +        <artifactId>ignite-parent</artifactId>
 +        <version>1</version>
 +        <relativePath>../../parent</relativePath>
 +    </parent>
 +
 +    <artifactId>ignite-calcite</artifactId>
-     <version>2.12.0-SNAPSHOT</version>
++    <version>${revision}</version>
 +    <url>http://ignite.apache.org</url>
 +
 +    <dependencies>
 +        <dependency>
 +            <groupId>org.apache.ignite</groupId>
 +            <artifactId>ignite-core</artifactId>
 +            <version>${project.version}</version>
 +        </dependency>
 +
 +        <!--
 +            At now the new calcite engine reuses some logic
 +            and doesn't work without "old" indexing module.
 +        -->
 +        <dependency>
 +            <groupId>org.apache.ignite</groupId>
 +            <artifactId>ignite-indexing</artifactId>
 +            <version>${project.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.apache.calcite</groupId>
 +            <artifactId>calcite-core</artifactId>
 +            <version>${calcite.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.apache.calcite</groupId>
 +            <artifactId>calcite-linq4j</artifactId>
 +            <version>${calcite.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>com.google.guava</groupId>
 +            <artifactId>guava</artifactId>
 +            <version>${guava.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.checkerframework</groupId>
 +            <artifactId>checker-qual</artifactId>
 +            <version>${checker.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.codehaus.janino</groupId>
 +            <artifactId>commons-compiler</artifactId>
 +            <version>${janino.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.codehaus.janino</groupId>
 +            <artifactId>janino</artifactId>
 +            <version>${janino.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.apache.calcite.avatica</groupId>
 +            <artifactId>avatica-core</artifactId>
 +            <version>${avatica.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>com.fasterxml.jackson.core</groupId>
 +            <artifactId>jackson-core</artifactId>
 +            <version>${jackson.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>com.fasterxml.jackson.core</groupId>
 +            <artifactId>jackson-databind</artifactId>
 +            <version>${jackson.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>com.fasterxml.jackson.core</groupId>
 +            <artifactId>jackson-annotations</artifactId>
 +            <version>${jackson.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>com.jayway.jsonpath</groupId>
 +            <artifactId>json-path</artifactId>
 +            <version>${jsonpath.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.reflections</groupId>
 +            <artifactId>reflections</artifactId>
 +            <version>${reflections.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.javassist</groupId>
 +            <artifactId>javassist</artifactId>
 +            <version>${javassist.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>com.esri.geometry</groupId>
 +            <artifactId>esri-geometry-api</artifactId>
 +            <version>${esri.geometry.version}</version>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.apache.ignite</groupId>
 +            <artifactId>ignite-core</artifactId>
 +            <version>${project.version}</version>
 +            <type>test-jar</type>
 +            <scope>test</scope>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.springframework</groupId>
 +            <artifactId>spring-core</artifactId>
 +            <version>${spring.version}</version>
 +            <scope>test</scope>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>log4j</groupId>
 +            <artifactId>log4j</artifactId>
 +            <scope>test</scope>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.slf4j</groupId>
 +            <artifactId>slf4j-log4j12</artifactId>
 +            <version>${slf4j.version}</version>
 +            <scope>test</scope>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.springframework</groupId>
 +            <artifactId>spring-beans</artifactId>
 +            <version>${spring.version}</version>
 +            <scope>test</scope>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.springframework</groupId>
 +            <artifactId>spring-context</artifactId>
 +            <version>${spring.version}</version>
 +            <scope>test</scope>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.apache.ignite</groupId>
 +            <artifactId>ignite-clients</artifactId>
 +            <version>${project.version}</version>
 +            <scope>test</scope>
 +        </dependency>
 +    </dependencies>
 +
 +    <build>
 +        <plugins>
 +            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
 +            <plugin>
 +                <groupId>org.apache.felix</groupId>
 +                <artifactId>maven-bundle-plugin</artifactId>
 +            </plugin>
 +            <plugin>
 +                <artifactId>maven-resources-plugin</artifactId>
 +                <executions>
 +                    <execution>
 +                        <id>copy-fmpp-resources</id>
 +                        <phase>validate</phase>
 +                        <goals>
 +                            <goal>copy-resources</goal>
 +                        </goals>
 +                        <configuration>
 +                            <outputDirectory>${project.build.directory}/codegen</outputDirectory>
 +                            <resources>
 +                                <resource>
 +                                    <directory>src/main/codegen</directory>
 +                                    <filtering>false</filtering>
 +                                </resource>
 +                            </resources>
 +                        </configuration>
 +                    </execution>
 +                </executions>
 +            </plugin>
 +            <plugin>
 +                <groupId>org.apache.maven.plugins</groupId>
 +                <artifactId>maven-dependency-plugin</artifactId>
 +                <executions>
 +                    <execution>
 +                        <id>unpack-parser-template</id>
 +                        <phase>validate</phase>
 +                        <goals>
 +                            <goal>unpack</goal>
 +                        </goals>
 +                        <configuration>
 +                            <artifactItems>
 +                                <artifactItem>
 +                                    <groupId>org.apache.calcite</groupId>
 +                                    <artifactId>calcite-core</artifactId>
 +                                    <type>jar</type>
 +                                    <overWrite>true</overWrite>
 +                                    <outputDirectory>${project.build.directory}/</outputDirectory>
 +                                    <includes>codegen/templates/Parser.jj</includes>
 +                                </artifactItem>
 +                            </artifactItems>
 +                        </configuration>
 +                    </execution>
 +                </executions>
 +            </plugin>
 +            <plugin>
 +                <groupId>com.googlecode.fmpp-maven-plugin</groupId>
 +                <artifactId>fmpp-maven-plugin</artifactId>
 +                <version>1.0</version>
 +                <configuration>
 +                    <cfgFile>${project.build.directory}/codegen/config.fmpp</cfgFile>
 +                    <templateDirectory>${project.build.directory}/codegen/templates</templateDirectory>
 +                </configuration>
 +                <executions>
 +                    <execution>
 +                        <id>generate-fmpp-sources</id>
 +                        <phase>validate</phase>
 +                        <goals>
 +                            <goal>generate</goal>
 +                        </goals>
 +                    </execution>
 +                </executions>
 +            </plugin>
 +            <plugin>
 +                <groupId>org.codehaus.mojo</groupId>
 +                <artifactId>javacc-maven-plugin</artifactId>
 +                <executions>
 +                    <execution>
 +                        <id>javacc</id>
 +                        <goals>
 +                            <goal>javacc</goal>
 +                        </goals>
 +                        <configuration>
 +                            <sourceDirectory>${project.build.directory}/generated-sources/fmpp</sourceDirectory>
 +                            <outputDirectory>${project.build.directory}/generated-sources/javacc</outputDirectory>
 +                            <includes>
 +                                <include>**/Parser.jj</include>
 +                            </includes>
 +                            <lookAhead>2</lookAhead>
 +                            <isStatic>false</isStatic>
 +                        </configuration>
 +                    </execution>
 +                </executions>
 +            </plugin>
 +        </plugins>
 +    </build>
 +</project>
diff --cc modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/IndexDdlIntegrationTest.java
index cff74c5,0000000..a7940a3
mode 100644,000000..100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/IndexDdlIntegrationTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/IndexDdlIntegrationTest.java
@@@ -1,203 -1,0 +1,202 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.ignite.internal.processors.query.calcite.integration;
 +
++import java.util.ArrayList;
++import java.util.LinkedHashMap;
 +import java.util.List;
 +import org.apache.ignite.internal.IgniteEx;
 +import org.apache.ignite.internal.cache.query.index.Index;
 +import org.apache.ignite.internal.cache.query.index.SortOrder;
 +import org.apache.ignite.internal.cache.query.index.sorted.IndexKeyDefinition;
 +import org.apache.ignite.internal.cache.query.index.sorted.inline.InlineIndex;
 +import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
 +import org.apache.ignite.internal.processors.query.IgniteSQLException;
 +import org.apache.ignite.internal.util.typedef.F;
 +import org.apache.ignite.lang.IgnitePredicate;
 +import org.apache.ignite.testframework.GridTestUtils;
 +import org.junit.Test;
 +
 +/** */
 +public class IndexDdlIntegrationTest extends AbstractDdlIntegrationTest {
 +    /** Cache name. */
 +    private static final String CACHE_NAME = "my_cache";
 +
 +    /** {@inheritDoc} */
 +    @Override public void init() {
 +        super.init();
 +
 +        executeSql("create table my_table(id int, val_int int, val_str varchar) with cache_name=\"" + CACHE_NAME + "\"");
 +    }
 +
 +    /**
 +     * Creates and drops index.
 +     */
 +    @Test
 +    public void createDropIndexSimpleCase() {
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index my_index on my_table(id)");
 +
 +        assertNotNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("drop index my_index");
 +
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +    }
 +
 +    /**
 +     * Creates and drops index on not default schema.
 +     */
 +    @Test
 +    public void createDropIndexWithSchema() {
 +        String cacheName = "cache2";
 +
 +        executeSql("create table my_schema.my_table2(id int) with cache_name=\"" + cacheName + "\"");
 +
 +        assertNull(findIndex(cacheName, "my_index2"));
 +
 +        executeSql("create index my_index2 on my_schema.my_table2(id)");
 +
 +        assertNotNull(findIndex(cacheName, "my_index2"));
 +
 +        GridTestUtils.assertThrowsAnyCause(log, () -> executeSql("drop index my_index2"), IgniteSQLException.class,
 +            "Index doesn't exist");
 +
 +        assertNotNull(findIndex(cacheName, "my_index2"));
 +
 +        executeSql("drop index my_schema.my_index2");
 +
 +        assertNull(findIndex(cacheName, "my_index2"));
 +    }
 +
 +    /**
 +     * Creates index with "if not exists" clause.
 +     */
 +    @Test
 +    public void createIndexWithIfNotExistsClause() {
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index if not exists my_index on my_table(id)");
 +
 +        GridTestUtils.assertThrowsAnyCause(log, () -> executeSql("create index my_index on my_table(val_int)"),
 +            IgniteSQLException.class, "Index already exists");
 +
 +        assertNotNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index if not exists my_index on my_table(val_str)");
 +
 +        Index idx = findIndex(CACHE_NAME, "my_index");
 +
 +        assertNotNull(idx);
 +
-         List<IndexKeyDefinition> keyDefs = indexKeyDefinitions(idx);
++        List<String> keys = new ArrayList<>(indexKeyDefinitions(idx).keySet());
 +
-         assertEquals("ID", keyDefs.get(0).name());
++        assertEquals("ID", keys.get(0));
 +    }
 +
 +    /**
 +     * Creates drops index with "if exists" clause.
 +     */
 +    @Test
 +    public void dropIndexWithIfExistsClause() {
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index my_index on my_table(id)");
 +
 +        assertNotNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("drop index if exists my_index");
 +
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("drop index if exists my_index");
 +
 +        GridTestUtils.assertThrowsAnyCause(log, () -> executeSql("drop index my_index"), IgniteSQLException.class,
 +            "Index doesn't exist");
 +    }
 +
 +    /**
 +     * Creates index with different columns ordering.
 +     */
 +    @Test
 +    public void createIndexWithColumnsOrdering() {
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index my_index on my_table(id, val_int asc, val_str desc)");
 +
 +        Index idx = findIndex(CACHE_NAME, "my_index");
 +
 +        assertNotNull(idx);
 +
-         List<IndexKeyDefinition> keyDefs = indexKeyDefinitions(idx);
++        LinkedHashMap<String, IndexKeyDefinition> keyDefs = indexKeyDefinitions(idx);
++        List<String> keys = new ArrayList<>(keyDefs.keySet());
 +
-         assertEquals("ID", keyDefs.get(0).name());
-         assertEquals(SortOrder.ASC, keyDefs.get(0).order().sortOrder());
-         assertEquals("VAL_INT", keyDefs.get(1).name());
-         assertEquals(SortOrder.ASC, keyDefs.get(1).order().sortOrder());
-         assertEquals("VAL_STR", keyDefs.get(2).name());
-         assertEquals(SortOrder.DESC, keyDefs.get(2).order().sortOrder());
++        assertEquals("ID", keys.get(0));
++        assertEquals(SortOrder.ASC, keyDefs.get(keys.get(0)).order().sortOrder());
++        assertEquals("VAL_INT", keys.get(1));
++        assertEquals(SortOrder.ASC, keyDefs.get(keys.get(1)).order().sortOrder());
++        assertEquals("VAL_STR", keys.get(2));
++        assertEquals(SortOrder.DESC, keyDefs.get(keys.get(2)).order().sortOrder());
 +    }
 +
 +    /**
 +     * Creates index with inline size.
 +     */
 +    @Test
 +    public void createIndexWithInlineSize() {
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index my_index on my_table(val_str) inline_size 10");
 +
 +        Index idx = findIndex(CACHE_NAME, "my_index");
 +
 +        assertNotNull(idx);
 +
 +        InlineIndex inlineIdx = idx.unwrap(InlineIndex.class);
 +
 +        assertNotNull(inlineIdx);
 +        assertEquals(10, inlineIdx.inlineSize());
 +    }
 +
 +    /**
 +     * Creates index with inline size.
 +     */
 +    @Test
 +    public void createIndexWithParallel() {
 +        assertNull(findIndex(CACHE_NAME, "my_index"));
 +
 +        executeSql("create index my_index on my_table(val_str) parallel 10");
 +
 +        assertNotNull(findIndex(CACHE_NAME, "my_index"));
 +    }
 +
 +    /** */
 +    private Index findIndex(String cacheName, String idxName) {
 +        IgniteEx node = grid(0);
 +
 +        IgniteInternalCache<?, ?> cache = node.cachex(cacheName);
 +
 +        return F.find(node.context().indexProcessor().indexes(cache.context()), null,
 +            (IgnitePredicate<Index>)i -> idxName.equalsIgnoreCase(i.name()));
 +    }
 +
 +    /** */
-     private static List<IndexKeyDefinition> indexKeyDefinitions(Index idx) {
-         InlineIndex inlineIdx = idx.unwrap(InlineIndex.class);
- 
-         assertNotNull(inlineIdx);
- 
-         return inlineIdx.segment(0).rowHandler().indexKeyDefinitions();
++    private LinkedHashMap<String, IndexKeyDefinition> indexKeyDefinitions(Index idx) {
++        return grid(0).context().indexProcessor().indexDefinition(idx.id()).indexKeyDefinitions();
 +    }
 +}
diff --cc modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/KillCommandDdlIntegrationTest.java
index ab21d7b,0000000..120df5a
mode 100644,000000..100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/KillCommandDdlIntegrationTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/KillCommandDdlIntegrationTest.java
@@@ -1,304 -1,0 +1,310 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.ignite.internal.processors.query.calcite.integration;
 +
 +import java.util.Collection;
 +import java.util.Iterator;
 +import java.util.List;
 +import java.util.UUID;
 +import java.util.concurrent.CountDownLatch;
 +import java.util.concurrent.atomic.AtomicInteger;
 +import java.util.concurrent.atomic.AtomicReference;
 +import java.util.stream.Collectors;
 +import javax.cache.Cache;
 +import javax.cache.event.CacheEntryEvent;
 +import org.apache.ignite.Ignite;
 +import org.apache.ignite.IgniteCache;
 +import org.apache.ignite.IgniteCheckedException;
 +import org.apache.ignite.IgniteException;
 +import org.apache.ignite.cache.CacheAtomicityMode;
 +import org.apache.ignite.cache.query.ContinuousQuery;
 +import org.apache.ignite.cache.query.QueryCursor;
 +import org.apache.ignite.cache.query.ScanQuery;
 +import org.apache.ignite.configuration.CacheConfiguration;
 +import org.apache.ignite.internal.util.typedef.G;
 +import org.apache.ignite.lang.IgniteFuture;
 +import org.apache.ignite.lang.IgniteUuid;
 +import org.apache.ignite.services.Service;
 +import org.apache.ignite.services.ServiceConfiguration;
 +import org.apache.ignite.services.ServiceContext;
 +import org.apache.ignite.spi.systemview.view.ComputeJobView;
 +import org.apache.ignite.spi.systemview.view.ContinuousQueryView;
 +import org.apache.ignite.spi.systemview.view.ScanQueryView;
 +import org.apache.ignite.spi.systemview.view.SystemView;
 +import org.apache.ignite.transactions.Transaction;
 +import org.junit.Test;
 +
 +import static org.apache.ignite.internal.managers.systemview.ScanQuerySystemView.SCAN_QRY_SYS_VIEW;
 +import static org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.CQ_SYS_VIEW;
 +import static org.apache.ignite.internal.processors.job.GridJobProcessor.JOBS_VIEW;
 +import static org.apache.ignite.internal.processors.service.IgniteServiceProcessor.SVCS_VIEW;
 +import static org.apache.ignite.testframework.GridTestUtils.assertThrowsWithCause;
 +import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
 +
 +/**
 + * Tests for KILL queries.
 + */
 +public class KillCommandDdlIntegrationTest extends AbstractDdlIntegrationTest {
 +    /** Page size. */
 +    public static final int PAGE_SZ = 5;
 +
 +    /** Number of pages to insert. */
 +    public static final int PAGES_CNT = 1000;
 +
 +    /** Operations timeout. */
 +    public static final int TIMEOUT = 10_000;
 +
 +    /** {@inheritDoc} */
 +    @Override protected void beforeTestsStarted() throws Exception {
 +        super.beforeTestsStarted();
 +
 +        IgniteCache<Object, Object> cache = client.getOrCreateCache(
 +            new CacheConfiguration<>(DEFAULT_CACHE_NAME).setIndexedTypes(Integer.class, Integer.class)
 +                .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL));
 +
 +        // There must be enough cache entries to keep scan query cursor opened.
 +        // Cursor may be concurrently closed when all the data retrieved.
 +        for (int i = 0; i < PAGES_CNT * PAGE_SZ; i++)
 +            cache.put(i, i);
 +    }
 +
 +    /** */
 +    @Override public void cleanUp() {
 +        // No-op.
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelScanQuery() {
 +        IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 +
 +        QueryCursor<Cache.Entry<Object, Object>> scanQry = cache.query(new ScanQuery<>().setPageSize(PAGE_SZ));
 +        Iterator<Cache.Entry<Object, Object>> scanQryIter = scanQry.iterator();
 +
 +        // Fetch first entry and therefore caching first page.
 +        assertNotNull(scanQryIter.next());
 +
 +        SystemView<ScanQueryView> queries = grid(0).context().systemView().view(SCAN_QRY_SYS_VIEW);
 +        assertEquals(1, queries.size());
 +        ScanQueryView qryView = queries.iterator().next();
 +
 +        long qryId = qryView.queryId();
 +        UUID originNodeId = qryView.originNodeId();
 +
 +        executeSql(client, "KILL SCAN '" + originNodeId + "' '" + DEFAULT_CACHE_NAME + "' " + qryId);
 +
 +        // Fetch all cached entries.
 +        for (int i = 0; i < PAGE_SZ * servers().size() - 1; i++)
 +            assertNotNull(scanQryIter.next());
 +
-         // Fetch of the next page should throw the exception.
-         assertThrowsWithCause(scanQryIter::next, IgniteCheckedException.class);
++        // New page is delivered in parallel to iterating, eventually exception should be thrown
++        // but before all entries are read by query iterator.
++        assertThrowsWithCause(() -> {
++            for (int i = 0; i < PAGE_SZ * (PAGES_CNT - servers().size()); i++)
++                assertNotNull(scanQryIter.next());
++
++            return null;
++        }, IgniteCheckedException.class);
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelComputeTask() throws Exception {
 +        CountDownLatch computeLatch = new CountDownLatch(1);
 +
 +        IgniteFuture<Collection<Integer>> fut = client.compute().broadcastAsync(() -> {
 +            computeLatch.await();
 +
 +            return 1;
 +        });
 +
 +        try {
 +            AtomicReference<ComputeJobView> jobViewHolder = new AtomicReference<>();
 +            boolean res = waitForCondition(() -> {
 +                SystemView<ComputeJobView> jobs = grid(0).context().systemView().view(JOBS_VIEW);
 +
 +                if (jobs.size() >= 1) {
 +                    assertEquals(1, jobs.size());
 +                    jobViewHolder.set(jobs.iterator().next());
 +                    return true;
 +                }
 +
 +                return false;
 +            }, TIMEOUT);
 +
 +            assertTrue(res);
 +
 +            executeSql(client, "KILL COMPUTE '" + jobViewHolder.get().id() + "'");
 +
 +            assertThrowsWithCause(() -> fut.get(TIMEOUT), IgniteException.class);
 +        }
 +        finally {
 +            computeLatch.countDown();
 +        }
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelTx() {
 +        IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 +
 +        int testKey = PAGES_CNT * (PAGE_SZ + 1);
 +
 +        try (Transaction tx = client.transactions().txStart()) {
 +            cache.put(testKey, 1);
 +
 +            executeSql(client, "KILL TRANSACTION '" + tx.xid() + "'");
 +
 +            assertThrowsWithCause(tx::commit, IgniteException.class);
 +        }
 +
 +        assertNull(cache.get(testKey));
 +    }
 +
 +    /** @throws Exception If failed. */
 +    @Test
 +    public void testCancelService() throws Exception {
 +        String serviceName = "MY_SERVICE";
 +
 +        ServiceConfiguration scfg = new ServiceConfiguration();
 +        scfg.setName(serviceName);
 +        scfg.setMaxPerNodeCount(1);
 +        scfg.setNodeFilter(grid(0).cluster().predicate());
 +        scfg.setService(new TestServiceImpl());
 +
 +        client.services().deploy(scfg);
 +
 +        TestService svc = client.services().serviceProxy(serviceName, TestService.class, true);
 +        assertNotNull(svc);
 +
 +        executeSql(client, "KILL SERVICE '" + serviceName + "'");
 +
 +        boolean res = waitForCondition(() -> grid(0).context().systemView().view(SVCS_VIEW).size() == 0, TIMEOUT);
 +        assertTrue(res);
 +    }
 +
 +    /** @throws Exception If failed. */
 +    @Test
 +    public void testCancelContinuousQuery() throws Exception {
 +        IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 +
 +        ContinuousQuery<Integer, Integer> cq = new ContinuousQuery<>();
 +
 +        AtomicInteger cntr = new AtomicInteger();
 +
 +        cq.setInitialQuery(new ScanQuery<>());
 +        cq.setTimeInterval(1_000L);
 +        cq.setPageSize(PAGE_SZ);
 +        cq.setLocalListener(events -> {
 +            for (CacheEntryEvent<? extends Integer, ? extends Integer> e : events) {
 +                assertNotNull(e);
 +
 +                cntr.incrementAndGet();
 +            }
 +        });
 +
 +        cache.query(cq);
 +
 +        for (int i = 0; i < PAGE_SZ * PAGE_SZ; i++)
 +            cache.put(i, i);
 +
 +        boolean res = waitForCondition(() -> cntr.get() == PAGE_SZ * PAGE_SZ, TIMEOUT);
 +        assertTrue(res);
 +
 +        SystemView<ContinuousQueryView> contQueries = grid(0).context().systemView().view(CQ_SYS_VIEW);
 +        assertEquals(1, contQueries.size());
 +
 +        ContinuousQueryView cqView = contQueries.iterator().next();
 +        UUID nodeId = cqView.nodeId();
 +        UUID routineId = cqView.routineId();
 +
 +        executeSql(client, "KILL CONTINUOUS '" + nodeId + "' '" + routineId + "'");
 +
 +        long cnt = cntr.get();
 +
 +        for (int i = 0; i < PAGE_SZ * PAGE_SZ; i++)
 +            cache.put(i, i);
 +
 +        res = waitForCondition(() -> contQueries.size() == 0, TIMEOUT);
 +        assertTrue(res);
 +        assertEquals(cnt, cntr.get());
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelUnknownScanQuery() {
 +        executeSql(client, "KILL SCAN '" + client.localNode().id() + "' 'unknown' 1");
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelUnknownComputeTask() {
 +        executeSql(client, "KILL COMPUTE '" + IgniteUuid.randomUuid() + "'");
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelUnknownService() {
 +        executeSql(client, "KILL SERVICE 'unknown'");
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelUnknownTx() {
 +        executeSql(client, "KILL TRANSACTION '" + IgniteUuid.randomUuid() + "'");
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCancelUnknownContinuousQuery() {
 +        executeSql(client, "KILL CONTINUOUS '" + grid(0).localNode().id() + "' '" + UUID.randomUUID() + "'");
 +    }
 +
 +    /** */
 +    private static List<Ignite> servers() {
 +        return G.allGrids().stream().filter(g -> !g.cluster().localNode().isClient()).collect(Collectors.toList());
 +    }
 +
 +    /** */
 +    public interface TestService extends Service {
 +        /** */
 +        public void doTheJob();
 +    }
 +
 +    /** */
 +    public static class TestServiceImpl implements TestService {
 +        /** {@inheritDoc} */
 +        @Override public void cancel(ServiceContext ctx) {
 +            // No-op.
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void init(ServiceContext ctx) {
 +            // No-op.
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void execute(ServiceContext ctx) {
 +            // No-op.
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void doTheJob() {
 +            // No-op.
 +        }
 +    }
 +}
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryTypeDescriptorImpl.java
index 66cdfcf,d209f62..1d30ad8
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryTypeDescriptorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryTypeDescriptorImpl.java
@@@ -135,9 -136,9 +136,12 @@@ public class QueryTypeDescriptorImpl im
      /** Primary key fields. */
      private Set<String> pkFields;
  
+     /** Logger. */
+     private final IgniteLogger log;
+ 
 +    /** */
 +    private boolean implicitPk;
 +
      /**
       * Constructor.
       *
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/config/StatisticsObjectConfiguration.java
index 31d1219,b6292b8..32d1ddd
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/config/StatisticsObjectConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/config/StatisticsObjectConfiguration.java
@@@ -75,15 -74,6 +74,15 @@@ public class StatisticsObjectConfigurat
      }
  
      /**
 +     * Constructor.
 +     *
 +     * @param key Statistics key.
 +     */
 +    public StatisticsObjectConfiguration(StatisticsKey key) {
-         this(key, null, DEFAULT_OBSOLESCENCE_MAX_PERCENT);
++        this(key, Collections.emptyList(), DEFAULT_OBSOLESCENCE_MAX_PERCENT);
 +    }
 +
 +    /**
       * Merge configuration changes with existing configuration.
       *
       * @param oldCfg Previous configuration.