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);
}