Source
(defmethod slot-index-tables ((rucksack standard-rucksack))
;; Create slot-index-tables if they don't exist yet.
(flet ((do-it ()
(unless (slot-boundp rucksack 'slot-index-tables)
;; Create a btree mapping class names to slot
;; index tables.
(let ((btree (make-instance 'btree
:rucksack rucksack
:key< 'string<
:value= 'p-eql
:unique-keys-p t
:dont-index t)))
(setf (slot-value rucksack 'slot-index-tables) (object-id btree)
(roots-changed-p rucksack) t)))
;;
(cache-get-object (slot-value rucksack 'slot-index-tables)
(rucksack-cache rucksack))))
(if (current-transaction)
(do-it)
(with-transaction (:rucksack rucksack)
(do-it)))))
Source Context