2012-07-03 36 views
0

我使用thrift-0.7.0和cassandra-1.1.1,我在使用system_add_column_family添加一個新的columnfamily時成功了,但是當我嘗試使用system_update_column_family向現有的columnfamily添加新列時,我一個錯誤 「UpdateColumnFamily InvalidRequestException默認TException」,這我試圖是如下cassandra UpdateColumnFamily InvalidRequestException默認值TException

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

樣品C++代碼

任何一個可以幫助我 預先感謝您

+0

你的卡桑德拉日誌說什麼? –

+0

您確定'ColFM1'以前是否存在於您的密鑰空間中?如果你正在linux系統上運行'tail -f your_cassandra_log_dir/system.log'並在其他終端執行這個c代碼 – Tamil

回答

0

我相信你仍然需要打電話給你連接上set_keyspace將其設爲您的新密鑰空間創建柱族之前。這可能是什麼突破。

請注意,使用CQL而不是舊的Thrift API可能會更容易。你基本上可以調用execute_cql_query並傳入一個字符串。有一個full reference for CQL,應該讓事情變得更容易。