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