r9370: * sql/db-interface.lisp: Add new db-type-has-union?
[clsql.git] / tests / test-init.lisp
index 9cf50ff6b2508d47dc58e1942f8d522c835d5cd7..70d54d75f0f4ec22ef47a1f7472da32fc32fe871 100644 (file)
                                  :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
+                                 :set nil)))
+  (:base-table "ea_join"))
+
 (defun test-connect-to-database (db-type spec)
-  (when (db-backend-has-create/destroy-db? db-type)
+  (when (clsql-sys:db-backend-has-create/destroy-db? db-type)
     (ignore-errors (destroy-database spec :database-type db-type))
     (ignore-errors (create-database spec :database-type db-type)))
   
   (truncate-database :database *default-database*)
   
   (setf *test-database-underlying-type*
-       (clsql:database-underlying-type *default-database*))
+       (clsql-sys:database-underlying-type *default-database*))
   
   *default-database*)
 
 (defun load-necessary-systems (specs)
   (dolist (db-type +all-db-types+)
     (when (db-type-spec db-type specs)
-      (clsql:initialize-database-type :database-type db-type))))
+      (clsql-sys:initialize-database-type :database-type db-type))))
 
 (defun write-report-banner (report-type db-type stream)
   (format stream
                                (lisp-implementation-version)
                                (machine-type))))
          (when *sexp-report-stream*
-           (write sexp-error :stream *sexp-report-stream*)) 
+           (write sexp-error :stream *sexp-report-stream* :readably t)) 
          (push sexp-error *error-list*))
        
        (format *report-stream* "~&Tests skipped:")
                               *rt-ooddl* *rt-oodml* *rt-syntax*))
       (let ((test (second test-form)))
        (cond
-         ((and (null (db-type-has-views? db-underlying-type))
-               (clsql-base::in test :fddl/view/1 :fddl/view/2 :fddl/view/3 :fddl/view/4))
+         ((and (null (clsql-sys:db-type-has-views? db-underlying-type))
+               (clsql-sys:in test :fddl/view/1 :fddl/view/2 :fddl/view/3 :fddl/view/4))
           (push (cons test "views not supported") skip-tests))
-         ((and (null (db-type-has-boolean-where? db-underlying-type))
-               (clsql-base::in test :fdml/select/11 :oodml/select/5))
+         ((and (null (clsql-sys:db-type-has-boolean-where? db-underlying-type))
+               (clsql-sys:in test :fdml/select/11 :oodml/select/5))
           (push (cons test "boolean where not supported") skip-tests))
-         ((and (null (db-type-has-subqueries? db-underlying-type))
-               (clsql-base::in test :fdml/select/5 :fdml/select/10))
+         ((and (null (clsql-sys:db-type-has-subqueries? db-underlying-type))
+               (clsql-sys:in test :fdml/select/5 :fdml/select/10))
           (push (cons test "subqueries not supported") skip-tests))
-         ((and (null (db-type-transaction-capable? db-underlying-type
+         ((and (null (clsql-sys:db-type-transaction-capable? db-underlying-type
                                                    *default-database*))
-               (clsql-base::in test :fdml/transaction/1 :fdml/transaction/2 :fdml/transaction/3 :fdml/transaction/4))
+               (clsql-sys:in test :fdml/transaction/1 :fdml/transaction/2 :fdml/transaction/3 :fdml/transaction/4))
           (push (cons test "transactions not supported") skip-tests))
-         ((and (null (db-type-has-fancy-math? db-underlying-type))
-               (clsql-base::in test :fdml/select/1))
+         ((and (null (clsql-sys:db-type-has-fancy-math? db-underlying-type))
+               (clsql-sys:in test :fdml/select/1))
           (push (cons test "fancy math not supported") skip-tests))
          ((and (eql *test-database-type* :sqlite)
-               (clsql-base::in test :fddl/view/4 :fdml/select/10
+               (clsql-sys:in test :fddl/view/4 :fdml/select/10
                                :fdml/select/21))
           (push (cons test "not supported by sqlite") skip-tests))
          ((and (eql *test-database-underlying-type* :mysql)
-               (clsql-base::in test :fdml/select/22 :fdml/query/5 
+               (clsql-sys:in test :fdml/select/22 :fdml/query/5 
                                :fdml/query/7 :fdml/query/8))
           (push (cons test "not supported by mysql") skip-tests))
+         ((and (null (clsql-sys:db-type-has-union? db-underlying-type))
+               (clsql-sys:in test :fdml/query/6))
+          (push (cons test "union not supported") skip-tests))
          (t
           (push test-form test-forms)))))
       (values (nreverse test-forms) (nreverse skip-tests))))
 
 
-(defun rl ()
+(defun rapid-load (type)
   "Rapid load for interactive testing."
   (when *default-database*
       (disconnect :database *default-database*))
-  (test-connect-to-database :postgresql (car (postgresql-spec (read-specs))))
+  (test-connect-to-database type (car (db-type-spec type (read-specs))))
   (test-initialise-database))
 
+(defun rl ()
+  (rapid-load :postgresql))
+
 (defun rlm ()
-  "Rapid load for interactive testing."
-  (when *default-database*
-      (disconnect :database *default-database*))
-  (test-connect-to-database :mysql (car (mysql-spec (read-specs))))
-  (test-initialise-database))
+  (rapid-load :mysql))
+
+(defun rlo ()
+  (rapid-load :odbc))