;; 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
(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
(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
(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)