Author: gdusbabek Date: Fri May 7 13:57:20 2010 New Revision: 942074 URL: http://svn.apache.org/viewvc?rev=942074&view=rev Log: return error when mutating a non-existant CF. Patch by Sylvain Lebresne, reviewed by Gary Dusbabek. CASSANDRA-1036
Modified: cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java cassandra/trunk/test/system/test_thrift_server.py Modified: cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java?rev=942074&r1=942073&r2=942074&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java Fri May 7 13:57:20 2010 @@ -185,6 +185,7 @@ public class AvroValidation { static void validateDeletion(String keyspace, String cfName, Deletion del) throws InvalidRequestException { + validateColumnFamily(keyspace, cfName); if (del.super_column == null && del.predicate == null) throw newInvalidRequestException("A Deletion must have a SuperColumn, a SlicePredicate, or both."); Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=942074&r1=942073&r2=942074&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java Fri May 7 13:57:20 2010 @@ -260,6 +260,7 @@ public class ThriftValidation public static void validateDeletion(String keyspace, String cfName, Deletion del) throws InvalidRequestException { + validateColumnFamily(keyspace, cfName); if (del.predicate != null) { validateSlicePredicate(keyspace, cfName, del.super_column, del.predicate); Modified: cassandra/trunk/test/system/test_thrift_server.py URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=942074&r1=942073&r2=942074&view=diff ============================================================================== --- cassandra/trunk/test/system/test_thrift_server.py (original) +++ cassandra/trunk/test/system/test_thrift_server.py Fri May 7 13:57:20 2010 @@ -563,6 +563,22 @@ class TestMutations(ThriftTester): ConsistencyLevel.ONE) _expect_exception(send_range, InvalidRequestException) + def test_batch_mutate_does_not_accept_cosc_on_undefined_cf(self): + def bad_cf(): + _set_keyspace('Keyspace1') + col = ColumnOrSuperColumn(column=Column("foo", 'bar', 0)) + client.batch_mutate({'key_36': {'Undefined': [Mutation(col)]}}, + ConsistencyLevel.ONE) + _expect_exception(bad_cf, InvalidRequestException) + + def test_batch_mutate_does_not_accept_deletion_on_undefined_cf(self): + def bad_cf(): + _set_keyspace('Keyspace1') + d = Deletion(2, predicate=SlicePredicate(column_names=['baz'])) + client.batch_mutate({'key_37': {'Undefined':[Mutation(deletion=d)]}}, + ConsistencyLevel.ONE) + _expect_exception(bad_cf, InvalidRequestException) + def test_column_name_lengths(self): _set_keyspace('Keyspace1') _expect_exception(lambda: client.insert('key1', ColumnParent('Standard1'), Column('', 'value', 0), ConsistencyLevel.ONE), InvalidRequestException)