[elephant-devel] db-postmodern update - Integrated!

Robert L. Read read at robertlread.net
Wed Jul 4 22:49:45 UTC 2007


I have just integrated Henrik Hjelte's postmodern-based backend into the
official
darcs repository for elephant:

http://common-lisp.net/project/elephant/darcs/elephant/

However, this is not an official release, but presumably will be part of
the next official release.
It passes all of the tests.  The Postmodern backend is not quite twice
as fast on our testsuite as
the CL-SQL backend.  The CL-SQL backend still has some value, however,
for non-Postgres 
databases.  If someone were to write another DB-specific backend, such
as a MySQL backend
or an Oracle backend, I would assume they would benefit from both the
CL-SQL version and 
the Postmodern version.  However, I think the Postmodern version is
better-written.  I thank
Henrik very much for preparing such a well-written, easy-to-integrate
backend.

I did, however, have to make three changes to get this to work for me
under SBCL.
Postmodern defines "db-error" incompatibly with the BDB backend, so I
renamed the BDB symbol
from db-error to bdb-db-error.  This was one issue on a "handler-case"
that I assume was 
acceptable under Henrik's LISP, but didn't work under SBCL, or seem to
follow the CLHS.
Finally, in shared-initialize :after method that builds the cache-
indices I had to explicitly 
set the slot to the initform, to prevent a reading of an unbound-slot.
I still have no idea
why the slot was unbound at that point, in spite of all documentation
saying that it should be.

I slightly modified Henrik's test to harmonize more with the CL-SQL
version, and added an
example of using postmodern into the RUNTEST.lisp file.

Describing this in the manual remains to be done; I don't have any
immediate plans to do so.

Personally, I think each backend adds to the overall usability of
Elephant, and should broaden
our user base.  Particularly since one can migrate data from one backend
to another, it would
seem that we are offering a solid platform.

Once this is officially released, users can expect the postmodern
backend to be supported 
indefinitely.  If we ever drop a backend, we will provide a way to
migrate data out of it.






On Sat, 2007-05-12 at 16:46 +0200, Henrik Hjelte wrote:

> I have made some changes to the postmodern postgresql backend. The darcs
> repo is now based on the official elephant darcs repo, so patches can be
> moved between them easily. The postmodern backend passes all "official"
> tests, but has not been extensively tested with real data yet.
> 
> The db-postmodern tree can be found here:
> http://common-lisp.net/project/grand-prix/darcs/elephant
> 
> /Henrik Hjelte
> 
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20070704/ade46b52/attachment.html>


More information about the elephant-devel mailing list