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