[elephant-devel] Class indexes dropped after database restart?
Red Daly
reddaly at gmail.com
Wed Sep 23 23:27:41 UTC 2009
This is the 1.0 repository. I will see if I can reproduce the problem
in a test case.
Red
On Sep 23, 2009, at 9:50 AM, Ian Eslick <eslick at media.mit.edu> wrote:
> Which darcs repository? There is the old 0.91 release and the new
> elephant-1.0 branch...
>
> Ian
>
> On Sep 22, 2009, at 8:41 PM, Red Daly wrote:
>
>> I should also note that I am using the version of elephant from
>> darcs. And I discovered that when the program went down it was due
>> to a segfault (I believe in emacs). However, all instances had
>> been created under many different transactions that did not abort.
>>
>> Here is some more fiddling around:
>>
>> CL-USER> (lisp-implementation-version)
>> "1.0.29.54.rc1"
>> BOOKS> (ele::get-db-schemas *ele-db* 'material)
>> NIL
>> BOOKS> (ele::controller-instance-class-index *ele-db*)
>> #<BDB-BTREE-INDEX oid:13701>
>> BOOKS> (ele:map-btree #'(lambda (key val)
>> (format t "~S => ~S~%" key val))
>> (ele::controller-instance-class-index *ele-
>> db*))
>> 307 => 307
>> NIL
>>
>>
>> Red
>>
>> On Tue, Sep 22, 2009 at 8:08 PM, Red Daly <reddaly at gmail.com> wrote:
>> I noticed there was a disparity between get-instances-by-class and
>> map-inverted-index. I will let the code speak for itself:
>>
>> BOOKS> (length (ele:map-inverted-index #'(lambda (isbn obj) obj)
>> 'material 'isbn :collect t))
>> 1945
>> BOOKS> (length (ele:get-instances-by-class 'material))
>> 0
>> BOOKS> (defparameter f (make-instance 'material :title "Fake Book"))
>> F
>> BOOKS> (length (ele:get-instances-by-class 'material))
>> 1
>> BOOKS> (length (ele:map-inverted-index #'(lambda (isbn obj) obj)
>> 'material 'isbn :collect t))
>> 1946
>>
>> There is a similar problem with the university class.
>>
>> BOOKS> (length (ele:get-instances-by-class 'university))
>> 0
>> BOOKS> *stanford-university*
>> #<UNIVERSITY oid:204>
>> BOOKS> (official-name *stanford-university*)
>> "Stanford University"
>>
>> All of the instances in the database were created in a prior
>> session. Then I shut down the DB and restarted Lisp. Now MAP-
>> CLASS and GET-INSTANCES-BY-CLASS return nil for all classes. It
>> seems like new instances get added to the "class index," but older
>> instances are not found. However, these classes persist in the
>> inverted slot indexes. Can anybody diagnose what's going on?
>>
>> here are the definitions of the classes:
>>
>> (defclass department ()
>> ((university :initarg :university :initform nil :accessor
>> department-university
>> :index t)
>> (official-name :initarg :official-name :initform nil :accessor
>> official-name)
>> (common-name :initarg :common-name :initform nil :accessor
>> common-name)
>> (abbreviation :initarg :abbreviation :initform nil :accessor
>> abbreviation
>> :index t))
>> (:metaclass ele:persistent-metaclass)
>> (:documentation "A department has a bunch of course listings."))
>>
>> (defclass material ()
>> ((title :initarg :title :initform nil :accessor material-title
>> :index t)
>> (authors :initarg :authors :initform nil :accessor material-
>> authors) ;; a list of authors
>> (edition :initarg :edition :initform nil :accessor material-
>> edition)
>> (isbn :initarg :isbn :initform nil :accessor material-isbn
>> :index t)
>> (asin :initarg :asin :initform nil :accessor material-asin
>> :index t
>> :documentation "An Amazon.com identifier that uniquely
>> identifies the material")
>> (image-uri :initarg :image-uri :initform nil :accessor material-
>> image-uri))
>> (:metaclass ele:persistent-metaclass))
>>
>> Thanks,
>> Red
>>
>>
>> _______________________________________________
>> elephant-devel site list
>> elephant-devel at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/elephant-devel
>
> _______________________________________________
> 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/20090923/1b4693af/attachment.html>
More information about the elephant-devel
mailing list