Author: jbellis
Date: Tue Nov 16 15:40:28 2010
New Revision: 1035660

URL: http://svn.apache.org/viewvc?rev=1035660&view=rev
Log:
merge from 0.7

Modified:
    cassandra/trunk/   (props changed)
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/conf/cassandra.yaml
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
    cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
    
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
    
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
    cassandra/trunk/src/java/org/apache/cassandra/db/migration/Migration.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
    cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java
    cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java
    cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
    cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java
    
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java
    cassandra/trunk/test/unit/org/apache/cassandra/utils/UUIDTests.java

Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 16 15:40:28 2010
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6:922689-1035020
-/cassandra/branches/cassandra-0.7:1026517-1035296
+/cassandra/branches/cassandra-0.6:922689-1035020,1035656
+/cassandra/branches/cassandra-0.7:1026517-1035659
 /incubator/cassandra/branches/cassandra-0.3:774578-796573
 /incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
 /incubator/cassandra/branches/cassandra-0.5:888872-915439

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Tue Nov 16 15:40:28 2010
@@ -31,6 +31,7 @@ dev
  * fix index scan routing (CASSANDRA-1722)
  * fix tombstoning of supercolumns in range queries (CASSANDRA-1734)
  * clear endpoint cache after updating keyspace metadata (CASSANDRA-1741)
+ * fix wrapping-range queries on non-minimum token (CASSANDRA-1700)
 
 
 0.7.0-beta3

Modified: cassandra/trunk/conf/cassandra.yaml
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra.yaml (original)
+++ cassandra/trunk/conf/cassandra.yaml Tue Nov 16 15:40:28 2010
@@ -363,55 +363,101 @@ index_interval: 128
 #        before the memtable is flushed. If undefined, throughput / 64 * 0.3
 #        will be used.
 #
-# NOTE: this keyspace definition is for demonstration purposes only.
-#       Cassandra will not load these definitions during startup. See
-#       http://wiki.apache.org/cassandra/FAQ#no_keyspaces for an explanation.
 keyspaces:
