[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