From f6b54dfc6bad86912ca8944d4d4944cd9a41c230 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Fri, 30 Oct 2009 02:40:35 +0000 Subject: [PATCH] merge from 0.4 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@831186 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/CassandraServer.java | 4 ++-- test/system/test_server.py | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 897cfe7a7e..7245be492f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -40,6 +40,7 @@ * Improve default garbage collector options (CASSANDRA-504) * Add "nodeprobe flush" (CASSANDRA-505) * remove NotFoundException from get_slice throws list (CASSANDRA-518) + * fix get (not get_slice) of entire supercolumn (CASSANDRA-508) 0.4.1 diff --git a/src/java/org/apache/cassandra/service/CassandraServer.java b/src/java/org/apache/cassandra/service/CassandraServer.java index 38ab39ec25..235ff9b604 100644 --- a/src/java/org/apache/cassandra/service/CassandraServer.java +++ b/src/java/org/apache/cassandra/service/CassandraServer.java @@ -257,7 +257,7 @@ public class CassandraServer implements Cassandra.Iface { if (logger.isDebugEnabled()) logger.debug("get"); - ColumnOrSuperColumn column = multiget(table, Arrays.asList(key), column_path, consistency_level).get(key); + ColumnOrSuperColumn column = multigetInternal(table, Arrays.asList(key), column_path, consistency_level).get(key); if (!column.isSetColumn() && !column.isSetSuper_column()) { throw new NotFoundException(); @@ -314,7 +314,7 @@ public class CassandraServer implements Cassandra.Iface { ThriftValidation.validateColumnPath(table, column_path); - QueryPath path = new QueryPath(column_path.column_family, column_path.super_column); + QueryPath path = new QueryPath(column_path.column_family, column_path.column == null ? null : column_path.super_column); List nameAsList = Arrays.asList(column_path.column == null ? column_path.super_column : column_path.column); List commands = new ArrayList(); for (String key: keys) diff --git a/test/system/test_server.py b/test/system/test_server.py index e89dc07226..34e6ab1653 100644 --- a/test/system/test_server.py +++ b/test/system/test_server.py @@ -180,6 +180,11 @@ class TestMutations(CassandraTester): _insert_super() _verify_super() + def test_super_get(self): + _insert_super() + result = client.get('Keyspace1', 'key1', ColumnPath('Super1', 'sc2'), ConsistencyLevel.ONE).super_column + assert result == _SUPER_COLUMNS[1], result + def test_super_subcolumn_limit(self): _insert_super() p = SlicePredicate(slice_range=SliceRange('', '', False, 1))