-    - name: Keyspace1
-      replica_placement_strategy: org.apache.cassandra.locator.SimpleStrategy
-      replication_factor: 1
-      column_families:
-        - name: Standard1
-          compare_with: BytesType
-          keys_cached: 10000
-          rows_cached: 1000
-          row_cache_save_period_in_seconds: 0
-          key_cache_save_period_in_seconds: 3600
-          memtable_flush_after_mins: 59
-          memtable_throughput_in_mb: 255
-          memtable_operations_in_millions: 0.29
-
-        - name: Standard2
-          compare_with: UTF8Type
-          read_repair_chance: 0.1
-          keys_cached: 100
-          gc_grace_seconds: 0
-          min_compaction_threshold: 5
-          max_compaction_threshold: 31
-
-        - name: StandardByUUID1
-          compare_with: TimeUUIDType
-
-        - name: Super1
-          column_type: Super
-          compare_with: BytesType
-          compare_subcolumns_with: BytesType
-
-        - name: Super2
-          column_type: Super
-          compare_subcolumns_with: UTF8Type
-          rows_cached: 10000
-          keys_cached: 50
-          comment: 'A column family with supercolumns, whose column and 
subcolumn names are UTF8 strings'
-
-        - name: Super3
-          column_type: Super
-          compare_with: LongType
-          comment: 'A column family with supercolumns, whose column names are 
Longs (8 bytes)'
-
-        - name: Indexed1
-          default_validation_class: LongType
-          column_metadata:
-            - name: birthdate
-              validator_class: LongType
-              index_type: KEYS
+- column_families:
+  - column_metadata:
+    - !!org.apache.cassandra.config.RawColumnDefinition
+      name: password
+      validator_class: org.apache.cassandra.db.marshal.UTF8Type
+    column_type: Standard
+    comment: ''
+    compare_with: org.apache.cassandra.db.marshal.UTF8Type
+    gc_grace_seconds: 864000
+    key_cache_save_period_in_seconds: 3600
+    keys_cached: 200000.0
+    max_compaction_threshold: 32
+    memtable_flush_after_mins: 60
+    min_compaction_threshold: 4
+    name: User
+    read_repair_chance: 1.0
+    row_cache_save_period_in_seconds: 0
+    rows_cached: 0.0
+  - column_type: Standard
+    comment: ''
+    compare_with: org.apache.cassandra.db.marshal.LongType
+    default_validation_class: org.apache.cassandra.db.marshal.LexicalUUIDType
+    gc_grace_seconds: 864000
+    key_cache_save_period_in_seconds: 3600
+    keys_cached: 200000.0
+    max_compaction_threshold: 32
+    memtable_flush_after_mins: 60
+    min_compaction_threshold: 4
+    name: Userline
+    read_repair_chance: 1.0
+    row_cache_save_period_in_seconds: 0
+    rows_cached: 0.0
+  - column_type: Standard
+    comment: ''
+    compare_with: org.apache.cassandra.db.marshal.UTF8Type
+    default_validation_class: org.apache.cassandra.db.marshal.UTF8Type
+    gc_grace_seconds: 864000
+    key_cache_save_period_in_seconds: 3600
+    keys_cached: 200000.0
+    max_compaction_threshold: 32
+    memtable_flush_after_mins: 60
+    min_compaction_threshold: 4
+    name: Followers
+    read_repair_chance: 1.0
+    row_cache_save_period_in_seconds: 0
+    rows_cached: 0.0
+  - column_metadata:
+    - !!org.apache.cassandra.config.RawColumnDefinition
+      name: body
+      validator_class: org.apache.cassandra.db.marshal.UTF8Type
+    - !!org.apache.cassandra.config.RawColumnDefinition
+      name: username
+      validator_class: org.apache.cassandra.db.marshal.UTF8Type
+    column_type: Standard
+    comment: ''
+    compare_with: org.apache.cassandra.db.marshal.UTF8Type
+    gc_grace_seconds: 864000
+    key_cache_save_period_in_seconds: 3600
+    keys_cached: 200000.0
+    max_compaction_threshold: 32
+    memtable_flush_after_mins: 60
+    min_compaction_threshold: 4
+    name: Tweet
+    read_repair_chance: 1.0
+    row_cache_save_period_in_seconds: 0
+    rows_cached: 0.0
+  - column_type: Standard
+    comment: ''
+    compare_with: org.apache.cassandra.db.marshal.UTF8Type
+    default_validation_class: org.apache.cassandra.db.marshal.UTF8Type
+    gc_grace_seconds: 864000
+    key_cache_save_period_in_seconds: 3600
+    keys_cached: 200000.0
+    max_compaction_threshold: 32
+    memtable_flush_after_mins: 60
+    min_compaction_threshold: 4
+    name: Friends
+    read_repair_chance: 1.0
+    row_cache_save_period_in_seconds: 0
+    rows_cached: 0.0
+  - column_type: Standard
+    comment: ''
+    compare_with: org.apache.cassandra.db.marshal.LongType
+    default_validation_class: org.apache.cassandra.db.marshal.LexicalUUIDType
+    gc_grace_seconds: 864000
+    key_cache_save_period_in_seconds: 3600
+    keys_cached: 200000.0
+    max_compaction_threshold: 32
+    memtable_flush_after_mins: 60
+    min_compaction_threshold: 4
+    name: Timeline
+    read_repair_chance: 1.0
+    row_cache_save_period_in_seconds: 0
+    rows_cached: 0.0
+  name: Twissjava
+  replica_placement_strategy: org.apache.cassandra.locator.SimpleStrategy
+  replication_factor: 1

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 16 15:40:28 2010
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026517-1035296
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1035020,1035656
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026517-1035659
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
 
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
 
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-903502

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 16 15:40:28 2010
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026517-1035296
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1035020,1035656
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026517-1035659
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
 
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
 
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-903502

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 16 15:40:28 2010
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026517-1035296
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1035020,1035656
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026517-1035659
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
 
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
 
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-903502

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 16 15:40:28 2010
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026517-1035296
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1035020,1035656
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026517-1035659
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
 
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
 
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-903502

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 16 15:40:28 2010
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026517-1035296
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1035020,1035656
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026517-1035659
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
 
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
 
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-903502

Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Tue Nov 16 
15:40:28 2010
@@ -904,8 +904,8 @@ public class CliClient extends CliUserHe
         // extract column family
         String columnFamily = statement.getChild(0).getText();
 
-        String startKey = "";
-        String endKey = "";
+        String rawStartKey = "";
+        String rawEndKey = "";
         int limitCount = Integer.MAX_VALUE; // will reset to default later if 
it's not specified
 
         // optional arguments: key range and limit
@@ -916,9 +916,9 @@ public class CliClient extends CliUserHe
             {
                 if (child.getChildCount() > 0)
                 {
-                    startKey = 
CliUtils.unescapeSQLString(child.getChild(0).getText());
+                    rawStartKey = 
CliUtils.unescapeSQLString(child.getChild(0).getText());
                     if (child.getChildCount() > 1)
-                        endKey = 
CliUtils.unescapeSQLString(child.getChild(1).getText());
+                        rawEndKey = 
CliUtils.unescapeSQLString(child.getChild(1).getText());
                 }
             }
             else
