diff --git a/src/java/org/apache/cassandra/schema/TableMetadata.java b/src/java/org/apache/cassandra/schema/TableMetadata.java index b9a59db8873a..b6862cf08742 100644 --- a/src/java/org/apache/cassandra/schema/TableMetadata.java +++ b/src/java/org/apache/cassandra/schema/TableMetadata.java @@ -557,6 +557,7 @@ boolean changeAffectsPreparedStatements(TableMetadata updated) || !regularAndStaticColumns.equals(updated.regularAndStaticColumns) || !indexes.equals(updated.indexes) || params.defaultTimeToLive != updated.params.defaultTimeToLive + || params.cdc != updated.params.cdc || params.gcGraceSeconds != updated.params.gcGraceSeconds || ( !Flag.isCQLTable(flags) && Flag.isCQLTable(updated.flags) ); } diff --git a/test/unit/org/apache/cassandra/schema/TableMetadataTest.java b/test/unit/org/apache/cassandra/schema/TableMetadataTest.java index c7d4168ce6bf..c561e2aa0945 100644 --- a/test/unit/org/apache/cassandra/schema/TableMetadataTest.java +++ b/test/unit/org/apache/cassandra/schema/TableMetadataTest.java @@ -148,4 +148,23 @@ public void testMemtableParams() assertThat(memtableParams.factory).isInstanceOf(CustomMemtableFactory.class); assertThat(memtableParams.options).isEmpty(); } + + @Test + public void testCdcParamsChangeAffectsPreparedStatements() + { + String keyspaceName = "ks1"; + String tableName = "tbl1"; + TableParams noCdcParams = TableParams.builder().cdc(false).build(); + TableParams cdcParams = TableParams.builder().cdc(true).build(); + + TableMetadata metadata = TableMetadata.builder(keyspaceName, tableName) + .addPartitionKeyColumn("key", UTF8Type.instance) + .params(noCdcParams) + .build(); + TableMetadata updated = TableMetadata.builder(keyspaceName, tableName) + .addPartitionKeyColumn("key", UTF8Type.instance) + .params(cdcParams) + .build(); + assertThat(metadata.changeAffectsPreparedStatements(updated)).isTrue(); + } }