Package: cl-sql Version: 3.1.2-1 There are three problems with the :db-reader argument to DEF-VIEW-CLASS:
(1) Documentation bug: It is mentioned in the documentation in the example page /usr/share/doc/cl-sql/html/ch02s02.html but not in the documentation of def-view-class itself: /usr/share/doc/cl-sql/html/def-view-class.html (2) Code bug: sql/metaclasses.lisp contains a piece of code in (defmethod compute-effective-slot-definition ((class standard-db-class) #+kmr-normal-cesd slot-name direct-slots) that deals with the :db-writer slot: (setf (slot-value esd 'db-writer) (when (slot-boundp dsd 'db-writer) (delistify-dsd (view-class-slot-db-writer dsd)))) The corresponding piece of code for :db-reader is just missing. Patching in these lines will make the code work (at least that's what I observe): (setf (slot-value esd 'db-reader) (when (slot-boundp dsd 'db-reader) (delistify-dsd (view-class-slot-db-reader dsd)))) (3) Usage bug(?): Specifying a function as a reader argument is quite awkward. Right now, I am using #. syntax: (content :db-kind :base :column "ser_content" :db-constraints :not-null :accessor msg-content :db-type "text" ; postgres :db-reader #.#'_msg-deserialize-content :db-writer #.#'_msg-serialize-content :initarg :content) That is presumably not what's intended here. Maybe I just did not get the point, but somehow I seem to be unable to properly specify a function in this place. If this really is not possible, it would at least be nice if one could specify a symbol whose symbol-function is the desired de-serialization function. On a side note, the documentation could be a bit clearer on the proper way to type-map a postgresql variable-length "text" field to CLOS. I think the method I am using above should presumably be okay. -- regards, [EMAIL PROTECTED] (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]