;; 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:drop-table [foo] :if-does-not-exist :ignore))))
"comments" "height" "id" "name")
+(deftest :fddl/table/4
+ (values
+ (clsql:table-exists-p "MyMixedCase")
+ (progn
+ (clsql:create-table "MyMixedCase" '(([a] integer)))
+ (clsql:table-exists-p "MyMixedCase"))
+ (progn
+ (clsql:drop-table "MyMixedCase")
+ (clsql:table-exists-p "MyMixedCase")))
+ nil t nil)
+
+(deftest :fddl/table/5
+ (prog1
+ (progn
+ (clsql:create-table "MyMixedCase" '(([a] integer)))
+ (clsql:execute-command "insert into MyMixedCase values (5)")
+ (clsql:insert-records :into "MyMixedCase" :values '(6))
+ (clsql:select [a] :from "MyMixedCase" :order-by '((a :asc))))
+ (clsql:drop-table "MyMixedCase"))
+ ((5) (6)))
+
(deftest :fddl/attributes/1
(apply #'values
(sort
t)
(deftest :fddl/attributes/4
- (clsql:attribute-type [first-name] [employee])
- :varchar 30 nil 1)
+ (multiple-value-bind (type length scale nullable)
+ (clsql:attribute-type [first-name] [employee])
+ (values (clsql-sys:in type :varchar :varchar2) length scale nullable))
+ t 30 nil 1)
(deftest :fddl/attributes/5
- (and (member (clsql:attribute-type [birthday] [employee]) '(:datetime :timestamp)) t)
+ (and (member (clsql:attribute-type [birthday] [employee]) '(:datetime :timestamp :date)) t)
t)
(deftest :fddl/attributes/6
- (and (member (clsql:attribute-type [height] [employee]) '(:float :float8)) t)
+ (and (member (clsql:attribute-type [height] [employee]) '(:float :float8 :number)) t)
t)
(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 ((row (car rest))
+ (index (1+ i)))
+ (unless (and (eql (first row) index)
+ (eql (second row) (truncate max index)))
+ (return nil))))))
+ 555 t)
+
+
))
#.(clsql:restore-sql-reader-syntax-state)