I finally grabbed Cassandra off the trunk to make things work so I guess it
is 0.7. If I start the same server and connect to it, should things work? I
am happy using pycassa or telephus but I had Thrift installed for things
beyond Cassandra (for example for Hypertable) and I was hoping that
installation would work with multiple products that use Thrift. Now I know
it doesn't.

Thanks, Shashank

On Thu, Sep 23, 2010 at 10:17 AM, Tyler Hobbs <ty...@riptano.com> wrote:

> Is it possible that you are somehow using the 0.7 generated cassandra
> module, perhaps from some previous installation of a client library?  In
> 0.7, insert takes only 5 arguments.
>
> Also, is there any particular reason that you are using raw Thrift and not
> a high level client like pycassa, telephus, etc?
>
> - Tyler
>
>
>
> On Wed, Sep 22, 2010 at 9:32 PM, Shashank Tiwari <tsha...@gmail.com>wrote:
>
>> Jeremy and Aaron,
>> Thanks for your help.
>>
>> I had already installed Thrift on my Snow Leopard so I thought running  
>> *thrift
>> -gen cassandra.thrift* file would work. However as the wiki suggests it
>> appears only a specific version of Thrift work with a particular Cassandra
>> version. So I checked out the matching version of Thrift. Even after getting
>> the exact version of Thrift though, getting it to work wasn't straight
>> forward and in fact its still throwing errors.
>>
>> Aaron's suggestions of using the ant task (*ant gen-thrift-py*) seemed
>> much smoother but then that task does not generate the python thrift module,
>> it only generates the cassandra module.
>>
>> So I used a mix and match of both methods and finally have both the thrift
>> and the cassandra modules. However, it now seems there is a mismatch in the
>> API. I ran the python example from
>> http://wiki.apache.org/cassandra/ThriftExamples#Python and ended up with
>> the following errors:
>>
>> Traceback (most recent call last):
>>   File "cassandra_client.py", line 52, in <module>
>>     main()
>>   File "cassandra_client.py", line 35, in main
>>     ConsistencyLevel.ZERO)
>> TypeError: insert() takes exactly 5 arguments (7 given)
>>
>> ------
>> Line 35 of cassandra_client.py is the same as line 35 of the python
>> example on the Cassandra wiki Thrift Examples page. Its the line in bold in
>> the code snippet below:
>>
>>     try:
>>         transport.open()
>>         #Insert the data into Keyspace 1
>>         *client.insert(keyspace,*
>> *                      key,*
>> *                      column_path,*
>> *                      value,*
>> *                      timestamp,*
>> *                      ConsistencyLevel.ZERO)*
>>         #Query for data
>>         column_parent = ColumnParent(column_family="Standard1")
>>         slice_range = SliceRange(start="", finish="")
>>         predicate = SlicePredicate(slice_range=slice_range)
>>         result = client.get_slice(keyspace,
>>                                   key,
>>                                   column_parent,
>>                                   predicate,
>>                                   ConsistencyLevel.ONE)
>>         pp.pprint(result)
>>     except Thrift.TException, tx:
>>         print 'Thrift: %s' % tx.message
>>     finally:
>>
>> Can somebody please help and make sense of this. Isn't there a more simple
>> and straightforward way getting Thrift to work with Cassandra? If not, why
>> not?
>>
>> Thanks, Shashank
>>
>>
>> On Wed, Sep 22, 2010 at 1:16 PM, Aaron Morton <aa...@thelastpickle.com>wrote:
>>
>>> I normally get the source download, then run ant gen-thrift-py
>>>
>>> Is there a reason you want to build it manually?
>>>
>>> Aaron
>>>
>>>
>>> On 22 Sep, 2010,at 07:35 PM, Shashank Tiwari <tsha...@gmail.com> wrote:
>>>
>>> I installed thrift successfully on Snow Leaopard. However, when I run
>>> *thrift -gen java interface/cassandra.thrift* with Cassandra 0.6.5, I
>>> get an error which reads as follows:
>>> ....apache-cassandra-0.6.5/interface/cassandra.thrift:303] error:
>>> identifier ONE is unqualified!
>>> Line 303 of cassandra.thrift is highlighted in the text below:
>>>
>>> 296   /**
>>> 297     Get the Column or SuperColumn at the given column_path. If no
>>> value is present, NotFoundException is thrown    . (This is
>>> 298     the only method that can throw an exception under non-failure
>>> conditions)
>>> 299    */
>>> 300   ColumnOrSuperColumn get(1:required string keyspace,
>>> 301                           2:required string key,
>>> 302                           3:required ColumnPath column_path,
>>> *303                           4:required ConsistencyLevel
>>> consistency_level=ONE)*
>>> 304                       throws (1:InvalidRequestException ire,
>>> 2:NotFoundException nfe, 3:UnavailableException ue    , 4:TimedOutException
>>> te),
>>> 305
>>>
>>> Could somebody please help resolve this problem and also explain what's
>>> going on here.
>>>
>>> Thanks, Shashank
>>>
>>>
>>
>

Reply via email to