:retrieval :immediate)))
(:base-table "ea_join"))
+(def-view-class deferred-employee-address ()
+ ((aemplid :type integer :initarg :emplid)
+ (aaddressid :type integer :initarg :addressid)
+ (verified :type boolean :initarg :verified)
+ (address :db-kind :join
+ :db-info (:join-class address
+ :home-key aaddressid
+ :foreign-key addressid
+ :retrieval :deferred)))
+ (:base-table "ea_join"))
+
(defun test-connect-to-database (db-type spec)
(when (clsql-sys:db-backend-has-create/destroy-db? db-type)
(ignore-errors (destroy-database spec :database-type db-type))
(select 'employee :flatp t :caching nil))
t)
- ;; :retrieval :immediate should be boundp before accessed
(deftest :oodm/retrieval/2
+ (every #'(lambda (e) (not (slot-boundp e 'address)))
+ (select 'deferred-employee-address :flatp t :caching nil))
+ t)
+
+ ;; :retrieval :immediate should be boundp before accessed
+ (deftest :oodm/retrieval/3
(every #'(lambda (ea) (slot-boundp ea 'address))
(select 'employee-address :flatp t :caching nil))
t)
- (deftest :oodm/retrieval/3
+ (deftest :oodm/retrieval/4
(mapcar #'(lambda (ea) (typep (slot-value ea 'address) 'address))
(select 'employee-address :flatp t :caching nil))
(t t t t t))
- (deftest :oodm/retrieval/4
+ (deftest :oodm/retrieval/5
+ (mapcar #'(lambda (ea) (typep (slot-value ea 'address) 'address))
+ (select 'deferred-employee-address :flatp t :caching nil))
+ (t t t t t))
+
+ (deftest :oodm/retrieval/6
(every #'(lambda (ea) (slot-boundp (slot-value ea 'address) 'addressid))
(select 'employee-address :flatp t :caching nil))
t)
- (deftest :oodm/retrieval/5
+ (deftest :oodm/retrieval/7
+ (every #'(lambda (ea) (slot-boundp (slot-value ea 'address) 'addressid))
+ (select 'deferred-employee-address :flatp t :caching nil))
+ t)
+
+ (deftest :oodm/retrieval/8
(mapcar #'(lambda (ea) (slot-value (slot-value ea 'address) 'street-number))
(select 'employee-address :flatp t :order-by [aaddressid] :caching nil))
(10 10 nil nil nil))
+ (deftest :oodm/retrieval/9
+ (mapcar #'(lambda (ea) (slot-value (slot-value ea 'address) 'street-number))
+ (select 'deferred-employee-address :flatp t :order-by [aaddressid] :caching nil))
+ (10 10 nil nil nil))
+
;; tests update-records-from-instance
(deftest :oodml/update-records/1
(values
collect (slot-value e 'last-name))
("Lenin" "Stalin" "Trotsky"))
- ))
+ (deftest oodml/cache/1
+ (progn
+ (setf (clsql-sys:record-caches *default-database*) nil)
+ (let ((employees (select 'employee)))
+ (every #'(lambda (a b) (eq a b))
+ employees (select 'employee))))
+ t)
+
+ ))
#.(clsql:restore-sql-reader-syntax-state)