You can checkout libcassandra for a C++ client built on top of thrift.  It is 
not feature complete, but it is pretty good.

https://github.com/matkor/libcassandra


On Aug 14, 2011, at 3:59 AM, Konstantinos Chasapis wrote:

> Hi,
> Thank you for your answer. Is there any documentation that describes all this 
> values that I have to set?
> 
> Konstantinos Chasapis
> 
> On Aug 14, 2011, at 6:28 AM, Jonathan Ellis wrote:
> 
>> In C++ you need to set .__isset.fieldname on optional fields (e.g.
>> .__isset.value).
>> 
>> 2011/8/13 Hassapis Constantinos <cha...@ics.forth.gr>:
>>> Hi all,
>>> 
>>> I'm using Cassandra 0.8.3 and thrift for c++ and I can't insert column in
>>> a column family. Starting from an empty keyspace first I add a new
>>> keyspace and then a new column family and that works fine but I can't
>>> insert a column.
>>> The code that I have written is:
>>> 
>>>               transport->open();
>>>               KsDef ks_def;
>>> 
>>>               ks_def.name = "test_keyspace";
>>>               ks_def.replication_factor = 0;
>>>               ks_def.strategy_class = "LocalStrategy";
>>>               std::string res;
>>> 
>>>               cout << "add keyspace.." << endl;
>>>               client.system_add_keyspace( res, ks_def);
>>>               client.set_keyspace("test_keyspace");
>>> 
>>>               cout << "add column family.." << endl;
>>>               CfDef cf_def;
>>>               cf_def.keyspace= "test_keyspace";
>>>               cf_def.name = "cf_name_test";
>>>               client.system_add_column_family( res, cf_def );
>>> 
>>>               const string& key="test_key";
>>>               const string value="valueeee_";
>>> 
>>>               ColumnParent cparent;
>>>               cparent.column_family = "cf_name_test";
>>> 
>>>               Column c;
>>>               c.name =  "column_namess";
>>>               c.value =  value;
>>>               c.timestamp = getTS();
>>> 
>>>               cout << "insert key value:"<< c.value << endl;
>>>               client.insert( key, cparent, c, ConsistencyLevel::ONE);
>>> 
>>>               cout << "drop column family" << endl;
>>>               client.system_drop_column_family( res, "cf_name_test");
>>> 
>>>               cout << "drop keyspace" << endl;
>>>               client.system_drop_keyspace( res, "test_keyspace");
>>> 
>>>               transport->close();
>>> 
>>> and I recive the bellow Exception: Default TException.  [Column value is
>>> required] as you can see from the source code I have fill the value of the
>>> column.
>>> 
>>> thank you in advance for your help.
>>> Konstantinos Chasapis
>>> p.s please cc me in the reply.
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 
>> -- 
>> Jonathan Ellis
>> Project Chair, Apache Cassandra
>> co-founder of DataStax, the source for professional Cassandra support
>> http://www.datastax.com
>> 
> 

Reply via email to