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 2009/08/19 18:27:20 UTC

svn commit: r805868 - in /incubator/cassandra/trunk: src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/marshal/ test/system/

Author: jbellis
Date: Wed Aug 19 16:27:20 2009
New Revision: 805868

URL: http://svn.apache.org/viewvc?rev=805868&view=rev
Log:
use the subcomparator when toStringing slice commands on subcolumns.  this exposes a couple bugs: fix getString in non-string types to accept byte[0], and fix a test to send a long to a LongType subcolumn.  patch by jbellis and Evan Weaver for CASSANDRA-377

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ReadCommand.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
    incubator/cassandra/trunk/test/system/test_server.py

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ReadCommand.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ReadCommand.java?rev=805868&r1=805867&r2=805868&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ReadCommand.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ReadCommand.java Wed Aug 19 16:27:20 2009
@@ -88,7 +88,9 @@
 
     protected AbstractType getComparator()
     {
-        return DatabaseDescriptor.getComparator(table, getColumnFamilyName());
+        return queryPath.superColumnName == null
+               ? DatabaseDescriptor.getComparator(table, getColumnFamilyName())
+               : DatabaseDescriptor.getSubComparator(table, getColumnFamilyName());
     }
 }
 

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java?rev=805868&r1=805867&r2=805868&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java Wed Aug 19 16:27:20 2009
@@ -48,6 +48,10 @@
 
     public String getString(byte[] bytes)
     {
+        if (bytes.length == 0)
+        {
+            return "";
+        }
         if (bytes.length != 16)
         {
             throw new MarshalException("UUIDs must be exactly 16 bytes");

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java?rev=805868&r1=805867&r2=805868&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java Wed Aug 19 16:27:20 2009
@@ -44,6 +44,10 @@
 
     public String getString(byte[] bytes)
     {
+        if (bytes.length == 0)
+        {
+            return "";
+        }
         if (bytes.length != 8)
         {
             throw new MarshalException("A long is exactly 8 bytes");

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java?rev=805868&r1=805867&r2=805868&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java Wed Aug 19 16:27:20 2009
@@ -43,6 +43,10 @@
 
     public String getString(byte[] bytes)
     {
+        if (bytes.length == 0)
+        {
+            return "";
+        }
         if (bytes.length != 16)
         {
             throw new MarshalException("UUIDs must be exactly 16 bytes");

Modified: incubator/cassandra/trunk/test/system/test_server.py
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/system/test_server.py?rev=805868&r1=805867&r2=805868&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/system/test_server.py (original)
+++ incubator/cassandra/trunk/test/system/test_server.py Wed Aug 19 16:27:20 2009
@@ -149,7 +149,7 @@
         assert _big_slice('Keyspace1', 'key1', ColumnParent('Super1')) == []
 
     def test_missing_super(self):
-        _expect_missing(lambda: client.get('Keyspace1', 'key1', ColumnPath('Super1', 'sc1', 'c1'), ConsistencyLevel.ONE))
+        _expect_missing(lambda: client.get('Keyspace1', 'key1', ColumnPath('Super1', 'sc1', _i64(1)), ConsistencyLevel.ONE))
 
     def test_count(self):
         _insert_simple()