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.