2015-02-06 40 views
2

我必須包含這些列的表:欄添加「ALTER TABLE」當我提出一個要求不出現

[email protected]:test> DESCRIBE Table "ItemSource"; 

CREATE TABLE connect."ItemSource" (
    "Identifier" text, 
    "SourceID" uuid, 
    "ItemID" uuid, 
    "Priority" int, 
    "AdditionalParams" map<text, text>, 
    "Binding" map<text, text>, 
    "CountryRestriction" list<text>, 
    "ItemSourceID" uuid, 
    "Marker" text, 
    "Scraped" int, 
    "SearchField" text, 
    PRIMARY KEY (("Identifier", "SourceID"), "ItemID", "Priority") 
) WITH CLUSTERING ORDER BY ("ItemID" ASC, "Priority" ASC) 
    AND bloom_filter_fp_chance = 0.01 
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' 
    AND comment = '' 
    AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} 
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} 
    AND dclocal_read_repair_chance = 0.1 
    AND default_time_to_live = 0 
    AND gc_grace_seconds = 864000 
    AND max_index_interval = 2048 
    AND memtable_flush_period_in_ms = 0 
    AND min_index_interval = 128 
    AND read_repair_chance = 0.0 
    AND speculative_retry = '99.0PERCENTILE'; 

我公司推出以下欄添加一個名爲int類型的限價欄:

ALTER TABLE "ItemSource" ADD "Limit" int; 

表中已經包含元素,我更新了它們全部以便它們具有極限值0,如果我使用cqlsh執行以下命令,則出現「限制」列並且值也存在。

但如果我使用gocql,圍棋驅動程序卡桑德拉做同樣的要求,我沒有收到限制列,但我收到了別人,這裏是所提出的要求:

SELECT * FROM "ItemSource" WHERE "Identifier" = ? AND "ItemID" = ? AND "SourceID" = ? AND "Priority" = ? LIMIT ? ALLOW FILTERING 

我有不知道發生了什麼,我試圖將數據複製到一個csv文件,然後截斷表,然後重新導入數據,仍然得到相同的結果...

它可能是一個緩存問題?如果是,我該如何清空它。否則,它會是什麼?

+1

這可能是go驅動程序中的一個錯誤:我會建議報告它 – 2015-02-06 01:42:49

回答

1

我發現了一個和我的相同的問題,答案解釋說這是一個即將修復的錯誤。事實上,它已被修復,我們只能等待下一次更新(2.1.3)。

https://stackoverflow.com/a/28035521/1405208

這裏是鏈接到Cassandra的問題:CASSANDRA-7910

編輯:我編輯此消息,因爲卡桑德拉2.1.3已經發布了,現在一兩個月的(實際上,它當我發佈這個答案的那一天發佈了,太棒了!:))和修復工程。

你去那裏!