Понимание метода tchdbfwmkeys (передача совпадающих ключей в базу данных) в Tokyo Cabinet

Мне трудно понять метод tchdbfwmkeys в кабинете министров Токио.

Документация выглядит следующим образом:

Функция tchdbfwmkeys используется для получения ключей прямого сопоставления в объекте базы данных хэшей.

TCLIST *tchdbfwmkeys(TCHDB *hdb, const void *pbuf, int psiz, int max);

    `hdb' specifies the hash database object. 

    `pbuf' specifies the pointer to the region of the prefix. 

    `psiz' specifies the size of the region of the prefix. 

    `max' specifies the maximum number of keys to be fetched. If it is negative, no limit is specified. 

    The return value is a list object of the corresponding keys. This function does never fail. It returns an empty list even if no key corresponds. 

    Because the object of the return value is created with the function `tclistnew', it should be deleted with the function `tclistdel' when it is no longer in use. Note that this function may be very slow because every key in the database is scanned. 

У меня смутное понимание того, что это значит: вы передаете префикс ключа, и он возвращает все ключи, у которых есть этот префикс. Например, вы передаете префикс data_ и получаете все ключи в базе данных, начинающиеся с data_.

Однако я не совсем уверен, правильно ли это, и даже если бы это было так, я не понимаю параметры pbuf и psiz. Что именно вы должны им передать?


person Eldy    schedule 27.06.2019    source источник


Ответы (1)


Вы правильно понимаете.

pbuf и psiz: это распространенный шаблон в кабинете Тойко. Чтобы разрешить произвольные ключи, ключ (или подстрока ключа) передается не как строка, а как указатель на область и ее размер.

person Sven    schedule 28.08.2019