fault-join-target-slot assumes that :target-slot names a class

Aleksandar Bakic <a_bakic-/[email protected]> Sat, 15 Oct 2005 04:29:43 -0700 (PDT)
Newsgroups gmane.lisp.clsql.devel
Message-ID <[email protected]>
Hi,

It seems that fault-join-target-slot, in the case of :immediate retrieval,
assumes that :target-slot, in addition to naming a slot, names its class.
Namely, it calls find-class on it. Hence, the slot should be named after the
class, which seems incorrect.

An example (with a self-join):

(def-view-class/meta item ()
  ...
  (itemid :db-kind :key ...)
  (elts :db-kind :join
        :db-info (:join-class item-elt
                  :home-key itemid
                  :foreign-key mainitemid
                  :target-slot elt ; breaks unless renamed to item
                  :set t))
  ...)

(def-view-class/meta item-elt ()
  ((mainitemid :type integer :initarg :itemid)
   (eltid :type integer :initarg :eltid)
   (elt :db-kind :join ; breaks unless renamed to item
        :db-info (:join-class item
                  :home-key eltid
                  :foreign-key itemid
                  :retrieval :immediate))))

Alex

PS. Does item-elt require its own key, in general? (I do not need it, but am
not sure if clsql expects one for any reason.)


		
__________________________________ 
Yahoo! Music Unlimited 
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/