Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 9685 invoked from network); 17 Dec 2010 15:34:23 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 17 Dec 2010 15:34:23 -0000 Received: (qmail 7980 invoked by uid 500); 17 Dec 2010 15:34:23 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 7965 invoked by uid 500); 17 Dec 2010 15:34:23 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 7957 invoked by uid 99); 17 Dec 2010 15:34:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Dec 2010 15:34:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Dec 2010 15:34:22 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 06CD923888CE; Fri, 17 Dec 2010 15:34:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1050426 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/thrift/ThriftValidation.java test/system/test_thrift_server.py Date: Fri, 17 Dec 2010 15:34:01 -0000 To: commits@cassandra.apache.org From: jbellis@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101217153402.06CD923888CE@eris.apache.org> Author: jbellis Date: Fri Dec 17 15:34:01 2010 New Revision: 1050426 URL: http://svn.apache.org/viewvc?rev=1050426&view=rev Log: return InvalidRequest when remove ofsubcolumn without supercolumn is requested patch by thobbs; reviewed by jbellis for CASSANDRA-1866 Modified: cassandra/branches/cassandra-0.7/CHANGES.txt cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/ThriftValidation.java cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py Modified: cassandra/branches/cassandra-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1050426&r1=1050425&r2=1050426&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Dec 17 15:34:01 2010 @@ -14,6 +14,8 @@ dev * deleted columns resurrected after a flush on slice read path (CASSANDRA-1837) * ReadResponseResolver check digests against each other (CASSANDRA-1830) + * return InvalidRequest when remove of subcolumn without supercolumn + is requested (CASSANDRA-1866) 0.7.0-rc2 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/ThriftValidation.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1050426&r1=1050425&r2=1050426&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/ThriftValidation.java Fri Dec 17 15:34:01 2010 @@ -141,6 +141,13 @@ public class ThriftValidation throw new InvalidRequestException("supercolumn may not be specified for standard CF " + column_path_or_parent.column_family); } } + if (cfType == ColumnFamilyType.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.7/test/system/test_thrift_server.py URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py?rev=1050426&r1=1050425&r2=1050426&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py (original) +++ cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py Fri Dec 17 15:34:01 2010 @@ -779,6 +779,11 @@ class TestMutations(ThriftTester): 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='sc2') + e = _expect_exception(lambda: client.remove('key1', cp, 5, ConsistencyLevel.ONE), InvalidRequestException) + assert e.why.find("column cannot be specified without") >= 0 + def test_super_cf_remove_supercolumn(self): _set_keyspace('Keyspace1')