X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fmetaclasses.lisp;h=d6d92b85ce3595aef251d63779212c3fe69753b1;hb=9698f9b6d0f6439b7547d198bb9db95f61b20c5d;hp=95b9c11ed6c5a14993548c740af2169ca89a3a26;hpb=749f294e457f124cac7b1a6adf2764fbf3b0a849;p=clsql.git diff --git a/sql/metaclasses.lisp b/sql/metaclasses.lisp index 95b9c11..d6d92b8 100644 --- a/sql/metaclasses.lisp +++ b/sql/metaclasses.lisp @@ -56,9 +56,9 @@ ;;; Lispworks 4.2 and before requires special processing of extra slot and class options -(defconstant +extra-slot-options+ '(:column :db-kind :db-reader :nulls-ok :db-constraints - :db-writer :db-type :db-info)) -(defconstant +extra-class-options+ '(:base-table)) +(defvar +extra-slot-options+ '(:column :db-kind :db-reader :void-value :db-constraints + :db-writer :db-info)) +(defvar +extra-class-options+ '(:base-table)) (dolist (slot-option +extra-slot-options+) (process-slot-option standard-db-class slot-option)) @@ -287,13 +287,12 @@ column definition in the database.") :initform nil :documentation "A single constraint or list of constraints for this column") - (nulls-ok - :accessor view-class-slot-nulls-ok - :initarg :nulls-ok + (void-value + :accessor view-class-slot-void-value + :initarg :void-value :initform nil :documentation - "If t, all sql NULL values retrieved from the database become nil; if nil, -all NULL values retrieved are converted by DATABASE-NULL-VALUE") + "Value to store is the SQL value is NULL. Default is NIL.") (db-info :accessor view-class-slot-db-info :initarg :db-info @@ -443,8 +442,8 @@ which does type checking before storing a value in a slot." (when (slot-boundp sd 'db-type) (view-class-slot-db-type sd))) - (setf (slot-value slotd 'nulls-ok) - (view-class-slot-nulls-ok sd)) + (setf (slot-value slotd 'void-value) + (view-class-slot-void-value sd)) ;; :db-kind slot value defaults to :base (store slot value in ;; database)