You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/08/24 04:06:20 UTC

svn commit: r988373 - in /cassandra/branches/cassandra-0.6: CHANGES.txt src/java/org/apache/cassandra/config/DatabaseDescriptor.java src/java/org/apache/cassandra/streaming/StreamInitiateVerbHandler.java

Author: jbellis
Date: Tue Aug 24 02:06:20 2010
New Revision: 988373

URL: http://svn.apache.org/viewvc?rev=988373&view=rev
Log:
fix streaming for keyspaces with hyphens in their name.  patch by Eric Onnen; reviewed by jbellis for CASSANDRA-1377

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
    cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/streaming/StreamInitiateVerbHandler.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=988373&r1=988372&r2=988373&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Tue Aug 24 02:06:20 2010
@@ -7,8 +7,7 @@
  * remove String.trim() call on row keys in batch mutations (CASSANDRA-1235)
  * Log summary of dropped messages instead of spamming log (CASSANDRA-1284)
  * Dynamic snitch (CASSANDRA-981)
- * Use a regex to filter keyspace and column family names during
-   initialization (CASSANDRA-1377)
+ * fix streaming for keyspaces with hyphens in their name (CASSANDRA-1377)
  * fix errors in hard-coded bloom filter optKPerBucket by computing it
    algorithmically (CASSANDRA-1220
  * remove message deserialization stage, and uncap read/write stages

Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=988373&r1=988372&r2=988373&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Tue Aug 24 02:06:20 2010
@@ -588,8 +588,6 @@ public class DatabaseDescriptor
                 {
                     throw new ConfigurationException("'system' is a reserved table name for Cassandra internals");
                 }
-                if (!ksName.matches("\\w+"))
-                    throw new ConfigurationException("keyspace name contains invalid char");
 
                 /* See which replica placement strategy to use */
                 String replicaPlacementStrategyClassName = xmlUtils.getNodeValue("/Storage/Keyspaces/Keyspace[@Name='" + ksName + "']/ReplicaPlacementStrategy");
@@ -671,10 +669,6 @@ public class DatabaseDescriptor
                     {
                         throw new ConfigurationException("ColumnFamily name attribute is required");
                     }
-                    if (!cfName.matches("\\w+"))
-                    {
-                        throw new ConfigurationException("ColumnFamily name contains invalid characters.");
-                    }
                     String xqlCF = xqlTable + "ColumnFamily[@Name='" + cfName + "']/";
 
                     // Parse out the column type

Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/streaming/StreamInitiateVerbHandler.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/streaming/StreamInitiateVerbHandler.java?rev=988373&r1=988372&r2=988373&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/streaming/StreamInitiateVerbHandler.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/streaming/StreamInitiateVerbHandler.java Tue Aug 24 02:06:20 2010
@@ -28,6 +28,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
@@ -145,10 +146,17 @@ public class StreamInitiateVerbHandler i
         {
             String tableName;
             String[] pieces = FBUtilities.strip(distinctEntry, "-");
-            tableName = pieces[0];
+
+            if(pieces.length > 2) {
+                tableName = StringUtils.join(pieces, "-", 0, pieces.length -2);
+            }
+            else {
+                tableName = pieces[0];
+            }
+
             Table table = Table.open( tableName );
 
-            ColumnFamilyStore cfStore = table.getColumnFamilyStore(pieces[1]);
+            ColumnFamilyStore cfStore = table.getColumnFamilyStore(pieces[pieces.length -2]);
             if (logger.isDebugEnabled())
               logger.debug("Generating file name for " + distinctEntry + " ...");
             fileNames.put(distinctEntry, cfStore.getTempSSTableFileName());