cassandra-cli: невозможно принудить «псевдоним» к UUID версии 1 - PullRequest
1 голос
/ 20 сентября 2011

Мне не терпится создать семейство столбцов с TimeUUIDType в качестве имени строки:

create column family users
with column_type = 'Standard'
and comparator = 'TimeUUIDType'
and default_validation_class = 'UTF8Type'
and key_validation_class = 'UTF8Type'
and memtable_operations = 0.290625
and memtable_throughput = 62
and memtable_flush_after = 1440
and rows_cached = 0.0
and row_cache_save_period = 0
and keys_cached = 200000.0
and key_cache_save_period = 14400
and read_repair_chance = 1.0
and gc_grace = 864000
and min_compaction_threshold = 4
and max_compaction_threshold = 32
and replicate_on_write = true
and row_cache_provider = 'ConcurrentLinkedHashCacheProvider'
and column_metadata=[
{column_name: allias, validation_class: UTF8Type, index_type: KEYS, index_name: allias},
{column_name: st_user_id, validation_class: TimeUUIDType, index_type: KEYS, index_name: st_user_id},
{column_name: st_money, validation_class: IntegerType},
{column_name: mail, validation_class: UTF8Type},
{column_name: password, validation_class: UTF8Type},
{column_name: last_visit, validation_class: DateType},
{column_name: registered, validation_class: DateType}
];

Но я получаю исключение:

org.apache.cassandra.db.marshal.MarshalException: невозможно принудить «псевдонимы» к версии 1 UUID

Что я делаю неправильно?

1 Ответ

3 голосов
/ 20 сентября 2011

Свойство компаратора семейства столбцов используется для упорядочения столбцов в строке.Вы пытаетесь использовать компаратор TimeUUID, для которого требуется, чтобы каждое имя столбца было значением TimeUUID.

Если вы хотите использовать TimeUUID в качестве ключей строки, но в строках для имен столбцов вы, скорее всего, просто хотите переключитьзначения для этих настроек,

comparator = 'UTF8Type',
key_validation_class = 'TimeUUIDType'
...