+
+ ;; update-object-joins needs to be fixed for multiple keys
+ #+ignore
+ (deftest :oodml/uoj/2
+ (progn
+ (clsql:update-objects-joins (list company1))
+ (mapcar #'(lambda (e)
+ (slot-value e 'ecompanyid))
+ (company-employees company1)))
+ (1 1 1 1 1 1 1 1 1 1))
+
+ (deftest :oodml/big/1
+ (let ((objs (clsql:select 'big :order-by [i] :flatp t)))
+ (values
+ (length objs)
+ (do ((i 0 (1+ i))
+ (max (expt 2 60))
+ (rest objs (cdr rest)))
+ ((= i (length objs)) t)
+ (let ((obj (car rest))
+ (index (1+ i)))
+ (unless (and (eql (slot-value obj 'i) index)
+ (eql (slot-value obj 'bi) (truncate max index)))
+ (print index)
+ (describe obj)
+ (return nil))))))
+ 555 t)
+
+ (deftest :oodml/db-auto-sync/1
+ (values
+ (progn
+ (make-instance 'employee :emplid 20 :groupid 1
+ :last-name "Ivanovich")
+ (select [last-name] :from [employee] :where [= [emplid] 20]
+ :flatp t :field-names nil))
+ (let ((*db-auto-sync* t))
+ (make-instance 'employee :emplid 20 :groupid 1
+ :last-name "Ivanovich")
+ (prog1 (select [last-name] :from [employee] :flatp t
+ :field-names nil
+ :where [= [emplid] 20])
+ (delete-records :from [employee] :where [= [emplid] 20]))))
+ nil ("Ivanovich"))
+
+ (deftest :oodml/db-auto-sync/2
+ (values
+ (let ((instance (make-instance 'employee :emplid 20 :groupid 1
+ :last-name "Ivanovich")))
+ (setf (slot-value instance 'last-name) "Bulgakov")
+ (select [last-name] :from [employee] :where [= [emplid] 20]
+ :flatp t :field-names nil))
+ (let* ((*db-auto-sync* t)
+ (instance (make-instance 'employee :emplid 20 :groupid 1
+ :last-name "Ivanovich")))
+ (setf (slot-value instance 'last-name) "Bulgakov")
+ (prog1 (select [last-name] :from [employee] :flatp t
+ :field-names nil
+ :where [= [emplid] 20])
+ (delete-records :from [employee] :where [= [emplid] 20]))))
+ nil ("Bulgakov"))
+
+ (deftest :oodml/setf-slot-value/1
+ (let* ((*db-auto-sync* t)
+ (instance (make-instance 'employee :emplid 20 :groupid 1)))
+ (prog1
+ (setf
+ (slot-value instance 'first-name) "Mikhail"
+ (slot-value instance 'last-name) "Bulgakov")
+ (delete-records :from [employee] :where [= [emplid] 20])))
+ "Bulgakov")
+
+ (deftest :oodml/float/1
+ (let* ((emp1 (car (select 'employee
+ :where [= [slot-value 'employee 'emplid]
+ 1]
+ :flatp t
+ :caching nil)))
+ (height (slot-value emp1 'height)))
+ (prog1
+ (progn
+ (setf (slot-value emp1 'height) 1.0E0)
+ (clsql:update-record-from-slot emp1 'height)
+ (= (car (clsql:select [height] :from [employee]
+ :where [= [emplid] 1]
+ :flatp t
+ :field-names nil))
+ 1))
+ (setf (slot-value emp1 'height) height)
+ (clsql:update-record-from-slot emp1 'height)))
+ t)
+
+ (deftest :oodml/float/2
+ (let* ((emp1 (car (select 'employee
+ :where [= [slot-value 'employee 'emplid]
+ 1]
+ :flatp t
+ :caching nil)))
+ (height (slot-value emp1 'height)))
+ (prog1
+ (progn
+ (setf (slot-value emp1 'height) 1.0S0)
+ (clsql:update-record-from-slot emp1 'height)
+ (= (car (clsql:select [height] :from [employee]
+ :where [= [emplid] 1]
+ :flatp t
+ :field-names nil))
+ 1))
+ (setf (slot-value emp1 'height) height)
+ (clsql:update-record-from-slot emp1 'height)))
+ t)
+
+ (deftest :oodml/float/3
+ (let* ((emp1 (car (select 'employee
+ :where [= [slot-value 'employee 'emplid]
+ 1]
+ :flatp t
+ :caching nil)))
+ (height (slot-value emp1 'height)))
+ (prog1
+ (progn
+ (setf (slot-value emp1 'height) 1.0F0)
+ (clsql:update-record-from-slot emp1 'height)
+ (= (car (clsql:select [height] :from [employee]
+ :where [= [emplid] 1]
+ :flatp t
+ :field-names nil))
+ 1))
+ (setf (slot-value emp1 'height) height)
+ (clsql:update-record-from-slot emp1 'height)))
+ t)
+
+ (deftest :oodml/float/4
+ (let* ((emp1 (car (select 'employee
+ :where [= [slot-value 'employee 'emplid]
+ 1]
+ :flatp t
+ :caching nil)))
+ (height (slot-value emp1 'height)))
+ (prog1
+ (progn
+ (setf (slot-value emp1 'height) 1.0D0)
+ (clsql:update-record-from-slot emp1 'height)
+ (= (car (clsql:select [height] :from [employee]
+ :where [= [emplid] 1]
+ :flatp t
+ :field-names nil))
+ 1))
+ (setf (slot-value emp1 'height) height)
+ (clsql:update-record-from-slot emp1 'height)))
+ t)
+
+ (deftest :oodml/float/5
+ (let* ((emp1 (car (select 'employee
+ :where [= [slot-value 'employee 'emplid]
+ 1]
+ :flatp t
+ :caching nil)))
+ (height (slot-value emp1 'height)))
+ (prog1
+ (progn
+ (setf (slot-value emp1 'height) 1.0L0)
+ (clsql:update-record-from-slot emp1 'height)
+ (= (car (clsql:select [height] :from [employee]
+ :where [= [emplid] 1]
+ :flatp t
+ :field-names nil))
+ 1))
+ (setf (slot-value emp1 'height) height)
+ (clsql:update-record-from-slot emp1 'height)))
+ t)
+