This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author gregory.p.smith
Recipients
Date 2003-08-13.23:21:08
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
In the old bsddb module a bsddb.btopen(..) database
would return the next available key+value on a
set_location(key) call when key did not exist in the
database.  In python 2.3 (pybsddb) it raises an
exception and leaves the cursor at an unknown position
in the database.

[reported by Anthony McDonaly on comp.lang.python]

>>> import os
>>> import bsddb
>>> os.chdir('/tmp')
>>> my_data = bsddb.btopen('testing', 'c')
>>> for i in range(10):
...   if i == 5:
...     pass
...   else:
...     my_data['%d'%i] = '%d'%(i*i)
...
>>> my_data.keys()
['0', '1', '2', '3', '4', '6', '7', '8', '9']
>>> my_data.sync()
>>> my_data.set_location('5')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File
"/space/python-2.3/lib/python2.3/bsddb/__init__.py",
line 117, in set_location
    return self.dbc.set(key)
_bsddb.DBNotFoundError: (-30991, 'DB_NOTFOUND: No
matching key/data pair found')

Correct behaviour would have been to return ('6', '36')
History
Date User Action Args
2007-08-23 14:16:03adminlinkissue788421 messages
2007-08-23 14:16:03admincreate