(defmacro def-base-class (name (model) &rest args)
(let ((i (make-instance model)))
- `(prog1
- (eval ,(def-base-class-expander i name args))
+ `(progn
+ (eval-when (:compile-toplevel :load-toplevel :execute)
+ ,(def-base-class-expander i :clsql name args))
(defmethod meta-model.metadata ((m ,name))
',(meta-model.metadata i)))))
(when (equal (getf (cdr s) :home-key) slot)
(let ((val (slot-value model (car s))))
(return-from explode-foreign-key
- (values (if val val (make-instance (getf (cdr s) :join-class))) (getf (cdr s) :foreign-key)))))))
+ (values (if val val (make-instance (getf (cdr s) :join-class)))
+ (getf (cdr s) :foreign-key)))))))
(defun find-join-helper (foreign-key)
(lambda (class slot)