It never fails (bsddb retirement in 2.3)

Skip Montanaro skip at pobox.com
Mon May 5 17:41:01 EDT 2003


>>>>> "Martin" == Martin v Löwis <martin at v.loewis.de> writes:

    Martin> Andrew MacIntyre <andymac at bullseye.apana.org.au> writes:
    >> To deal with this would require the modules to export the format version
    >> values they support.  From header files I have copies of:
    >> v1.85 =>   hash v2
    >> v1.86 =>   hash v3
    >> v3.3.11 => hash v7 (but supports back to v4)
    >> v4.0.14 => hash v7   "     "      "   "  "

    Martin> Notice that Sleepycat v2.x also uses hash v2.

How do you conclude this?  To fix the bugs in 1.85 required a file format
change.  If you look here on the Sleepycat site:

    http://www.sleepycat.com/download/patchlogs.shtml

you'll see the note "Requires database format upgrade" next to the 2.0.0
library version.  

I just checked the db 2.7.7 source.  db.h shows:

    #define DB_HASHVERSION  5               /* Current hash version. */
    #define DB_HASHOLDVER   4               /* Oldest hash version supported. */
    #define DB_HASHMAGIC    0x061561

My guess is that hash file version 4 was introduced with library version
2.0.0.  Later versions of the library have maintained the ability to
manipulate hash file versions back to version 4, even though they create
files with newer version structures.

Skip





More information about the Python-list mailing list