r9657: Cleanup and document the FDDL.
[clsql.git] / tests / test-fddl.lisp
index 0ffe57e376db795686ba33e85fc1755a0ec03703..c5c305b3828d3d4aa1ac694df734e8949fb5339a 100644 (file)
@@ -86,7 +86,7 @@
                     (clsql:list-attributes [employee]
                                           :owner *test-database-user*))
             #'string<))
-  "birthday" "ecompanyid" "email" "emplid" "first_name" "groupid" "height"
+  "bd_utime" "birthday" "ecompanyid" "email" "emplid" "first_name" "groupid" "height"
   "last_name" "managerid" "married")
 
 (deftest :fddl/attributes/2
@@ -96,7 +96,7 @@
                     (clsql:list-attribute-types [employee]
                                                :owner *test-database-user*))
             #'string<))
-  "birthday" "ecompanyid" "email" "emplid" "first_name" "groupid" "height"
+  "bd_utime" "birthday" "ecompanyid" "email" "emplid" "first_name" "groupid" "height"
   "last_name" "managerid" "married")
 
 ;; Attribute types are vendor specific so need to test a range
     (and (member (clsql:attribute-type [height] [employee]) '(:float :float8 :number)) t)
   t)
 
+(deftest :fddl/attributes/7
+    (and (member (clsql:attribute-type [bd_utime] [employee]) '(:bigint :int8 :char)) t)
+  t)
 
 
 ;; create a view, test for existence, drop it and test again
       (apply #'values result))
   t t t)
 
-;; test list-table-indexes
+;; test list-indexes with keyword :ON 
 (deftest :fddl/index/3
     (progn
       (clsql:create-table [i3test] '(([a] (string 10))
        (sort 
        (mapcar 
         #'string-downcase
-        (clsql:list-table-indexes [i3test] :owner *test-database-user*))
+        (clsql:list-indexes :on [i3test] :owner *test-database-user*))
        #'string-lessp)
        (progn
         (clsql:drop-index [bar] :on [i3test])
            (max (expt 2 60))
            (rest rows (cdr rest)))
           ((= i (length rows)) t)
-        (let ((row (car rest))
-              (index (1+ i)))
-          (unless (and (eql (first row) index)
-                       (eql (second row) (truncate max index)))
+        (let ((index (1+ i))
+              (int (first (car rest)))
+              (bigint (second (car rest))))
+          (when (and (or (eq *test-database-type* :oracle)
+                         (and (eq *test-database-type* :odbc)
+                              (eq *test-database-underlying-type* :postgresql)))
+                     (stringp bigint))
+            (setf bigint (parse-integer bigint)))
+          (unless (and (eql int index)
+                       (eql bigint (truncate max index)))
             (return nil))))))
   555 t)