X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fobjects.lisp;h=90505559e6e466f4076a7f443eda47b38af7ca53;hb=8972490fe6f9453c5b70dae4fb1141cf9a67f0db;hp=18444be9068161dbb497c4692696a82806a3f43a;hpb=aced01441ccf8a826de544ed34bed4d8616a14ee;p=clsql.git diff --git a/sql/objects.lisp b/sql/objects.lisp index 18444be..9050555 100644 --- a/sql/objects.lisp +++ b/sql/objects.lisp @@ -738,6 +738,8 @@ superclass of the newly-defined View Class." (let* ((dbi (view-class-slot-db-info slot-def)) (ts (gethash :target-slot dbi)) (jc (gethash :join-class dbi)) + (ts-view-table (view-table (find-class ts))) + (jc-view-table (view-table (find-class jc))) (tdbi (view-class-slot-db-info (find ts (class-slots (find-class jc)) :key #'slot-definition-name))) @@ -749,11 +751,15 @@ superclass of the newly-defined View Class." (:immediate (let ((res (find-all (list ts) - :inner-join (sql-expression :attribute jc) + :inner-join (sql-expression :table jc-view-table) :on (sql-operation '== - (sql-expression :attribute (gethash :foreign-key tdbi) :table ts) - (sql-expression :attribute (gethash :home-key tdbi) :table jc)) + (sql-expression + :attribute (gethash :foreign-key tdbi) + :table ts-view-table) + (sql-expression + :attribute (gethash :home-key tdbi) + :table jc-view-table)) :where jq :result-types :auto))) (mapcar #'(lambda (i) @@ -778,16 +784,16 @@ superclass of the newly-defined View Class." (setf (slot-value jcc (gethash :home-key tdbi)) fk) (list instance jcc))) - (select (sql-expression :attribute (gethash :foreign-key tdbi) :table jc) - :from (sql-expression :table jc) + (select (sql-expression :attribute (gethash :foreign-key tdbi) :table jc-view-table) + :from (sql-expression :table jc-view-table) :where jq))))))) (defun update-object-joins (objects &key (slots t) (force-p t) - class-name (max-len *default-update-objects-max-len)) + class-name (max-len *default-update-objects-max-len*)) "Updates the remote join slots, that is those slots defined without :retrieval :immediate." (when objects (unless class-name - (class-name (class-of (first object)))) + (class-name (class-of (first objects)))) ) )