[elephant-devel] Problem on the upgrade path

Leslie P. Polzer leslie.polzer at gmx.net
Sun May 18 13:52:10 UTC 2008


> That's interesting.  I'll have to look into that further because any
> existing database should either have the btree already or create it on
> startup...

Either the approach from my last mail was faulty, or some other thing
is afoul; the next open-store threw a deserialization error related to
this:

0: (ELEPHANT::DESERIALIZE
    #S(ELEPHANT-MEMUTIL:BUFFER-STREAM
       :BUFFER #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X08084C28 :TYPE (*
                                                                       (UNSIGNED
                                                                        8))>
       :SIZE 76
       :POSITION 76
       :LENGTH 80)
    #<BDB-STORE-CONTROLLER /home/sky/projects/mystic/backup-world.bdb/>
    NIL)
1: ((SB-PCL::FAST-METHOD ELEPHANT::PERSISTENT-SLOT-READER
     (DB-BDB::BDB-STORE-CONTROLLER T T))
    #<unavailable argument>
    #<unavailable argument>
    #<unavailable argument>
    #<unavailable argument>
    #<unavailable argument>)
2: (SLOT-VALUE #<BDB-INDEXED-BTREE oid:-3> DB-BDB::INDICES)
3: ((SB-PCL::FAST-METHOD SHARED-INITIALIZE :AFTER
     (DB-BDB::BDB-INDEXED-BTREE T)) #<unavailable lambda list>)[:EXTERNAL]

[...]


> yes, add-class-derived-index has been deprecated in favor of a
> defclass form.  There is a more detailed e-mail I sent out on this
> awhile back with some of the tradeoffs and the rationale behind the
> decisions.

I remember the discussion, but I could't remember anything
about the new interface. Thanks for explaining!


> ((slot1 :accessor slot1)
>   (slot2 :accessor slot2)
>   (dslot :accessor dslot :derived-fn 'my-fn :slots-deps (slot1 slot2)))
>
> my-fn is the usual derived index key function.

Very good, the old API was quite clumsy to work with.

  Leslie




More information about the elephant-devel mailing list