X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-fddl.lisp;h=a206f80d7a0dd13cc231483ce456574b6c496cc4;hb=d4bb1303dea9ba6734b86abc34e904edb3e36f6f;hp=301c37c0af89f440ac8dd135253ac9ef331a60fe;hpb=4d46d4d631cad1c4fe3accbe99f4182d975fd678;p=clsql.git diff --git a/tests/test-fddl.lisp b/tests/test-fddl.lisp index 301c37c..a206f80 100644 --- a/tests/test-fddl.lisp +++ b/tests/test-fddl.lisp @@ -24,11 +24,10 @@ ;; list current tables (deftest :fddl/table/1 - (apply #'values - (sort (mapcar #'string-downcase - (clsql:list-tables :owner *test-database-user*)) - #'string<)) - "addr" "company" "ea_join" "employee" "type_bigint" "type_table") + (sort (mapcar #'string-downcase + (clsql:list-tables :owner *test-database-user*)) + #'string<) + ("addr" "big" "company" "ea_join" "employee" "type_bigint" "type_table")) ;; create a table, test for its existence, drop it and test again (deftest :fddl/table/2 @@ -87,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 @@ -97,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 @@ -119,6 +118,9 @@ (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 @@ -266,6 +268,28 @@ (clsql:drop-sequence [foo] :if-does-not-exist :ignore))) 6) +(deftest :fddl/big/1 + (let ((rows (clsql:select [*] :from [big] :field-names nil))) + (values + (length rows) + (do ((i 0 (1+ i)) + (max (expt 2 60)) + (rest rows (cdr rest))) + ((= i (length rows)) t) + (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) + + )) #.(clsql:restore-sql-reader-syntax-state)