Author: jbellis
Date: Sun Dec 19 03:38:41 2010
New Revision: 1050753
URL: http://svn.apache.org/viewvc?rev=1050753&view=rev
Log:
backport CASSANDRA-1866 from 0.7
Modified:
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/thrift/ThriftValidation.java
cassandra/branches/cassandra-0.6/test/system/test_server.py
Modified:
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1050753&r1=1050752&r2=1050753&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/thrift/ThriftValidation.java
(original)
+++
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/thrift/ThriftValidation.java
Sun Dec 19 03:38:41 2010
@@ -133,6 +133,13 @@ public class ThriftValidation
throw new InvalidRequestException("supercolumn may not be
specified for standard CF " + column_path_or_parent.column_family);
}
}
+ if (cfType.equals("Super"))
+ {
+ if (column_path_or_parent.super_column == null &&
column_path_or_parent.column != null)
+ {
+ throw new InvalidRequestException("A column cannot be
specified without specifying a super column for removal on super CF " +
column_path_or_parent.column_family);
+ }
+ }
if (column_path_or_parent.column != null)
{
validateColumns(tablename, column_path_or_parent.column_family,
column_path_or_parent.super_column,
Arrays.asList(column_path_or_parent.column));
Modified: cassandra/branches/cassandra-0.6/test/system/test_server.py
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/test/system/test_server.py?rev=1050753&r1=1050752&r2=1050753&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/test/system/test_server.py (original)
+++ cassandra/branches/cassandra-0.6/test/system/test_server.py Sun Dec 19
03:38:41 2010
@@ -163,8 +163,8 @@ def _verify_super(supercf='Super1', key=
def _expect_exception(fn, type_):
try:
r = fn()
- except type_:
- pass
+ except type_, e:
+ return e
else:
raise Exception('expected %s; got %s' % (type_.__name__, r))
@@ -712,6 +712,11 @@ class TestMutations(CassandraTester):
Column(_i64(7), 'value7', 0)])]
assert super_columns == super_columns_expected, super_columns
+ # shouldn't be able to specify a column w/o a super column for remove
+ cp = ColumnPath(column_family='Super1', column=_i64(6))
+ e = _expect_exception(lambda: client.remove('Keyspace1', 'key1', cp,
5, ConsistencyLevel.ONE), InvalidRequestException)
+ assert e.why.find("column cannot be specified without") >= 0
+
def test_super_cf_remove_supercolumn(self):
_insert_simple()
_insert_super()