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 <redd...@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@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to