[pybsddb] Re: [Python-Dev] Please give this patch for building bsddb a try

Gregory P. Smith greg@electricrain.com
Wed, 19 Jun 2002 14:25:59 -0700

On Wed, Jun 19, 2002 at 04:15:16PM -0500, Skip Montanaro wrote:
>     BAW> I still think we may want to pull PyBSDDB into the standard distro,
>     BAW> as a way to provide BDB api's > 1.85.  The question is, what would
>     BAW> this new module be called?  I dislike "bsddb3" -- which I think
>     BAW> PyBSDDB itself uses -- because it links against BDB 4.0.
>     Guido> Good idea.  Maybe call it berkeleydb?  That's what Sleepycat
>     Guido> calls it (there's no connection with the BSD Unix distribution
>     Guido> AFAICT).
> Why can't it just be called bsddb?  As far as I could tell tell, it provides
> a bsddb-compatible interface at the module level.  The only change at the
> bsddb level is the addition of an extra object (db?  I can't recall right
> now and have to get offline soon for the credit card machine so I can't
> pause to check ;-) which gives the programmer access to all the PyBSDDB
> magic.
> Skip

Modern berkeleydb uses much different on disk database formats, glancing
at the docs on sleepycat.com i don't even think it can read bsddb (1.85)
files.  Existing code using bsddb (1.85) should not automatically start
using a different database library even if we provide a compatibility
interface.  That upgrade can be done to code manually using:

import berkeleydb
bsddb = berkeleydb

(and creating a single bsddb module that used the old 1.85 library for the
old interface and the 3.3/4.0 library for the modern interface would add
bloat to many applications that don't need both if it were even possible
to link that in such a way as to avoid the symbol conflicts)


Some mistakes are too much fun to make only once.