You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Erik Bogghed <bo...@codemate.se> on 2010/05/06 15:34:53 UTC
Re: Batch mutate doesn't work
Try this. You need to use the dict module.
MutationMap = dict:store(Key,
dict:store("KeyValue",
[
#mutation {column_or_supercolumn =
#columnOrSuperColumn {column =
#column {name = "property", value="value", timestamp = 2}}}
], dict:new()),
dict:new()),
Erik
On 30 apr 2010, at 15.58, Zubair Quraishi wrote:
> 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}]}}}