X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Frelations.lisp;h=ebbb29fb5ffefd43215937d2b293955e509dec96;hp=44971228659cfcf3c109cbaecdadad2d956fd2a1;hb=d26a044593b10e62d1ba1c7b80266f55bc100d5d;hpb=e96c19277e33851ce1f87139b7f0c41d8a463bec diff --git a/sql/relations.lisp b/sql/relations.lisp index 4497122..ebbb29f 100644 --- a/sql/relations.lisp +++ b/sql/relations.lisp @@ -18,7 +18,7 @@ (defun synchronize-keys (src srckey dest destkey) (let ((skeys (if (listp srckey) srckey (list srckey))) (dkeys (if (listp destkey) destkey (list destkey)))) - (mapcar #'(lambda (sk dk) + (mapc #'(lambda (sk dk) (setf (slot-value dest dk) (typecase sk (symbol @@ -28,7 +28,7 @@ (defun desynchronize-keys (dest destkey) (let ((dkeys (if (listp destkey) destkey (list destkey)))) - (mapcar #'(lambda (dk) + (mapc #'(lambda (dk) (setf (slot-value dest dk) nil)) dkeys))) @@ -43,7 +43,7 @@ (homekey (gethash :home-key dbinfo)) (foreignkey (gethash :foreign-key dbinfo)) (to-many (gethash :set dbinfo))) - (unless (equal (type-of value) join-class) + (unless (subtypep (type-of value) join-class) (error 'clsql-type-error :slotname slot-name :typespec join-class :value value)) (when (gethash :target-slot dbinfo)