X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fobjects.lisp;h=90505559e6e466f4076a7f443eda47b38af7ca53;hp=6b2fb4b0b892391a84bd15227ff298c98cd94b2e;hb=8972490fe6f9453c5b70dae4fb1141cf9a67f0db;hpb=f246c3c7b48792a869cb1bae0637a2f00a0920bd diff --git a/sql/objects.lisp b/sql/objects.lisp index 6b2fb4b..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,8 +784,8 @@ 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) @@ -787,7 +793,7 @@ superclass of the newly-defined View Class." "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)))) ) )