From 82081c7b4b2ad2d602374f0817abc4cfc2c86c98 Mon Sep 17 00:00:00 2001 From: Aleksey Yeschenko Date: Tue, 13 Aug 2013 20:52:34 +0200 Subject: [PATCH] Migrate key_alias->key_aliases on every schema migration (1.2) Another follow-up to 5800 --- src/java/org/apache/cassandra/db/DefsTable.java | 4 ++++ src/java/org/apache/cassandra/db/SystemTable.java | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/cassandra/db/DefsTable.java b/src/java/org/apache/cassandra/db/DefsTable.java index ea15cd0df2..4e9cf0151d 100644 --- a/src/java/org/apache/cassandra/db/DefsTable.java +++ b/src/java/org/apache/cassandra/db/DefsTable.java @@ -341,6 +341,10 @@ public class DefsTable for (RowMutation mutation : mutations) mutation.apply(); + // Must be called after each schema pull and not just on startup to guarantee the migration. + // See CASSANDRA-5800 comments for the details. + SystemTable.migrateKeyAlias(); + if (!StorageService.instance.isClientMode()) flushSchemaCFs(); diff --git a/src/java/org/apache/cassandra/db/SystemTable.java b/src/java/org/apache/cassandra/db/SystemTable.java index 81e675e413..a87ab50183 100644 --- a/src/java/org/apache/cassandra/db/SystemTable.java +++ b/src/java/org/apache/cassandra/db/SystemTable.java @@ -184,11 +184,10 @@ public class SystemTable migrateKeyAlias(); } - /** * 1.1 used a key_alias column; 1.2 changed that to key_aliases as part of CQL3 */ - private static void migrateKeyAlias() + public static void migrateKeyAlias() { String selectQuery = String.format("SELECT keyspace_name, columnfamily_name, writetime(type), key_aliases, key_alias FROM %s.%s", Table.SYSTEM_KS,