BerkeleyDB: получение усеченных ключей для функции bt_compare в python BTREE

Я использую BerkeleyDB 6.0 с драйверами Python bsddb3. У меня есть набор данных с BTREE метод доступа, имеющий ключи в виде строк, представляющих числа с плавающей запятой. Я установил функцию сравнения для использования в set_bt_compare(),

Когда я пытаюсь использовать db.set_range(key) функции, ключи, которые получает функция сравнения, иногда усекаются. например,

--------------------------------------------------
'left :1378934633890000.0'
--------------------------------------------------
'right:13789346362'

Здесь правильный ключ должен быть '1378934636286548.8',

Кто-нибудь видел эту проблему? есть предложения, как это исправить?

Спасибо.

1 ответ

Решение

На самом деле это была моя вина. Я не установил bt_compare метод при добавлении данных. Я сделал это, и теперь нет усеченных данных. На случай, если у кого-то возникнет та же проблема, убедитесь, что вы правильно устанавливаете метод сравнения каждый раз, когда читаете / записываете данные.

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