"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