Столбец, добавленный с помощью ALTER TABLE, не отображается, когда я делаю запрос

У меня была таблица, содержащая эти столбцы:

cassandra@cqlsh: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';

Я запустил следующий столбец, чтобы добавить столбец с именем Limit типа int:

ALTER TABLE "ItemSource" ADD "Limit" int;

Таблица уже содержала элементы, я обновил их все, чтобы они имели предел 0, если я выполню следующую команду с помощью cqlsh, появится столбец «Предел», и значения также присутствуют.

Но если я сделаю точно такой же запрос, используя gocql, драйвер Go для cassandra, я не получу столбец Limit, но получу остальные, вот сделанный запрос:

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

Я понятия не имею, что происходит, я попытался скопировать данные в файл csv, затем обрезать таблицу, а затем повторно импортировать данные, но все равно получаю тот же результат...

Может проблема в кэше? Если да, то как я могу его очистить. Иначе что это может быть?


person Julien Fouilhé    schedule 06.02.2015    source источник
comment
это, вероятно, ошибка в драйвере go: я бы рекомендовал сообщить об этом   -  person G Gordon Worley III    schedule 06.02.2015


Ответы (1)


Я нашел вопрос, который был относительно таким же, как мой, и ответ на который объяснял, что это ошибка, которую скоро исправят. На самом деле, это было исправлено, и нам просто нужно дождаться следующего обновления (2.1.3).

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

А вот ссылка на проблему Кассандры: CASSANDRA-7910

Редактировать: я редактирую это сообщение, потому что Cassandra 2.1.3 была выпущена уже пару месяцев (на самом деле, она была выпущена в тот же день, когда я опубликовал этот ответ, потрясающе! :)), и исправление работает. .

Ну вот!

person Julien Fouilhé    schedule 17.02.2015