whitespace-cleanup
[clsql.git] / tests / test-ooddl.lisp
index bd54611e95576fdc156ef86c1cd35e4578055b02..7aec9817a03135f103a197e1a2b2420f472d4a58 100644 (file)
      (every #'(lambda (slotd)
                 (typep slotd 'clsql-sys::view-class-effective-slot-definition))
             (clsql-sys::class-slots (find-class 'employee)))
+     (every #'(lambda (slotd)
+                (typep slotd 'clsql-sys::view-class-effective-slot-definition))
+            (clsql-sys::class-slots (find-class 'setting)))
+     (every #'(lambda (slotd)
+                (typep slotd 'clsql-sys::view-class-effective-slot-definition))
+            (clsql-sys::class-slots (find-class 'theme)))
+     (every #'(lambda (slotd)
+                (typep slotd 'clsql-sys::view-class-effective-slot-definition))
+            (clsql-sys::class-slots (find-class 'node)))
      (every #'(lambda (slotd)
                 (typep slotd 'clsql-sys::view-class-effective-slot-definition))
             (clsql-sys::class-slots (find-class 'company))))
-  t t t)
+  t t t t t t)
+
+;; Ensure classes are correctly marked normalised or not, default not
+;(deftest :ooddl/metaclass/3
+;    (values
+;     (clsql-sys::normalisedp derivednode1)
+;    (clsql-sys::normalisedp basenode)
+;    (clsql-sys::normalisedp company1)
+;    (clsql-sys::normalisedp employee3)
+;    (clsql-sys::normalisedp derivednode-sc-2))
+;  t nil nil nil t)
+
+;(deftest :ooddl/metaclass/3
+; (values
+;  (normalisedp (find-class 'baseclass))
+;  (normalisedp (find-class 'normderivedclass)))
+; nil t)
 
 (deftest :ooddl/join/1
     (mapcar #'(lambda (e) (slot-value e 'ecompanyid))
     (slot-value (employee-manager employee2) 'last-name)
   "Lenin")
 
+(deftest :ooddl/big/1
+    (let ((rows (clsql:select [*] :from [big] :order-by [i] :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)
+
 (deftest :ooddl/time/1
     (let* ((now (clsql:get-time)))
       (when (member *test-database-underlying-type* '(:postgresql :postgresql-socket))