(clsql:drop-table "MyMixedCase"))
((5) (6)))
+(deftest :fddl/table/6
+ (values
+ (clsql:table-exists-p [foo])
+ (progn
+ (let ((*backend-warning-behavior*
+ (if (member *test-database-type*
+ '(:postgresql :postgresql-socket))
+ :ignore
+ :warn)))
+ (clsql:create-table [foo]
+ '(([bar] integer :not-null :unique :primary-key)
+ ([baz] string :not-null :unique))))
+ (clsql:table-exists-p [foo]))
+ (progn
+ (clsql:drop-table [foo])
+ (clsql:table-exists-p [foo])))
+ nil t nil)
+
+(deftest :fddl/table/7
+ (values
+ (clsql:table-exists-p [foo])
+ (progn
+ (let ((*backend-warning-behavior*
+ (if (member *test-database-type*
+ '(:postgresql :postgresql-socket))
+ :ignore
+ :warn)))
+ (clsql:create-table [foo] '(([bar] integer :not-null)
+ ([baz] string :not-null))
+ :constraints '("UNIQUE (bar,baz)"
+ "PRIMARY KEY (bar)")))
+ (clsql:table-exists-p [foo]))
+ (progn
+ (clsql:drop-table [foo])
+ (clsql:table-exists-p [foo])))
+ nil t nil)
+
(deftest :fddl/attributes/1
(apply #'values
(sort
t)
(deftest :fddl/attributes/7
- (and (member (clsql:attribute-type [bd_utime] [employee]) '(:bigint :int8 :number)) t)
+ (and (member (clsql:attribute-type [bd_utime] [employee]) '(:bigint :int8 :char)) t)
t)
(let ((names '("foo" foo [foo]))
(result '()))
(dolist (name names)
- (clsql:create-index name :on [employee] :attributes '([emplid]))
+ (clsql:create-index name :on [employee] :attributes '([last-name]))
(push (clsql:index-exists-p name :owner *test-database-user*) result)
(clsql:drop-index name :on [employee] :if-does-not-exist :ignore))
(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])
(let ((index (1+ i))
(int (first (car rest)))
(bigint (second (car rest))))
- (when (and (eq *test-database-type* :odbc)
- (eq *test-database-underlying-type* :postgresql)
+ (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)
(return nil))))))
555 t)
-
-))
+(deftest :fddl/owner/1
+ (and
+ ;; user tables are an improper subset of all tables
+ (= (length (intersection (clsql:list-tables :owner nil)
+ (clsql:list-tables :owner :all)
+ :test #'string=))
+ (length (clsql:list-tables :owner nil)))
+ ;; user tables are a proper subset of all tables
+ (> (length (clsql:list-tables :owner :all))
+ (length (clsql:list-tables :owner nil))))
+ t)
+
+(deftest :fddl/cache-table-queries/1
+ (list
+ (gethash "EMPLOYEE" (clsql-sys::attribute-cache clsql:*default-database*))
+ (progn
+ (clsql:cache-table-queries "EMPLOYEE" :action t)
+ (gethash "EMPLOYEE" (clsql-sys::attribute-cache clsql:*default-database*)))
+ (progn
+ (clsql:list-attribute-types "EMPLOYEE")
+ (not
+ (null
+ (cadr
+ (gethash "EMPLOYEE"
+ (clsql-sys::attribute-cache clsql:*default-database*))))))
+ (progn
+ (clsql:cache-table-queries "EMPLOYEE" :action :flush)
+ (gethash "EMPLOYEE" (clsql-sys::attribute-cache clsql:*default-database*))))
+ (nil (t nil) t (t nil)))
+
+ ))
#.(clsql:restore-sql-reader-syntax-state)