Драйвер Datastax Cassandra c ++ - получение метаданных из полей кортежа - PullRequest
0 голосов
/ 07 марта 2019

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

Прежде всего, я объявляю пространство ключей и таблицу сid (int, PK) и кортеж (int, str, int).

Во-вторых, я получаю метаданные из именованной таблицы.

const CassTableMeta *table_meta = cass_keyspace_meta_table_by_name(keyspace_meta, this->table.c_str());

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

CassIterator *iterator = cass_iterator_columns_from_table_meta(table_meta);
while (cass_iterator_next(iterator)) {
        if(cass_iterator_type(iterator) == CASS_VALUE_TYPE_TUPLE) 
             const CassColumnMeta *cmeta = cass_iterator_get_column_meta(iterator);
             CassIterator *cit = cass_iterator_fields_from_column_meta(cmeta);
             while (cass_iterator_next(cit)) {
                   //get metadata of every field (int, str, int) using cass_data_type_type(...)

Итак, в моем случае код более бесполезенправильно, я хочу получить метаду столбца кортежа и метаданные каждого поля (int, str, int), используя cass_data_type_type (...).

...