;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;; *************************************************************************
-(in-package #:clsql)
+(in-package #:clsql-sys)
(eval-when (:compile-toplevel :load-toplevel :execute)
(when (>= (length (generic-function-lambda-list
#+lispworks
(dolist (slot-option +extra-slot-options+)
- (process-slot-option standard-db-class slot-option))
+ (eval `(process-slot-option standard-db-class ,slot-option)))
#+lispworks
(dolist (class-option +extra-class-options+)
- (process-class-option standard-db-class class-option))
+ (eval `(process-class-option standard-db-class ,class-option)))
(defmethod validate-superclass ((class standard-db-class)
(superclass standard-class))
(defun compute-class-precedence-list (class)
(class-precedence-list class))))
-#-(or sbcl cmu)
+#-mop-slot-order-reversed
(defmethod compute-slots ((class standard-db-class))
"Need to sort order of class slots so they are the same across
implementations."
((and (symbolp (car specified-type))
(string-equal (symbol-name (car specified-type)) "string"))
'string)
+ ((and (symbolp (car specified-type))
+ (string-equal (symbol-name (car specified-type)) "varchar"))
+ 'string)
+ ((and (symbolp (car specified-type))
+ (string-equal (symbol-name (car specified-type)) "char"))
+ 'string)
(t
specified-type)))
((eq (ensure-keyword specified-type) :bigint)
'integer)
+ ((eq (ensure-keyword specified-type) :char)
+ 'character)
+ ((eq (ensure-keyword specified-type) :varchar)
+ 'string)
((and specified-type
(not (eql :not-null (slot-value slotd 'db-constraints))))
`(or null ,specified-type))
;; all other slots
(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))