X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-fddl.lisp;h=55b2977e3428c750ac5196f5a4292ddae3d0fbfb;hb=d5e6e9e5fda4a11403c04c86d3a7ab0d0b6aa3ef;hp=b75f2cf2dbdc6ceb60ca2d091ed3dd8c65623c14;hpb=7c7edf1d85706148f55a8507a261d024defa0c7c;p=clsql.git diff --git a/tests/test-fddl.lisp b/tests/test-fddl.lisp index b75f2cf..55b2977 100644 --- a/tests/test-fddl.lisp +++ b/tests/test-fddl.lisp @@ -79,6 +79,43 @@ (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 @@ -119,7 +156,7 @@ 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) @@ -213,7 +250,7 @@ (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)) @@ -229,7 +266,7 @@ (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]) @@ -276,14 +313,31 @@ (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) - +(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) + )) #.(clsql:restore-sql-reader-syntax-state)