0

cassandra-1.1.1 で thrift-0.7.0 を使用しています。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列ファミリーを作成する前に、接続を呼び出して新しいキースペースに設定する必要があると思います。それが壊れているのかもしれません。

補足として、これはおそらく、古い Thrift API よりも CQL を使用する方がはるかに簡単です。基本的にexecute_cql_queryは、文字列を呼び出して渡すだけです。物事を簡単にするCQLの完全なリファレンスがあります。

于 2012-07-03T22:32:13.470 に答える