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()