Почему я не могу вставить это имя составного столбца в виде байтов в большой двоичный объект 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.

Другие вопросы по тегам