I have the following code in Erlang to set a value and then add a property. The first set works but the mutate fails. Can anyone enlighten me? Thanks
{ok, C} = thrift_client:start_link("127.0.0.1",9160, cassandra_thrift), Key = "Key1", % % set first property % thrift_client:call( C, 'insert', [ "Keyspace1", Key, #columnPath{column_family="KeyValue", column="value"}, "value1", 1, 1 ] ), % % set second property ( fails! - why? ) % MutationMap = { Key, { <<"KeyValue">>, [ #mutation{ column_or_supercolumn = #column{ name = "property" , value = "value" , timestamp = 2 } } ] } }, thrift_client:call( C, 'batch_mutate', [ "Keyspace1", MutationMap, 1 ] ) : The error returned is : ** exception exit: {bad_return_value,{error,{function_clause,[{dict,size, [{"Key1", {<<"KeyValue">>, [{mutation,{column,"property","value",2},undefined}]}}]}, {thrift_protocol,write,2}, {thrift_protocol,struct_write_loop,3}, {thrift_protocol,write,2}, {thrift_client,send_function_call,3}, {thrift_client,'-handle_call/3-fun-0-',3}, {thrift_client,catch_function_exceptions,2}, {thrift_client,handle_call,3}]}}} 7> =ERROR REPORT==== 30-Apr-2010::15:13:42 === ** Generic server <0.55.0> terminating ** Last message in was {call,batch_mutate, ["Keyspace1", {"Key1", {<<"KeyValue">>, [{mutation, {column,"property","value",2}, undefined}]}}, 1]} ** When Server state == {state,cassandra_thrift, {protocol,thrift_binary_protocol, {binary_protocol, {transport,thrift_buffered_transport,<0.58.0>}, true,true}}, 0} ** Reason for termination == ** {bad_return_value, {error, {function_clause, [{dict,size, [{"Key1", {<<"KeyValue">>, [{mutation, {column,"property","value",2}, undefined}]}}]}, {thrift_protocol,write,2}, {thrift_protocol,struct_write_loop,3}, {thrift_protocol,write,2}, {thrift_client,send_function_call,3}, {thrift_client,'-handle_call/3-fun-0-',3}, {thrift_client,catch_function_exceptions,2}, {thrift_client,handle_call,3}]}}}