Почему я не могу вставить это имя составного столбца в виде байтов в большой двоичный объект CQL?
У меня есть CQL 3 CF
CREATE TABLE entries (
id text,
va text,
ts bigint,
idxc blob,
PRIMARY KEY (id, va, ts)
);
И с pelops я получаю для вставки байтов ( [0, 4, 0, 0, 0, 4, 0, 0, 8, 0, 0, 1, 55, -56, -41, 6, 14, 0, 0, 16, 65, 50, 82, 97, 84, 85, 95, 82, 72, 71, 115, 69, 89, 115, 100, 49, 0, 0, 8, 0, 4, -63, -24, -121, -16, 35, -80, 0, 0, 2, 105, 103, 0]) это исключение:
org.scale7.cassandra.pelops.exceptions.InvalidRequestException: (String didn't validate.)[ks][entries][aKey:1339104364078000:idxc] failed validation
at org.scale7.cassandra.pelops.exceptions.IExceptionTranslator$ExceptionTranslator.translate(IExceptionTranslator.java:47)
Я могу вставить другие байтовые массивы тем же методом.
3 ответа
Давайте закроем это: Вывод: CQL 3 все еще бета, не ожидайте, что он будет без сбоев.
Теперь я использую определения схемы старого стиля без проблем.
Я не работал с Пелопсом, так что это выстрел в темноте, но убедитесь, что вы передаете свой мутатор байт [] (я заметил заглавную букву B в вашем OP), и если нет, попробуйте преобразование в байт [] в вызове. Если для того, что вы передаете, нет сигнатуры метода, возможно, она принимает его версию toString() и идет дальше.
Pelops может еще не поддерживать составные первичные ключи в стиле cql3. (Действительно, это просто тот факт, что метаданные столбца должны совпадать только с последним компонентом имен составного столбца.) Я предлагаю проверить с разработчиками Pelops.