Author: gdusbabek Date: Thu Jul 1 16:51:37 2010 New Revision: 959722 URL: http://svn.apache.org/viewvc?rev=959722&view=rev Log: handle schema loading when a node has had all keyspaces dropped. Patch by gdusbabek, reviewed by jbellis. CASSANDRA-1203.
Modified: cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java cassandra/trunk/src/java/org/apache/cassandra/db/DefsTable.java Modified: cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=959722&r1=959721&r2=959722&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Thu Jul 1 16:51:37 2010 @@ -438,8 +438,15 @@ public class DatabaseDescriptor Table.open(def.name); } - // since we loaded definitions from local storage, log a warning if definitions exist in yaml. + // happens when someone manually deletes all tables and restarts. + if (tableDefs.size() == 0) + { + logger.warn("No schema definitions were found in local storage."); + // set defsVersion so that migrations leading up to emptiness aren't replayed. + defsVersion = uuid; + } + // since we loaded definitions from local storage, log a warning if definitions exist in yaml. if (conf.keyspaces != null && conf.keyspaces.size() > 0) logger.warn("Schema definitions were defined both locally and in " + STORAGE_CONF_FILE + ". Definitions in " + STORAGE_CONF_FILE + " were ignored."); Modified: cassandra/trunk/src/java/org/apache/cassandra/db/DefsTable.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/DefsTable.java?rev=959722&r1=959721&r2=959722&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/DefsTable.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/DefsTable.java Thu Jul 1 16:51:37 2010 @@ -72,6 +72,9 @@ public class DefsTable Collection<KSMetaData> tables = new ArrayList<KSMetaData>(); for (IColumn col : cf.getSortedColumns()) { + // don't allow deleted columns. + if (col instanceof DeletedColumn) + continue; KSMetaData ks = KSMetaData.deserialize(new ByteArrayInputStream(col.value())); tables.add(ks); }