X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fmetaclasses.lisp;h=332c5c058a7712ad5fd980e98c749bdf952c54f6;hp=ae511ee71c9f6c953952f065bcb3b4dfc9cac5e3;hb=e75e62c7127f074ef2b2add3d2850c42dfaf590e;hpb=e15b72fefebeee46a83d357db2813031edcc6fbd diff --git a/sql/metaclasses.lisp b/sql/metaclasses.lisp index ae511ee..332c5c0 100644 --- a/sql/metaclasses.lisp +++ b/sql/metaclasses.lisp @@ -78,7 +78,7 @@ ((typep arg 'sql-ident) (slot-value arg 'name)) ((stringp arg) - (intern (symbol-name-default-case arg))))) + (intern arg)))) (defun column-name-from-arg (arg) (cond ((symbolp arg) @@ -309,7 +309,7 @@ column definition in the database.") (defun parse-db-info (db-info-list) (destructuring-bind (&key join-class home-key key-join foreign-key (delete-rule nil) - (target-slot nil) (retrieval :deferred) (set nil)) + (target-slot nil) (retrieval :deferred) (set t)) db-info-list (let ((ih (make-hash-table :size 6))) (if join-class @@ -479,6 +479,9 @@ which does type checking before storing a value in a slot." (delistify-dsd (view-class-slot-db-kind dsd)) :base)) + (setf (slot-value esd 'db-reader) + (when (slot-boundp dsd 'db-reader) + (delistify-dsd (view-class-slot-db-reader dsd)))) (setf (slot-value esd 'db-writer) (when (slot-boundp dsd 'db-writer) (delistify-dsd (view-class-slot-db-writer dsd)))) @@ -511,9 +514,9 @@ which does type checking before storing a value in a slot." (t (let ((type-predicate #+openmcl (slot-value esd 'ccl::type-predicate))) #-openmcl (declare (ignore type-predicate)) - (change-class esd 'view-class-effective-slot-definition - #+allegro :name - #+allegro (slot-definition-name dsd)) + #-clisp (change-class esd 'view-class-effective-slot-definition + #+allegro :name + #+allegro (slot-definition-name dsd)) #+openmcl (setf (slot-value esd 'ccl::type-predicate) type-predicate))