我正在使用带有cassandra-1.1.1的thrift-0.7.0,我在使用system_add_column_family添加新的列系列时非常成功,但当我尝试使用system_update_column_family向现有的columnfamily添加新列时出现错误“UpdateColumnFamily InvalidRequestException默认TException“,我尝试的示例c ++代码如下
string sReturn;
CfDef ColumnFamilyDef;
ColumnFamilyDef.keyspace="keyspace2";
ColumnFamilyDef.column_type="Standard";
ColumnFamilyDef.name="ColFM1";
ColumnFamilyDef.__isset.column_type=true;
ColumnDef column;
column.name="Col2";
column.validation_class="UTF8Type";
ColumnFamilyDef.column_metadata.push_back(column);
ColumnFamilyDef.__isset.column_metadata=true;
mpClient->system_update_column_family(sReturn,ColumnFamilyDef);
给我以下例外
UpdateColumnFamily InvalidRequestException默认TException
任何人都可以帮助我 提前谢谢
答案 0 :(得分:0)
我相信您仍需要在连接上调用set_keyspace
,以便在创建列族之前将其设置为新的键空间。这或许正在破碎。
作为旁注,使用CQL而不是旧的Thrift API可能会更容易。你基本上只需要调用execute_cql_query
并传入一个字符串。有一个full reference for CQL可以让事情变得更容易。