X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fmetaclasses.lisp;h=d6d92b85ce3595aef251d63779212c3fe69753b1;hb=f69c5bfba59d54628f9a08b83413ec3df3c92432;hp=aafd3f4120e5eee65980599b487cf7c3074ced6a;hpb=ed4847a3ca88803bad88e72a514c855e85b50ba7;p=clsql.git diff --git a/sql/metaclasses.lisp b/sql/metaclasses.lisp index aafd3f4..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-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)