Skip to content

Commit 0213f9d

Browse files
committed
Fix bug in Cassandra
1 parent bf367a6 commit 0213f9d

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

core/src/main/java/com/scalar/db/storage/cassandra/CassandraAdmin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ public void renameColumn(
444444
TableMetadata tableMetadata = getTableMetadata(namespace, table);
445445
assert tableMetadata != null;
446446
if (!tableMetadata.getPartitionKeyNames().contains(oldColumnName)
447-
|| !tableMetadata.getClusteringKeyNames().contains(oldColumnName)) {
447+
&& !tableMetadata.getClusteringKeyNames().contains(oldColumnName)) {
448448
throw new IllegalArgumentException(
449449
CoreError.CASSANDRA_RENAME_NON_PRIMARY_KEY_COLUMN_NOT_SUPPORTED.buildMessage());
450450
}

core/src/test/java/com/scalar/db/storage/cassandra/CassandraAdminTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -897,8 +897,18 @@ public void renameColumn_ShouldWorkProperly() throws ExecutionException {
897897
// Arrange
898898
String namespace = "sample_ns";
899899
String table = "tbl";
900-
String oldColumnName = "c2";
901-
String newColumnName = "c3";
900+
String oldColumnName = "c1";
901+
String newColumnName = "c2";
902+
com.datastax.driver.core.TableMetadata tableMetadata =
903+
mock(com.datastax.driver.core.TableMetadata.class);
904+
ColumnMetadata c1 = mock(ColumnMetadata.class);
905+
when(c1.getName()).thenReturn(oldColumnName);
906+
when(c1.getType()).thenReturn(com.datastax.driver.core.DataType.text());
907+
when(tableMetadata.getPartitionKey()).thenReturn(Collections.singletonList(c1));
908+
when(tableMetadata.getClusteringColumns()).thenReturn(Collections.emptyList());
909+
when(tableMetadata.getIndexes()).thenReturn(Collections.emptyList());
910+
when(tableMetadata.getColumns()).thenReturn(Collections.singletonList(c1));
911+
when(clusterManager.getMetadata(any(), any())).thenReturn(tableMetadata);
902912

903913
// Act
904914
cassandraAdmin.renameColumn(namespace, table, oldColumnName, newColumnName);

0 commit comments

Comments
 (0)