0

我将 thrift-0.7.0 与 cassandra-1.1.1 一起使用,我成功地使用 system_add_column_family 添加了一个新的列族,但是当我尝试使用 system_update_column_family 将新列添加到现有的列族时,我给出了一个错误“UpdateColumnFamily InvalidRequestException Default 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

任何人都可以帮助我提前谢谢你

4

1 回答 1

0

我相信您仍然需要set_keyspace在创建列族之前调用您的连接以将其设置为新的键空间。这也许就是破坏的原因。

附带说明一下,使用 CQL 而不是旧的 Thrift API 可能更容易做到这一点。您基本上可以调用execute_cql_query并传入一个字符串。CQL有一个完整的参考资料,应该会让事情变得更容易。

于 2012-07-03T22:32:13.470 回答