If I remove the "colFam.column_metadata =" so that I don't have an indexed colum everything works fine.
-----Original Message----- From: Jonathan Ellis [mailto:jbel...@gmail.com] Sent: Friday, August 27, 2010 11:29 AM To: dev@cassandra.apache.org Subject: Re: Trying to use the new column index feature the TProtocolException means you're either (most likely) mixing framed/unframed modes between client/server, or (less likely) creating an obsolete TBinaryProtocol. On Fri, Aug 27, 2010 at 10:13 AM, Jeremiah Jordan <jeremiah.jor...@morningstar.com> wrote: > I am trying to use the new column index feature. I am using the nightly > from: apache-cassandra-2010-08-23_13-57-40-bin.tar.gz. > I created a column family: > colFam = CfDef('Activity', > 'Activity', > 'Standard', > 'Timestamp', > 'BytesType') > colFam.column_metadata = ColumnDef(name='Time', > > validation_class='LongType', > > index_type=IndexType.KEYS, > index_name='TIME_INDEX') > > self._client.system_add_column_family(colFam) > > When I try to use batch_mutate to insert data I get: > Traceback (most recent call last): > File "C:\GitStuff\olympus_beta\Python\Olympus\Common\DataHelper.py", > line 404, in InsertData > self._client.batch_mutate(mutation_map=dataToInsert, > consistency_level=self._DATA_CONSISTENCY_WRITE) > File > "C:\GitStuff\olympus_beta\Python\Olympus\Common\cassandra\Cassandra.py", > line 786, in batch_mutate > self.recv_batch_mutate() > File > "C:\GitStuff\olympus_beta\Python\Olympus\Common\cassandra\Cassandra.py", > line 803, in recv_batch_mutate > raise x > TApplicationException: Required field 'cf_def' was not present! Struct: > system_add_column_family_args(cf_def:null) > > The system.log has this in it: > 10/08/27 10:09:05 ERROR thrift.CustomTThreadPoolServer: Thrift error > occurred during processing of message. > org.apache.thrift.protocol.TProtocolException: Missing version in > readMessageBegin, old client? > at > org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProto > col.java:211) > at > org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2 > 487) > at > org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(Cu > stomTThreadPoolServer.java:167) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto > r.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja > va:908) > at java.lang.Thread.run(Thread.java:619) > > My code and the server are both using API version 11.1.0, so that wasn't > the problem. > > [defa...@unknown] connect localhost/9160 > Connected to: "Test Cluster" on localhost/9160 > [defa...@unknown] show api version > 11.1.0 > >>>> import cassandra.constants >>>> print cassandra.constants.VERSION > 11.1.0 >>>> > > Am I doing something wrong or is this a bug? > I looked at the code in test_thrift_server.py, but it uses insert not > batch_mutate to put data into the indexed column. > > ________________________________ > Jeremiah Jordan > Application Developer > Morningstar, Inc. > > Morningstar. Illuminating investing worldwide. > > +1 312 696-6128 voice > jeremiah.jor...@morningstar.com > > www.morningstar.com > > This e-mail contains privileged and confidential information and is > intended only for the use of the person(s) named above. Any > dissemination, distribution, or duplication of this communication > without prior written consent from Morningstar is strictly prohibited. > If you have received this message in error, please contact the sender > immediately and delete the materials from any computer. > > -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com