@@ -955,8 +955,9 @@ public class CliClient extends CliUserHe
         // set the key range
         KeyRange range = new KeyRange(limitCount);
         AbstractType keyComparator = this.cfKeysComparators.get(columnFamily);
-        range.setStart_key(getBytesAccordingToType(startKey, keyComparator))
-             .setEnd_key(getBytesAccordingToType(endKey, keyComparator));
+        ByteBuffer startKey = rawStartKey.isEmpty() ? 
FBUtilities.EMPTY_BYTE_BUFFER : getBytesAccordingToType(rawStartKey, 
keyComparator);
+        ByteBuffer endKey = rawEndKey.isEmpty() ? 
FBUtilities.EMPTY_BYTE_BUFFER : getBytesAccordingToType(rawEndKey, 
keyComparator);
+        range.setStart_key(startKey).setEnd_key(endKey);
 
         ColumnParent columnParent = new ColumnParent(columnFamily);
         List<KeySlice> keySlices = thriftClient.get_range_slices(columnParent, 
predicate, range, ConsistencyLevel.ONE);
@@ -1424,6 +1425,12 @@ public class CliClient extends CliUserHe
      */
     private ByteBuffer getBytesAccordingToType(String object, AbstractType 
comparator)
     {
+        // TODO there is tension here between using this function to generate 
default values,
+        // and using it to parse input.  For instance, normally we want to 
convert empty string
+        // to empty byte array for any type -- all types special case empty 
byte[] to mean
+        // "minimum value" -- but we also want timeuuid() to create a valid 
uuid for us.
+        // For now, this function takes the create-valid-values approach, and 
we leave
+        // other use cases to special case "" -> byte[0] before calling this.
         if (comparator instanceof LongType)
         {
             long longType;

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
 Tue Nov 16 15:40:28 2010
@@ -31,7 +31,6 @@ import org.apache.cassandra.utils.Wrappe
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOError;
 import java.io.IOException;
 import java.util.Collection;
@@ -51,7 +50,7 @@ public class DefinitionsUpdateResponseVe
             Collection<Column> cols = MigrationManager.makeColumns(message);
             for (Column col : cols)
             {
-                final UUID version = UUIDGen.makeType1UUID(col.name());
+                final UUID version = UUIDGen.getUUID(col.name());
                 if (version.timestamp() > 
DatabaseDescriptor.getDefsVersion().timestamp())
                 {
                     final Migration m = Migration.deserialize(col.value());

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java 
(original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java 
Tue Nov 16 15:40:28 2010
@@ -21,10 +21,9 @@ package org.apache.cassandra.db.marshal;
  */
 
 
-import java.util.UUID;
 import java.nio.ByteBuffer;
 
-import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.UUIDGen;
 
 public class LexicalUUIDType extends AbstractType
 {
@@ -32,11 +31,6 @@ public class LexicalUUIDType extends Abs
 
     LexicalUUIDType() {} // singleton
 
-    static UUID getUUID(ByteBuffer bytes)
-    {
-        return new UUID(bytes.getLong(bytes.position()+bytes.arrayOffset()), 
bytes.getLong(bytes.position()+bytes.arrayOffset()));
-    }
-
     public int compare(ByteBuffer o1, ByteBuffer o2)
     {
         if (o1.remaining() == 0)
@@ -48,7 +42,7 @@ public class LexicalUUIDType extends Abs
             return 1;
         }
 
-        return getUUID(o1).compareTo(getUUID(o2));
+        return UUIDGen.getUUID(o1).compareTo(UUIDGen.getUUID(o2));
     }
 
     public String getString(ByteBuffer bytes)
@@ -61,6 +55,6 @@ public class LexicalUUIDType extends Abs
         {
             throw new MarshalException("UUIDs must be exactly 16 bytes");
         }
-        return getUUID(bytes).toString();
+        return UUIDGen.getUUID(bytes).toString();
     }
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java 
Tue Nov 16 15:40:28 2010
@@ -24,7 +24,7 @@ package org.apache.cassandra.db.marshal;
 import java.nio.ByteBuffer;
 import java.util.UUID;
 
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.UUIDGen;
 
 public class TimeUUIDType extends AbstractType
 {
@@ -80,7 +80,7 @@ public class TimeUUIDType extends Abstra
         {
             throw new MarshalException("UUIDs must be exactly 16 bytes");
         }
-        UUID uuid = LexicalUUIDType.getUUID(bytes);
+        UUID uuid = UUIDGen.getUUID(bytes);
         if (uuid.version() != 1)
         {
             throw new MarshalException("TimeUUID only makes sense with version 
1 UUIDs");

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/migration/Migration.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/Migration.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/migration/Migration.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/migration/Migration.java 
Tue Nov 16 15:40:28 2010
@@ -179,7 +179,7 @@ public abstract class Migration
         if (cf == null || cf.getColumnNames().size() == 0)
             return null;
         else
-            return 
UUIDGen.makeType1UUID(cf.getColumn(LAST_MIGRATION_KEY).value());
+            return UUIDGen.getUUID(cf.getColumn(LAST_MIGRATION_KEY).value());
     }
     
     /** keep in mind that applyLive might happen on another machine */
@@ -277,8 +277,8 @@ public abstract class Migration
         }
         
         // super inflate
-        migration.lastVersion = 
UUIDGen.makeType1UUID(ByteBuffer.wrap(mi.old_version.bytes()));
-        migration.newVersion = 
UUIDGen.makeType1UUID(ByteBuffer.wrap(mi.new_version.bytes()));
+        migration.lastVersion = 
UUIDGen.getUUID(ByteBuffer.wrap(mi.old_version.bytes()));
+        migration.newVersion = 
UUIDGen.getUUID(ByteBuffer.wrap(mi.new_version.bytes()));
         try
         {
             migration.rm = 
RowMutation.serializer().deserialize(SerDeUtils.createDataInputStream(mi.row_mutation));

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Tue Nov 16 15:40:28 2010
@@ -1907,7 +1907,7 @@ public class StorageService implements I
             {
                 // blow up if there is a schema saved.
                 if (DatabaseDescriptor.getDefsVersion().timestamp() > 0 || 
Migration.getLastMigrationId() != null)
-                    throw new ConfigurationException("Cannot load from XML on 
top of pre-existing schemas.");
+                    throw new ConfigurationException("Cannot import schema 
when one already exists");
              
                 Migration migration = null;
                 for (KSMetaData table : tables)
@@ -1982,6 +1982,7 @@ public class StorageService implements I
                 RawColumnFamily rcf = new RawColumnFamily();
                 rcf.name = cfm.cfName;
                 rcf.compare_with = cfm.comparator.getClass().getName();
+                rcf.default_validation_class = 
cfm.defaultValidator.getClass().getName();
                 rcf.compare_subcolumns_with = cfm.subcolumnComparator == null 
? null : cfm.subcolumnComparator.getClass().getName();
                 rcf.column_type = cfm.cfType;
                 rcf.comment = cfm.comment;

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/SchemaTool.java Tue Nov 
16 15:40:28 2010
@@ -28,14 +28,8 @@ public class SchemaTool
     public static void main(String[] args)
     throws NumberFormatException, IOException, InterruptedException, 
ConfigurationException
     {
-        if (args.length < 3)
+        if (args.length < 3 || args.length > 3)
             usage();
-        if (args.length != 3 && "import".equals(args[2]))
-            usage();
-        if (args.length != 4 && "export".equals(args[2]))
-            usage();
-        
-        System.out.println("# Note: This tool is deprecated and will be 
removed in future releases.");
         
         String host = args[0];
         int port = 0;

Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java Tue Nov 16 
15:40:28 2010
@@ -21,8 +21,6 @@ package org.apache.cassandra.utils;
  */
 
 
-import java.io.DataInputStream;
-import java.io.IOException;
 import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.security.MessageDigest;
@@ -47,7 +45,7 @@ public class UUIDGen
             byte[] md5 = digest.digest();
             byte[] fauxMac = new byte[6];
             System.arraycopy(md5, 0, fauxMac, 0, Math.min(md5.length, 
fauxMac.length));
-            return 
makeType1UUID(ByteBuffer.wrap(UUIDGenerator.getInstance().generateTimeBasedUUID(new
 EthernetAddress(fauxMac)).toByteArray()));
+            return 
getUUID(ByteBuffer.wrap(UUIDGenerator.getInstance().generateTimeBasedUUID(new 
EthernetAddress(fauxMac)).toByteArray()));
         }
         catch (NoSuchAlgorithmException ex)
         {
@@ -55,24 +53,10 @@ public class UUIDGen
         }
     }
     
-    public static UUID makeType1UUID(DataInputStream in) throws IOException
-    {
-        byte[] b = new byte[16];
-        in.readFully(b);
-        return makeType1UUID(ByteBuffer.wrap(b));
-    }
-
     /** creates a type 1 uuid from raw bytes. */
-    public static UUID makeType1UUID(ByteBuffer raw)
+    public static UUID getUUID(ByteBuffer raw)
     {
-        long most = 0;
-        long least = 0;
-        assert raw.remaining() == 16;
-        for (int i = 0; i < 8; i++)
-            most = (most << 8) | (raw.array()[raw.position()+raw.arrayOffset() 
+ i] & 0xff);
-        for (int i =8 ; i < 16; i++)
-            least = (least << 8) | 
(raw.array()[raw.position()+raw.arrayOffset() + i] & 0xff);
-        return new UUID(most, least);
+        return new UUID(raw.getLong(raw.position() + raw.arrayOffset()), 
raw.getLong(raw.position() + raw.arrayOffset() + 8));
     }
 
     /** decomposes a uuid into raw bytes. */

Modified: cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java Tue Nov 16 
15:40:28 2010
@@ -125,7 +125,7 @@ public class CliTest extends CleanupHelp
             CliMain.processStatement(statement);
             String result = outStream.toString();
             // System.out.println("Result:\n" + result);
-            assertEquals("", errStream.toString());
+            assertEquals(errStream.toString() + " processing " + statement, 
"", errStream.toString());
             if (statement.startsWith("drop ") || statement.startsWith("create 
") || statement.startsWith("update "))
             {
                 
assertTrue(result.matches("(.{8})-(.{4})-(.{4})-(.{4})-(.{12})\n"));

Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java Tue Nov 16 
15:40:28 2010
@@ -24,7 +24,6 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -159,7 +158,7 @@ public class DefsTest extends CleanupHel
         int i = 0;
         for (IColumn col : serializedMigrations)
         {
-            UUID version = UUIDGen.makeType1UUID(col.name());
+            UUID version = UUIDGen.getUUID(col.name());
             reconstituded[i] = Migration.deserialize(col.value());
             assert version.equals(reconstituded[i].getVersion());
             i++;

Modified: 
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- 
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java 
(original)
+++ 
cassandra/trunk/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java 
Tue Nov 16 15:40:28 2010
@@ -25,9 +25,7 @@ import java.util.Random;
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 
-import org.apache.cassandra.CleanupHelper;
-import org.apache.cassandra.db.marshal.TimeUUIDType;
-
+import org.apache.cassandra.utils.UUIDGen;
 import org.safehaus.uuid.UUID;
 import org.safehaus.uuid.UUIDGenerator;
 
@@ -85,8 +83,8 @@ public class TimeUUIDTypeTest
         Arrays.sort(uuids, timeUUIDType);
         for (int i = 1; i < uuids.length; i++)
         {
-            long i0 = LexicalUUIDType.getUUID(uuids[i - 1]).timestamp();
-            long i1 = LexicalUUIDType.getUUID(uuids[i]).timestamp();
+            long i0 = UUIDGen.getUUID(uuids[i - 1]).timestamp();
+            long i1 = UUIDGen.getUUID(uuids[i]).timestamp();
             assert i0 <= i1;
         }
     }

Modified: cassandra/trunk/test/unit/org/apache/cassandra/utils/UUIDTests.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/utils/UUIDTests.java?rev=1035660&r1=1035659&r2=1035660&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/utils/UUIDTests.java 
(original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/utils/UUIDTests.java Tue Nov 
16 15:40:28 2010
@@ -55,7 +55,7 @@ public class UUIDTests
     {
         UUID a = 
UUIDGen.makeType1UUIDFromHost(InetAddress.getByName("127.0.0.1"));
         byte[] decomposed = UUIDGen.decompose(a);
-        UUID b = UUIDGen.makeType1UUID(ByteBuffer.wrap(decomposed));
+        UUID b = UUIDGen.getUUID(ByteBuffer.wrap(decomposed));
         assert a.equals(b);
     }
 
@@ -67,7 +67,7 @@ public class UUIDTests
         ByteBuffer second = 
ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.makeType1UUIDFromHost(InetAddress.getByName("127.0.0.1"))));
         assert comp.compare(first, second) < 0;
         assert comp.compare(second, first) > 0;
-        ByteBuffer sameAsFirst = 
ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.makeType1UUID(first)));
+        ByteBuffer sameAsFirst = 
ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.getUUID(first)));
         assert comp.compare(first, sameAsFirst) == 0;
     }
 


Reply via email to