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

jyothsnakonisa pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-analytics.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 5aca2e68 CASSANALYTICS-186: AbstractSchemaBuilder.build() drops the 
cdc flag, silently disabling CDC on all tables (#227)
5aca2e68 is described below

commit 5aca2e685ced3b429d281b533dc4b5487ce3906c
Author: Jyothsna konisa <[email protected]>
AuthorDate: Wed Jul 29 09:52:30 2026 -0700

    CASSANALYTICS-186: AbstractSchemaBuilder.build() drops the cdc flag, 
silently disabling CDC on all tables (#227)
    
    Patch by Jyothsna Konisa; Reviewed by Josh McKenzie and Yifan Cai for 
CASSANALYTICS-186
---
 CHANGES.txt                                        |  1 +
 .../cassandra/spark/reader/SchemaBuilderTests.java | 50 ++++++++++++++++++++++
 .../spark/reader/AbstractSchemaBuilder.java        |  3 +-
 3 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 1d645a06..5df559ac 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
 0.5.0
 -----
+ * AbstractSchemaBuilder.build() drops the cdc flag, silently disabling CDC on 
all tables (CASSANALYTICS-186)
  * Fix total timeout calculation for getAllNodeSettings (CASSANALYTICS-179)
  * Support vector data type (CASSANALYTICS-26)
  * CDC batch-write mixing a CDC-enabled and CDC-disabled table drops the CDC 
table's mutation (CASSANALYTICS-182)
diff --git 
a/cassandra-four-zero-bridge/src/test/java/org/apache/cassandra/spark/reader/SchemaBuilderTests.java
 
b/cassandra-four-zero-bridge/src/test/java/org/apache/cassandra/spark/reader/SchemaBuilderTests.java
index 2c5a2b25..d73e1976 100644
--- 
a/cassandra-four-zero-bridge/src/test/java/org/apache/cassandra/spark/reader/SchemaBuilderTests.java
+++ 
b/cassandra-four-zero-bridge/src/test/java/org/apache/cassandra/spark/reader/SchemaBuilderTests.java
@@ -19,6 +19,7 @@
 
 package org.apache.cassandra.spark.reader;
 
+import java.util.Collections;
 import java.util.HashMap;
 
 import org.junit.jupiter.api.Test;
@@ -32,7 +33,9 @@ import org.apache.cassandra.schema.KeyspaceParams;
 import org.apache.cassandra.schema.Schema;
 import org.apache.cassandra.schema.TableMetadata;
 import org.apache.cassandra.schema.Types;
+import org.apache.cassandra.spark.data.CqlTable;
 import org.apache.cassandra.spark.data.ReplicationFactor;
+import org.apache.cassandra.spark.data.partitioner.Partitioner;
 import org.apache.cassandra.utils.FBUtilities;
 
 import static org.apache.cassandra.spark.reader.SchemaBuilder.rfToMap;
@@ -114,4 +117,51 @@ public class SchemaBuilderTests
 
         new SchemaBuilder(createTableStatement, keyspaceName, 
replicationFactor);
     }
+
+    @Test
+    public void testBuildPreservesCdcFlag()
+    {
+        CassandraBridgeImplementation.setup();
+        String keyspaceName = "cdc" + getClass().getSimpleName();
+        ReplicationFactor replicationFactor = new 
ReplicationFactor(ReplicationFactor.ReplicationStrategy.LocalStrategy, new 
HashMap<>());
+        KeyspaceMetadata keyspaceMetadata = 
KeyspaceMetadata.create(keyspaceName, KeyspaceParams.create(true, 
rfToMap(replicationFactor)));
+        Schema.instance.load(keyspaceMetadata);
+        Keyspace.openWithoutSSTables(keyspaceName);
+
+        String createTableStatement = "CREATE TABLE " + keyspaceName + ".bar 
(a int PRIMARY KEY) WITH cdc = true";
+        TableMetadata tableMetadata = CQLFragmentParser
+                .parseAny(CqlParser::createTableStatement, 
createTableStatement, "CREATE TABLE")
+                .keyspace(keyspaceName)
+                .prepare(null)
+                .builder(Types.none())
+                .build();
+        KeyspaceMetadata keyspace = 
Schema.instance.getKeyspaceMetadata(keyspaceName);
+        
Schema.instance.load(keyspace.withSwapped(keyspace.tables.with(tableMetadata)));
+
+        SchemaBuilder cdcEnabledBuilder = new 
SchemaBuilder(createTableStatement,
+                                                            keyspaceName,
+                                                            replicationFactor,
+                                                            
Partitioner.Murmur3Partitioner,
+                                                            bridge -> 
Collections.emptySet(),
+                                                            null,
+                                                            0,
+                                                            true);
+        CqlTable cdcEnabledTable = cdcEnabledBuilder.build();
+        assertThat(cdcEnabledTable.cdc())
+                .as("build() must preserve enableCdc=true through to the 
returned CqlTable")
+                .isTrue();
+
+        SchemaBuilder cdcDisabledBuilder = new 
SchemaBuilder(createTableStatement,
+                                                              keyspaceName,
+                                                              
replicationFactor,
+                                                              
Partitioner.Murmur3Partitioner,
+                                                              bridge -> 
Collections.emptySet(),
+                                                              null,
+                                                              0,
+                                                              false);
+        CqlTable cdcDisabledTable = cdcDisabledBuilder.build();
+        assertThat(cdcDisabledTable.cdc())
+                .as("build() must preserve enableCdc=false through to the 
returned CqlTable")
+                .isFalse();
+    }
 }
diff --git 
a/cassandra-four-zero-types/src/main/java/org/apache/cassandra/spark/reader/AbstractSchemaBuilder.java
 
b/cassandra-four-zero-types/src/main/java/org/apache/cassandra/spark/reader/AbstractSchemaBuilder.java
index e353ceaf..52ea0fd8 100644
--- 
a/cassandra-four-zero-types/src/main/java/org/apache/cassandra/spark/reader/AbstractSchemaBuilder.java
+++ 
b/cassandra-four-zero-types/src/main/java/org/apache/cassandra/spark/reader/AbstractSchemaBuilder.java
@@ -479,7 +479,8 @@ public abstract class AbstractSchemaBuilder
                             replicationFactor,
                             fields,
                             new HashSet<>(udts.values()),
-                            indexCount);
+                            indexCount,
+                            enableCdc);
     }
 
     private Map<String, CqlField.CqlUdt> buildsUdts(KeyspaceMetadata 
keyspaceMetadata)


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

Reply via email to