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

bdeggleston pushed a commit to branch cep-45-mutation-tracking
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit f4d9b30a4ee458cbb2c747c421a66e3ff5b1d674
Author: Blake Eggleston <[email protected]>
AuthorDate: Tue Feb 10 21:53:50 2026 -0800

    ninja: fix transient keyspace setup in CMSTestBase tests
---
 .../test/cql3/MultiNodeTableWalkWithWitnessesTest.java         | 10 ++++++++++
 .../org/apache/cassandra/harry/model/TokenPlacementModel.java  |  9 +++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git 
a/test/distributed/org/apache/cassandra/distributed/test/cql3/MultiNodeTableWalkWithWitnessesTest.java
 
b/test/distributed/org/apache/cassandra/distributed/test/cql3/MultiNodeTableWalkWithWitnessesTest.java
index f0446cb537..84d0ea5d84 100644
--- 
a/test/distributed/org/apache/cassandra/distributed/test/cql3/MultiNodeTableWalkWithWitnessesTest.java
+++ 
b/test/distributed/org/apache/cassandra/distributed/test/cql3/MultiNodeTableWalkWithWitnessesTest.java
@@ -18,7 +18,10 @@
 
 package org.apache.cassandra.distributed.test.cql3;
 
+import java.util.List;
+
 import accord.utils.RandomSource;
+import org.apache.cassandra.cql3.ast.CreateIndexDDL;
 import org.apache.cassandra.distributed.Cluster;
 import org.apache.cassandra.distributed.api.IInstanceConfig;
 import org.apache.cassandra.schema.TableMetadata;
@@ -34,6 +37,13 @@ public class MultiNodeTableWalkWithWitnessesTest extends 
MultiNodeTableWalkWithM
         c.set("transient_replication_enabled", "true");
     }
 
+    @Override
+    protected List<CreateIndexDDL.Indexer> supportedIndexers()
+    {
+        // TODO (expected): Implement supported indexers for witnesses
+        return List.of();
+    }
+
     protected class MultiNodeState extends State
     {
         public MultiNodeState(RandomSource rs, Cluster cluster)
diff --git 
a/test/harry/main/org/apache/cassandra/harry/model/TokenPlacementModel.java 
b/test/harry/main/org/apache/cassandra/harry/model/TokenPlacementModel.java
index c9dcbcb137..a92101de26 100644
--- a/test/harry/main/org/apache/cassandra/harry/model/TokenPlacementModel.java
+++ b/test/harry/main/org/apache/cassandra/harry/model/TokenPlacementModel.java
@@ -31,6 +31,7 @@ import org.apache.cassandra.locator.InetAddressAndPort;
 import org.apache.cassandra.locator.SimpleStrategy;
 import org.apache.cassandra.schema.KeyspaceParams;
 import org.apache.cassandra.schema.ReplicationParams;
+import org.apache.cassandra.schema.ReplicationType;
 import org.apache.cassandra.tcm.ClusterMetadata;
 import org.apache.cassandra.tcm.membership.Location;
 import org.apache.cassandra.tcm.membership.NodeId;
@@ -387,14 +388,17 @@ public class TokenPlacementModel
         {
             Object[] args = new Object[replication.size() * 2];
             int i = 0;
+            boolean hasTransient = false;
             for (Map.Entry<String, DCReplicas> e : replication.entrySet())
             {
                 args[i * 2] = e.getKey();
                 args[i * 2 + 1] = e.getValue().toString();
+                if (e.getValue().transientCount > 0)
+                    hasTransient = true;
                 i++;
             }
 
-            return KeyspaceParams.nts(args);
+            return hasTransient ? KeyspaceParams.ntsTracked(args) : 
KeyspaceParams.nts(args);
         }
 
         private static Function<Lookup, Map<String, DCReplicas>> 
mapFunction(int dcs, int nodesPerDc, int transientsPerDc)
@@ -603,7 +607,8 @@ public class TokenPlacementModel
             Map<String, String> options = new HashMap<>();
             options.put(ReplicationParams.CLASS, 
SimpleStrategy.class.getName());
             options.put(SimpleStrategy.REPLICATION_FACTOR, 
dcReplicas().toString());
-            return KeyspaceParams.create(true, options);
+            ReplicationType replicationType = dcReplicas().transientCount > 0 
? ReplicationType.tracked : ReplicationType.untracked;
+            return KeyspaceParams.create(true, options, replicationType);
         }
 
         public ReplicatedRanges replicate(Range[] ranges, List<Node> nodes)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to