" "
(slot-value e 'last-name)))
(clsql:select 'employee :where [= [slot-value 'employee 'first-name]
- "Vladamir"]
+ "Vladimir"]
:flatp t
:order-by [last-name]
:caching nil))
- ("Vladamir Lenin" "Vladamir Putin"))
+ ("Vladimir Lenin" "Vladimir Putin"))
(deftest :oodml/select/5
(length (clsql:select 'employee :where [married] :flatp t :caching nil))
": "
(employee-email lenin))))
(progn
- (setf (slot-value employee1 'first-name) "Vladamir"
+ (setf (slot-value employee1 'first-name) "Vladimir"
(slot-value employee1 'last-name) "Lenin"
(slot-value employee1 'email) "lenin@soviet.org")
(clsql:update-records-from-instance employee1)
(last-name lenin)
": "
(employee-email lenin)))))
- "Vladamir Lenin: lenin@soviet.org"
+ "Vladimir Lenin: lenin@soviet.org"
"Dimitriy Ivanovich: ivanovich@soviet.org"
- "Vladamir Lenin: lenin@soviet.org")
+ "Vladimir Lenin: lenin@soviet.org")
;; tests update-record-from-slot
(deftest :oodml/update-records/2
": "
(employee-email lenin))))
(progn
- (setf (slot-value employee1 'first-name) "Vladamir"
+ (setf (slot-value employee1 'first-name) "Vladimir"
(slot-value employee1 'last-name) "Lenin"
(slot-value employee1 'email) "lenin@soviet.org")
(clsql:update-record-from-slots employee1 '(first-name last-name email))
(last-name lenin)
": "
(employee-email lenin)))))
- "Vladamir Lenin: lenin@soviet.org"
+ "Vladimir Lenin: lenin@soviet.org"
"Dimitriy Ivanovich: ivanovich@soviet.org"
- "Vladamir Lenin: lenin@soviet.org")
+ "Vladimir Lenin: lenin@soviet.org")
;; tests update-instance-from-records
(deftest :oodml/update-instance/1
(slot-value employee1 'email)))
(progn
(clsql:update-records [employee]
- :av-pairs '(([first-name] "Vladamir")
+ :av-pairs '(([first-name] "Vladimir")
([last-name] "Lenin")
([email] "lenin@soviet.org"))
:where [= [emplid] 1])
(slot-value employee1 'last-name)
": "
(slot-value employee1 'email))))
- "Vladamir Lenin: lenin@soviet.org"
+ "Vladimir Lenin: lenin@soviet.org"
"Ivan Petrov: petrov@soviet.org"
- "Vladamir Lenin: lenin@soviet.org")
+ "Vladimir Lenin: lenin@soviet.org")
;; tests update-slot-from-record
(deftest :oodml/update-instance/2
(every #'(lambda (dea) (typep (slot-value dea 'address) 'address)) dea-list)
(mapcar #'(lambda (dea) (slot-value (slot-value dea 'address) 'addressid)) dea-list))))
t t t t (1 1 2 2 2))
+
+ ;; 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)
+
))
+
+
+
#.(clsql:restore-sql-reader-syntax-state)