r9336: 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
[clsql.git] / tests / benchmarks.lisp
index eb218b6791441299881ae95bca36e7a06934a931..ec281d4df860e77f1b49864b6e8b3ffc36abf853 100644 (file)
@@ -42,6 +42,7 @@
 
 (defun do-benchmarks-for-backend (db-type spec count)
   (test-connect-to-database db-type spec)
+  (test-initialise-database)
   (write-report-banner "Benchmarks" db-type *report-stream*)
 
   (create-view-from-class 'bench)
     (time
      (dotimes (i n)
        (query "SELECT * FROM BENCH" :field-names nil)))
-    ))
-
-
-
+    (format *report-stream* "~&~%*** JOINED OBJECT QUERY RETRIEVAL IMMEDIATE ***~%")
+    (time
+     (dotimes (i (truncate n 10))
+       (mapcar #'(lambda (ea) (slot-value ea 'address)) (select 'employee-address :flatp t))))
 
+    (format *report-stream* "~&~%*** JOINED OBJECT QUERY RETRIEVAL DEFERRED ***~%")
+    (let* ((slotdef (find 'address (clsql-sys::class-slots (find-class 'employee-address))
+                         :key #'clsql-sys::slot-definition-name))
+          (dbi (when slotdef (clsql-sys::view-class-slot-db-info slotdef))))
+      (setf (gethash :retrieval dbi) :deferred)
+      (time
+       (dotimes (i (truncate n 10))
+        (mapcar #'(lambda (ea) (slot-value ea 'address)) (select 'employee-address :flatp t))))
+      (setf (gethash :retrieval dbi) :immediate))))