[Python-Dev] Distutils confuses Berkeley DB and dbm?

Barry A. Warsaw barry@zope.com
Fri, 31 May 2002 16:48:14 -0400


>>>>> "SM" == Skip Montanaro <skip@pobox.com> writes:

    Skip> Why the proliferation?

    Martin> Because any specific version of the Sleepycat code can
    Martin> only access a few database file format versions. Older
    Martin> databases cannot be accessed with newer library
    Martin> implementations. Hence, you need to link explicitly with
    Martin> older libraries to access older databases.

    SM> I think it's a bad idea to tie into an external vendor's
    SM> release idiosyncracies that way.  Sleepycat does provide
    SM> utilities with each release which allows users to migrate from
    SM> older file formats to newer ones.  I would rather see some
    SM> embellishment of the bsddb module that allows programmers to
    SM> query file format types and possibly convert file formats by
    SM> calling out to the Sleepycat-provided utilities.

There's really two issues, the file format and the API version.  It
probably makes sense to keep `bsddb' as the 1.85 API.  Maybe it's
enough for pybsddb (aka bsddb3) to be the 3.x API and not expose a 2.x
API.  But then, what about the BDB 4.x API?

I agree that we probably don't need to support mutiple older file
formats, since there are tools to upgrade, as long as we fail
gracefully when handed a format we don't understand.  By that I mean,
get an exception, not a crash.

-Barry