SQL planning, constraints, control commands and discovery
This page is a public product-spec reconstruction from Apache Ignite 2 test sources at revision 486a6367610c4c891b729e89373695ef83165345.
These requirements cover tested SQL planner behavior, NOT NULL constraint enforcement, distributed SQL splitting, control-command operator contracts, and TCP discovery convergence.
User-facing guarantees
- SQL planners choose and expose expected join/index/filter/order plans for Calcite and H2-covered scenarios.
- NOT NULL constraints are enforced through SQL DDL/DML and cache API write paths covered by tests.
- Control commands report cache diagnostics, baseline/cluster state, help/verbose/experimental output, snapshots, WAL, and warm-up behavior with operator-readable diagnostics.
- TCP client/server discovery converges across join/leave/failure/reconnect/timing cases covered by the test fixtures.
Traceable requirements
Only negative or ambiguous test status is annotated after a test name, for example status=failed, status=flaky, status=ignored, or status=mixed.
REQ-B4-CALCITE-MERGE-JOIN-PLANNER — Calcite planner selects merge join only for supported equi/is-not-distinct join conditions
Requirement: Calcite planner selects merge join only for supported equi/is-not-distinct join conditions, derives or preserves input collation through inner/right/left/full joins, avoids top sorts when child ordering is sufficient, and does not use merge join for non-equi joins.
Why: join planning must exploit ordering without introducing invalid physical plans.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testFullPassThroughOrderByLeft1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testFullPassThroughOrderByRight1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDeriveMixed1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDeriveMixed2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft10org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft11org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft12org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft13org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft3org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft4org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft5org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft6org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft7org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft8org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveLeft9org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight10org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight3org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight4org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight5org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight6org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight7org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight8org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerDerivePreserveRight9org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft10org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft11org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft12org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft13org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft14org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft15org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft16org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft3org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft4org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft5org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft6org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft7org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft8org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByLeft9org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight10org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight11org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight3org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight4org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight5org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight6org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight7org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight8org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testInnerPassThroughOrderByRight9org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testIsNotDistinctorg.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testIsNotDistinctWithFilterorg.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testLeftPassThroughOrderByRight1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testLeftPassThroughOrderByRight2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testMergeJoinIsNotAppliedForNonEquiJoinorg.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByLeft1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByLeft2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByRight1org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByRight2org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByRight3org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByRight4org.apache.ignite.internal.processors.query.calcite.planner.MergeJoinPlannerTest.testRightPassThroughOrderByRight5
REQ-B4-CALCITE-SECONDARY-INDEX-FILTERS — Calcite SQL uses primary-key
Requirement: Calcite SQL uses primary-key, affinity-key, secondary, date, and composite indexes for eligible equality/range/AND/OR filters and falls back to table scans where fields are not indexed or conditions are not indexable, while preserving result rows.
Why: users get predictable indexed access without wrong answers.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition1org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition10org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition11org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition12org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition13org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition14org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition15org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition16org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition2org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition3org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition4org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition5org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition6org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition7org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition8org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexCondition9org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testEmptyResultorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testEqualsFilterWithAffIdxorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testEqualsFilterWithPkIdx1org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testEqualsFilterWithUnwrpKeyorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testEqualsFilterWithUnwrpKeyAndAfforg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedDateFieldBetweenFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedDateFieldEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedDateFieldEqualsParameterFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedDateFieldGreaterThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedDateFieldLessThanOrEqualFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedFieldEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedFieldGreaterThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedFieldGreaterThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedFieldLessThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedFieldLessThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexedNameDateFieldEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexLoopJoinorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyAliasEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyAliasGreaterThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyAliasGreaterThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyAliasLessThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyAliasLessThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyColumnEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyColumnGreaterThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyColumnGreaterThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyColumnLessThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testKeyColumnLessThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testMergeJoinorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testNoFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testNonIndexedFieldEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testNonIndexedFieldGreaterThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testNonIndexedFieldGreaterThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testNonIndexedFieldLessThanFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testNonIndexedFieldLessThanOrEqualsFilterorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrCondition1org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrCondition2org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrCondition3org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrCondition4org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrCondition5
REQ-B4-CALCITE-SECONDARY-INDEX-ORDER — Calcite SQL can satisfy ORDER BY and range-bound queries from suitable indexes
Requirement: Calcite SQL can satisfy ORDER BY and range-bound queries from suitable indexes, avoid redundant sort/project nodes in eligible cases, merge overlapping index bounds, and keep correct ordering/results for indexed and non-indexed order expressions.
Why: sorted/range queries should be efficient and stable.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testComplexIndexExpressionorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testIndexBoundsMergeorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrderByDepIdorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrderByKey— status=ignoredorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrderByKeyAliasorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrderByNameCityAscorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrderByNameCityDescorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testOrderByNoIndexedColumnorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testSelectWithRangesorg.apache.ignite.internal.processors.query.calcite.integration.CalciteBasicSecondaryIndexIntegrationTest.testToPlanQueryWithAllOperator
REQ-B4-CONTROL-CACHE-DIAGNOSTICS — control utility cache commands detect idle-verify conflicts
Requirement: The control utility cache commands detect idle-verify conflicts, write/read dumps, filter caches/groups/nodes/system caches, scan cache entries in default/table/JSON formats with limits, show cache configuration/affinity/distribution, reset lost partitions, clear caches with confirmation, and report garbage absence.
Why: operators need accurate cache inspection and repair tooling.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheAffinityorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheClearorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigMultiLineOutputFormatSingleNodeSingleCacheorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigMultiLineOutputFormatTwoNodeManyCachesorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigMultiLineOutputFormatTwoNodeSingleCacheorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigNoOutputFormatorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigSingleLineOutputFormatSingleNodeSignleCacheorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigSingleLineOutputFormatTwoNodeManyCachesorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheConfigSingleLineOutputFormatTwoNodeSignleCacheorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheContentionorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheCreateorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheDestroyorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheDistributionorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheGroupsorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheHelporg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumporg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpExcludedCacheGrporg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpExcludedCachesorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpFileorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpForCorruptedDataorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpForCorruptedDataOnPersistenceClientCacheorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpForCorruptedDataOnSystemCacheorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyDumpSkipZerosUpdateCountersorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyForCorruptedDataorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyMultipleCacheFilterOptionsorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyNodeFilterorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheIdleVerifyTwoConflictTypesorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheResetLostPartitionsorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheScanorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheScanJsonFormatorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheScanLimitorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCacheScanTableFormatorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testFindAndDeleteGarbageorg.apache.ignite.util.GridCommandHandlerTest.testCacheGroupKeyChangeorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyCrcWithCorruptedPartitionorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyDumpCrcWithCorruptedPartitionorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyDumpForCorruptedDataOnNonePersistenceClientCacheorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyDumpWhenNodeFailingorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyDumpWhenSeveralNodesFailingorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyExpiringEntriesorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyLogLevelDebugorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyMovingPartsorg.apache.ignite.util.GridCommandHandlerTest.testCacheIdleVerifyPrintLostPartitionsorg.apache.ignite.util.GridCommandHandlerTest.testCacheSequenceorg.apache.ignite.util.GridCommandHandlerTest.testCleaningGarbageAfterCacheDestroyedAndNodeStop_ControlConsoleUtilorg.apache.ignite.util.GridCommandHandlerTest.testIdleVerifyCancelOnCheckpointorg.apache.ignite.util.GridCommandHandlerTest.testIdleVerifyCancelWhileCalcPartitionHashRunningorg.apache.ignite.util.GridCommandHandlerTest.testIdleVerifyCheckCrcFailsOnNotIdleClusterorg.apache.ignite.util.GridCommandHandlerTest.testIdleVerifyOnInactiveClusterWithPersistence
REQ-B4-CONTROL-CLUSTER-STATE-BASELINE — control utility reports and changes cluster state/tag/baseline/shutdown policy
Requirement: The control utility reports and changes cluster state/tag/baseline/shutdown policy, transaction info, and connectivity diagnostics with validated arguments, state transitions, and operator-visible output.
Why: operators need reliable cluster lifecycle and diagnostic commands.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.util.GridCommandHandlerClusterByClassTest.testBaselineAutoAdjustmentSettingsorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testOldReadOnlyApiNotAvailableorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testTransactionHistoryInfoorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testTransactionInfoorg.apache.ignite.util.GridCommandHandlerTest.setConsistenceIdsWithOfflineBaselineNodeorg.apache.ignite.util.GridCommandHandlerTest.testActivateorg.apache.ignite.util.GridCommandHandlerTest.testActiveTransactionsorg.apache.ignite.util.GridCommandHandlerTest.testBaselineAddorg.apache.ignite.util.GridCommandHandlerTest.testBaselineAddOnNotActiveClusterorg.apache.ignite.util.GridCommandHandlerTest.testBaselineAutoAdjustmentAutoAddNodeorg.apache.ignite.util.GridCommandHandlerTest.testBaselineAutoAdjustmentAutoRemoveNodeorg.apache.ignite.util.GridCommandHandlerTest.testBaselineCollectorg.apache.ignite.util.GridCommandHandlerTest.testBaselineCollectCrdorg.apache.ignite.util.GridCommandHandlerTest.testBaselineRemoveorg.apache.ignite.util.GridCommandHandlerTest.testBaselineRemoveOnNotActiveClusterorg.apache.ignite.util.GridCommandHandlerTest.testBaselineSetorg.apache.ignite.util.GridCommandHandlerTest.testBaselineSetWithOfflineNodeorg.apache.ignite.util.GridCommandHandlerTest.testBaselineVersionorg.apache.ignite.util.GridCommandHandlerTest.testClusterChangeTagorg.apache.ignite.util.GridCommandHandlerTest.testClusterStateInBaselineCommandorg.apache.ignite.util.GridCommandHandlerTest.testConnectivityCommandWithFailedNodesorg.apache.ignite.util.GridCommandHandlerTest.testConnectivityCommandWithNodeExitorg.apache.ignite.util.GridCommandHandlerTest.testConnectivityCommandWithoutFailedNodesorg.apache.ignite.util.GridCommandHandlerTest.testDeactivateorg.apache.ignite.util.GridCommandHandlerTest.testDeactivateNonPersistentorg.apache.ignite.util.GridCommandHandlerTest.testDeactivateWithCheckClusterNameInConfirmationByDefaultorg.apache.ignite.util.GridCommandHandlerTest.testDeactivateWithCheckClusterNameInConfirmationBySystemPropertyorg.apache.ignite.util.GridCommandHandlerTest.testKillHangingLocalTransactionsorg.apache.ignite.util.GridCommandHandlerTest.testKillHangingRemoteTransactionsorg.apache.ignite.util.GridCommandHandlerTest.testReadOnlyEnableDisableorg.apache.ignite.util.GridCommandHandlerTest.testSetStateorg.apache.ignite.util.GridCommandHandlerTest.testShutdownPolicyorg.apache.ignite.util.GridCommandHandlerTest.testShutdownPolicyChangeorg.apache.ignite.util.GridCommandHandlerTest.testState
REQ-B4-CONTROL-HELP-VERBOSE-EXPERIMENTAL — control utility help
Requirement: The control utility help, cache help, offline command dispatch, timestamp footer, experimental-command gating, and verbose error handling expose documented commands and stack traces according to flags.
Why: operators need discoverable and debuggable CLI behavior.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.util.GridCommandHandlerClusterByClassTest.testContainsExperimentalCmdInHelpOutputorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testContainsNotExperimentalCmdInHelpOutputWhenEnableExperimentalFalseorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testContainsNotExperimentalCmdInHelpOutputWhenEnableExperimentalTrueorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testContainsWarnInsteadExecExperimentalCmdWhenEnableExperimentalFalseorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testCorrectExecCmdWithVerboseInDiffParamsOrderorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testErrConnectionWithVerboseorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testErrInvalidArgumentsWithVerboseorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testErrUnexpectedWithWithoutVerboseorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testHelporg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testNotContainsExperimentalCmdInHelpOutputorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testPrintTimestampAtEndsOfExecutionorg.apache.ignite.util.GridCommandHandlerTest.testChangeReencryptionRateorg.apache.ignite.util.GridCommandHandlerTest.testDiagnosticPageLocksTrackerorg.apache.ignite.util.GridCommandHandlerTest.testMasterKeyChangeorg.apache.ignite.util.GridCommandHandlerTest.testMasterKeyChangeOnInactiveClusterorg.apache.ignite.util.GridCommandHandlerTest.testOfflineCommandorg.apache.ignite.util.GridCommandHandlerTest.testReencryptionSuspendAndResumeorg.apache.ignite.util.GridCommandHandlerTest.testSetInactiveNonPersistent
REQ-B4-CONTROL-SNAPSHOT-WAL-WARMUP — control utility snapshot
Requirement: The control utility snapshot, WAL, and warm-up commands validate arguments, create/check/cancel/restore full and incremental snapshots including custom directories and synchronous mode, surface warnings/errors, report status, restrict inactive-cluster operations, target unused WAL by node, and stop warm-up when supported.
Why: persistence operations must be observable and recoverable from CLI.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.util.GridCommandHandlerClusterByClassTest.testUnusedWalDeleteorg.apache.ignite.util.GridCommandHandlerClusterByClassTest.testUnusedWalPrintorg.apache.ignite.util.GridCommandHandlerTest.testCancelSnapshotorg.apache.ignite.util.GridCommandHandlerTest.testChangeSnapshotTransferRateInRuntimeorg.apache.ignite.util.GridCommandHandlerTest.testCheckSnapshotorg.apache.ignite.util.GridCommandHandlerTest.testClusterCreateSnapshotWarningorg.apache.ignite.util.GridCommandHandlerTest.testClusterCreateSnapshotWarningAndErrororg.apache.ignite.util.GridCommandHandlerTest.testClusterSnapshotCreateorg.apache.ignite.util.GridCommandHandlerTest.testClusterSnapshotCreateSynchronouslyorg.apache.ignite.util.GridCommandHandlerTest.testClusterSnapshotOnInactiveorg.apache.ignite.util.GridCommandHandlerTest.testFailStopWarmUporg.apache.ignite.util.GridCommandHandlerTest.testIncrementalSnapshotRestoreorg.apache.ignite.util.GridCommandHandlerTest.testSnapshotCreateCheckAndRestoreCustomDirorg.apache.ignite.util.GridCommandHandlerTest.testSnapshotRestoreorg.apache.ignite.util.GridCommandHandlerTest.testSnapshotRestoreCancelAndStatusorg.apache.ignite.util.GridCommandHandlerTest.testSnapshotRestoreSynchronouslyorg.apache.ignite.util.GridCommandHandlerTest.testSnapshotStatusorg.apache.ignite.util.GridCommandHandlerTest.testSnapshotStatusInMemoryorg.apache.ignite.util.GridCommandHandlerTest.testSuccessStopWarmUp
REQ-B4-DISCOVERY-TCP-CLIENT — TCP client discovery supports client join/leave/fail events
Requirement: TCP client discovery supports client join/leave/fail events, client/server pings, router failover/reconnect after suspend/network/topology changes, missed-message recovery, segmentation, metrics/data exchange, duplicate-ID and join-timeout errors, client worker startup, concurrent joins, disabled reconnect failure handling, forced reconnect, and stable grid start time.
Why: client nodes must remain observable and recover from discovery disruptions without corrupting topology.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientAndRouterFailorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientFailReconnectDisabledorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientMessageWorkerStartSingleServerorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientMessageWorkerStartTwoServers1org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientMessageWorkerStartTwoServers2org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientNodeFailorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientNodeFailOneServerorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientNodeJoinorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientNodeJoinOneServerorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientNodeLeaveorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientNodeLeaveOneServerorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectHistoryMissingOnRouterorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectOneServerOneClientorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectOnNetworkProblemorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectOnRouterFailorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectOnRouterSuspendorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectOnRouterSuspendTopologyChangeorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectTopologyChange1org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientReconnectTopologyChange2org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientSegmentationorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testClientToClientPingorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testDataExchangeFromClientorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testDataExchangeFromServerorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testDataExchangeFromServer2org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testDisconnectAfterNetworkTimeoutorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testDuplicateIdorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testForceClientReconnectorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testGetMissedMessagesOnReconnectorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testGridStartTimeorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinErrororg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinError2org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinError3org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinErrorMissedAddFinishedMessage1org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinErrorMissedAddFinishedMessage2org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinMutlithreadedorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testJoinTimeoutorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testMetricsorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testPingorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testPingFailedClientNodeorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testPingFailedNodeFromClientorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectAfterFailorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectAfterFailConcurrentJoinorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectAfterFailTopologyChangedorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectAfterMassiveTopologyChangeorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectAfterPauseorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectClusterRestartorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectSegmentedAfterJoinTimeoutNetworkErrororg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testReconnectSegmentedAfterJoinTimeoutServerFailedorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testServerNodeFailorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testServerNodeJoinorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testServerNodeLeaveorg.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest.testTimeoutWaitingNodeAddedMessage
REQ-B4-DISCOVERY-TCP-SERVER — TCP server discovery supports node start/stop
Requirement: TCP server discovery supports node start/stop, ping/failure detection, node add/leave/fail events, metrics propagation, IP finder cleanup/multicast validation, join timeout/duplicate/loopback errors, custom event races/coordinator failures, failed-node recovery, topology cleanup, marshaller-data filtering, discovery-data deduplication, ring latency checks, and unresolved-address filtering.
Why: server topology membership must converge predictably under normal and failure conditions.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCheckRingLatencyorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCoordinatorNodeFailureorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCoordinatorNodeLeaveorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCustomEventAckNotSendorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCustomEventCoordinatorFailure1org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCustomEventCoordinatorFailure2org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCustomEventRace1_1org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCustomEventRace1_2org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testCustomEventRace1_3org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testDirtyIpFinderorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testDiscoveryEventsDiscardorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testDuplicatedDiscoveryDataRemovedorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testDuplicateIdorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailBeforeNodeAddedSentorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailBeforeNodeLeftSentorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedCoordinatorNodeorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedCoordinatorNodeNoopSegmentationPolicyorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedNodeRestoreConnectionorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedNodes1org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedNodes2org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedNodes3org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedNodes4org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailedNodes5org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailureDetectionOnNodePing1org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailureDetectionOnNodePing2org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testFailureDetectionOnNodePing3org.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testGetEffectiveNodeAddressesFiltersUnresolvedAddressWithoutNpeorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testGridStartTimeorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testInvalidAddressIpFinderorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testIpFinderCleaningorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testJoinTimeoutorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testJoinTimeoutForIpFinderorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testLoopbackProblemFirstNodeOnLoopbackorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testLoopbackProblemSecondNodeOnLoopbackorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testMetricsSendingorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testMulticastIpFinderorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNodeAddedorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNodeConnectMessageSizeorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNodeShutdownOnRingMessageWorkerFailureorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNodeShutdownOnRingMessageWorkerStartNotFinishedorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNoExtraNodeFailedMessageorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNonSharedIpFinderorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testNoRingMessageWorkerAbnormalFailureOnSegmentationorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testOrdinaryNodeFailureorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testOrdinaryNodeLeaveorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testPingorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testPingInterruptedOnNodeFailedorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testPingInterruptedOnNodeLeftorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testSingleNodeStartStoporg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testSystemMarshallerTypesFilteredOutorg.apache.ignite.spi.discovery.tcp.TcpDiscoverySelfTest.testThreeNodesStartStop
REQ-B4-H2-SUBQUERY-JOIN-OPT — H2 SQL subquery join optimization preserves query semantics while applying eligible rewrites for SELECT expressions
Requirement: H2 SQL subquery join optimization preserves query semantics while applying eligible rewrites for SELECT expressions, table-list subqueries, EXISTS/IN/NOT IN predicates, aliases, constants, UNION branches, casts, CASE expressions, left joins with false predicates, and nested subqueries; unsupported aggregate/distinct/correlated shapes remain unoptimized.
Why: users get faster distributed SQL without changing query answers.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testAndClauseorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testConstantSubQueryorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testDifferentOperatorsWithSubqueryUnderSelectorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClause1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClause2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClause3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClause4org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClause5org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClause6org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClauseCompoundPkorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsClauseMultipleorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testExistsOperatorWithSubqueryUnderSelectorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInCauseorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause4org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause5org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause6org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClause7org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClauseCompoundPkorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testInClauseMultipleorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testNotInClauseorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOperationWithSubQueryorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationAlias1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationAlias2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationAlias3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationAlias4org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationAliasUnionorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationAppliedToUnionorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationCaseWhenorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationCastFunctionorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationConstant1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationConstant2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationLeftJoinSubqueryOnLeftorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationLeftJoinWhereFalseorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationLeftJoinWhereFalse2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationLeftJoinWhereFalse3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationShouldNotBeApplied1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationShouldNotBeApplied2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationShouldNotBeApplied3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationShouldNotBeApplied4org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationShouldNotBeApplied5org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testOptimizationShouldNotBeApplied6org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpression1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpression2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpression3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpression4org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpression5org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpressionCompoundPkorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpressionMultiple1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSelectExpressionMultiple2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testSeveralNestedSubqueriesorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList1org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList10org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList2org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList3org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList4org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList5org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList6org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList7org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList8org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableList9org.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testTableListMultipleorg.apache.ignite.internal.processors.query.h2.GridSubqueryJoinOptimizerSelfTest.testWhereInClause
REQ-B4-SQL-NOT-NULL-CACHE-OPS — Not-null QueryEntity constraints are enforced for cache API writes
Requirement: Not-null QueryEntity constraints are enforced for cache API writes, entry processor mutations, putAll/invokeAll, atomic/implicit operations, and explicit transactions, while delete/no-value mutations remain allowed.
Why: data integrity must hold regardless of the write API used.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxGetAndPutorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxGetAndPutIfAbsentorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxGetAndReplaceorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxInvokeorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxInvokeAllorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxInvokeAllDeleteorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxInvokeDeleteorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxPutorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxPutAllorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxPutAllForSingleValueorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxPutIfAbsentorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicOrImplicitTxReplaceorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxGetAndPutorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxGetAndPutIfAbsentorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxGetAndReplaceorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxInvokeorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxInvokeAllorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxInvokeAllDeleteorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxInvokeDeleteorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxPutAllorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxPutAllForSingleValueorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxPutCreateorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxPutIfAbsentorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxPutUpdateorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTxReplace
REQ-B4-SQL-NOT-NULL-DML-DDL — SQL DDL may declare or add NOT NULL fields on supported caches and SQL DML rejects INSERT/UPDATE paths that would write
Requirement: SQL DDL may declare or add NOT NULL fields on supported caches and SQL DML rejects INSERT/UPDATE paths that would write null into constrained fields; read-through and interceptor caches reject not-null query entities/create-table/alter-table constraints.
Why: SQL constraints must be enforced uniformly and only where Ignite can guarantee them.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAlterTableAddColumnNotNullFieldAllowedorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicAddColumnNotNullCheckDmlInsertValuesorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testAtomicNotNullCheckDmlInsertValuesorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testDynamicTableCreateNotNullFieldsAllowedorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testInterceptorRestrictionAlterTableorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testInterceptorRestrictionCreateTableorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testInterceptorRestrictionQueryEntityorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testNotNullCheckDmlInsertFromSelectorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testNotNullCheckDmlUpdateFromSelectorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testNotNullCheckDmlUpdateValuesorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testReadThroughRestrictionAlterTableorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testReadThroughRestrictionCreateTableorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testReadThroughRestrictionQueryEntityorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTransactionalAddColumnNotNullCheckDmlInsertValuesorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testTransactionalNotNullCheckDmlInsertValues
REQ-B4-SQL-NOT-NULL-METADATA — QueryEntity stores not-null field metadata in getter/setter state and equality semantics
Requirement: QueryEntity stores not-null field metadata in getter/setter state and equality semantics.
Why: cache/table definitions must remain comparable and reproducible across configuration paths.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testQueryEntityEqualsorg.apache.ignite.internal.processors.query.IgniteSqlNotNullConstraintTest.testQueryEntityGetSetNotNullFields
REQ-B4-SQL-SPLITTER-AGGREGATES-INDEXES — SQL aggregation
Requirement: SQL aggregation, HAVING, AVG over numeric types, empty-cache aggregates, group-index bounds, index hints, and sorted merge index plans return correct results and expose the expected plan markers.
Why: analytical SQL must be numerically correct and planner choices must be observable.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testAvgVariousDataTypesorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testCollocatedAggregatesorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedAggregatesorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedJoinFromReplicatedCacheorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testEmptyCacheAggregatesorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testGroupIndexOperationsorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testHavingorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testMergeJoin— status=ignoredorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testSortedMergeIndexorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testUseIndexHints
REQ-B4-SQL-SPLITTER-DISTRIBUTED-JOINS — Distributed joins choose batched/unicast or colocated plans according to partitioned/replicated cache placement
Requirement: Distributed joins choose batched/unicast or colocated plans according to partitioned/replicated cache placement, segmentation level, distributedJoins/enforceJoinOrder flags, and local query settings; incompatible segmentation fails instead of returning ambiguous results.
Why: mixed cache deployments need predictable join correctness and operability.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedJoinsorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedJoinsEnforceReplicatedNotLastorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedJoinsPlanorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedJoinsUnionorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testDistributedJoinsUnionPartitionedReplicatedorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testIndexSegmentationorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testIndexSegmentationPartitionedReplicatedorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testIndexWithDifferentSegmentationLevelsFailureorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPartitionedTablesUsingReplicatedCacheorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPartitionedTablesUsingReplicatedCacheClientorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPartitionedTablesUsingReplicatedCacheSegmentedorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPartitionedTablesUsingReplicatedCacheSegmentedClientorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheClientorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheClientROorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheROorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheSegmentedorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheSegmentedClientorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheSegmentedClientROorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicatedTablesUsingPartitionedCacheSegmentedROorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testReplicationCacheIndexSegmentationFailure
REQ-B4-SQL-SPLITTER-PAGING-PUSHDOWN — SQL splitter applies LIMIT/OFFSET
Requirement: The SQL splitter applies LIMIT/OFFSET, subquery pushdown, schema name resolution, EXISTS/subquery joins, implicit join-condition generation, and function-expression queries consistently across distributed execution.
Why: users expect distributed SQL to return the same rows as logical SQL while minimizing unnecessary reducer work.
Boundary: These tests prove the named fixtures and query/CLI/discovery shapes only; they do not prove arbitrary SQL equivalence, every cache mode, every topology size, production timing, or all failure interleavings beyond the exercised scenarios.
Evidence tests:
org.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testExistsorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testFunctionNpeorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testImplicitJoinConditionGenerationorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testJoinWithSubqueryorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testLeftJoinWithSubqueryorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testOffsetLimitorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPushDownorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPushDownLeftJoinorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testPushDownSubqueryorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testSchemaQuotedorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testSchemaQuotedUpperorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testSchemaUnquotedorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testSchemaUnquotedUpperorg.apache.ignite.internal.processors.query.IgniteSqlSplitterSelfTest.testSubQueryWithAggregate
Important boundaries
- Planner tests often prove physical plan shape for selected queries rather than full SQL equivalence.
- Control-command tests rely heavily on exact text/exit-code diagnostics; those are useful operator contracts but require review when wording is fragile.
- Discovery timing/event-latch tests are bounded race harnesses, not exhaustive network-failure proofs.