Я не очень разбираюсь в использовании типа данных BLOB-объектов. Я новичок в Cassandra и только начал работать с C ++ API Cassandra. Может ли содержимое структуры C ++ храниться в BLOB Кассандры. Если да, то как. Например, чтобы сохранить bigint как blob, у нас есть bigintAsBlob ().
Учитывая struct
:
struct my_struct {
int field1;
double field2;
};
И подготовленное заявление (я надеюсь, что вы используете подготовленные заявления), вы можете сделать это:
my_struct s;
std::unique_ptr<char[]> buffer(new char[sizeof(my_struct)]);
memcpy(buffer.get(), &s, sizeof(my_struct));
cass_statement_bind_bytes(statement, index, buffer.get(), sizeof(my_struct))
куда statement
является подготовленным утверждением, а индекс является индексом blob
поле в вашей схеме.
Обратите внимание, что ваша структура должна быть POD без членов, полагающихся на динамическую память (например, нет char*
), иначе это не сработает. Я не проверял это, но я надеюсь, что это помогает.
Других решений пока нет …