r9212: Automated commit for Debian build of clsql upstream-version-2.10.8
authorKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 3 May 2004 18:44:03 +0000 (18:44 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 3 May 2004 18:44:03 +0000 (18:44 +0000)
ChangeLog
TODO
base/conditions.lisp
debian/changelog
sql/objects.lisp
tests/test-fddl.lisp
tests/test-fdml.lisp
tests/test-init.lisp
tests/test-oodml.lisp

index 5881d6d2f47f95408ff8f03f5438836aed1bc9e3..1d2073411e901306975d228a6e246dcb5cf23fdd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,11 +5,13 @@
        * db-postgresql-socket/postgresql-socket-sql.lisp:
        Honor value of *backend-warning-behavior*
        * tests/test-fdml.lisp: Remove test of raw boolean value
        * db-postgresql-socket/postgresql-socket-sql.lisp:
        Honor value of *backend-warning-behavior*
        * tests/test-fdml.lisp: Remove test of raw boolean value
-       since different backends handle this differently.
-       * tests/test-oodml.lisp: Add test for boolean slot value
+       since different backends handle this differently. Add
+       test for :column attribute.
+       * tests/test-oodml.lisp: Add tests for boolean slot value
+       and for :void-value attribute
        * tests/test-init.lisp: Use *backend-warning-behavior*
        to suppress warnings from postgresql about implicitly
        * tests/test-init.lisp: Use *backend-warning-behavior*
        to suppress warnings from postgresql about implicitly
-       creating primary key in tables.
+       creating primary key in tables. Add new address table.
        
 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 2.10.7
        
 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 2.10.7
diff --git a/TODO b/TODO
index b2a71d38b635f21b2b004a9a4843d188cb0061d1..f3852b0fd317cc1da6131ac6c93265d753a6cf5d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,13 +7,11 @@ GENERAL
 TESTS TO ADD
 
 * CACHE-TABLE-QUERIES
 TESTS TO ADD
 
 * CACHE-TABLE-QUERIES
-* :VOID-VALUE attribute, use a new view-class with several fields with different void-values
-* :COLUMN attribute
 * Test that ":db-kind :key" adds an index for that key. This is complicated by different
   backends showing autogenerated primary key in different ways.
 * Test New universal and bigint types, add tests for other types such as duration and money
 * Large object testing
 * Test that ":db-kind :key" adds an index for that key. This is complicated by different
   backends showing autogenerated primary key in different ways.
 * Test New universal and bigint types, add tests for other types such as duration and money
 * Large object testing
-* Test instance slot values when SELECT called for objects
+* :db-constraint tests
 
 COMMONSQL SPEC
 
 
 COMMONSQL SPEC
 
index 4954eced7fdbb07dddd02794da93c59484ab3fad..6b7d971d6cf3df623922b11c06e7aeadeaa87fff 100644 (file)
@@ -98,7 +98,7 @@ and signal an clsql-invalid-spec-error if they don't match."
 
 (define-condition clsql-sql-error (clsql-error)
   ((database :initarg :database :reader clsql-sql-error-database)
 
 (define-condition clsql-sql-error (clsql-error)
   ((database :initarg :database :reader clsql-sql-error-database)
-   (message :initarg :message :initarg nil :reader clsql-sql-error-message)
+   (message :initarg :message :initform nil :reader clsql-sql-error-message)
    (expression :initarg :expression :initarg nil :reader clsql-sql-error-expression)
    (errno :initarg :errno :initarg nil :reader clsql-sql-error-errno)
    (error :initarg :error :initarg nil :reader clsql-sql-error-error))
    (expression :initarg :expression :initarg nil :reader clsql-sql-error-expression)
    (errno :initarg :errno :initarg nil :reader clsql-sql-error-errno)
    (error :initarg :error :initarg nil :reader clsql-sql-error-error))
index e3020e744d16e356470525c2a14508bc2650971d..82217bafa7ac94e88f6f95a87a58a47799d216ef 100644 (file)
@@ -1,3 +1,9 @@
+cl-sql (2.10.8-1) unstable; urgency=low
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Mon,  3 May 2004 12:43:58 -0600
+
 cl-sql (2.10.7-1) unstable; urgency=low
 
   * New upstream
 cl-sql (2.10.7-1) unstable; urgency=low
 
   * New upstream
index cb158d296957b4aea192dd8859c0451ebf8fb388..2d569c754a0ea6deff68d83edeba3a92b029a403 100644 (file)
@@ -397,7 +397,7 @@ superclass of the newly-defined View Class."
        (let ((qualifier (key-qualifier-for-instance instance :database vd)))
          (delete-records :from vt :where qualifier :database vd)
          (setf (slot-value instance 'view-database) nil))
        (let ((qualifier (key-qualifier-for-instance instance :database vd)))
          (delete-records :from vt :where qualifier :database vd)
          (setf (slot-value instance 'view-database) nil))
-       (error 'clsql-no-database-error nil))))
+       (error 'clsql-base::clsql-no-database-error :database nil))))
 
 (defmethod update-instance-from-records ((instance standard-db-object)
                                          &key (database *default-database*))
 
 (defmethod update-instance-from-records ((instance standard-db-object)
                                          &key (database *default-database*))
@@ -795,7 +795,7 @@ superclass of the newly-defined View Class."
                   objects))))
     (let* ((*db-deserializing* t)
           (*default-database* (or database
                   objects))))
     (let* ((*db-deserializing* t)
           (*default-database* (or database
-                                  (error 'clsql-no-database-error nil)))
+                                  (error 'clsql-base::clsql-no-database-error :database nil)))
           (sclasses (mapcar #'find-class view-classes))
           (sels (mapcar #'generate-selection-list sclasses))
           (fullsels (apply #'append sels))
           (sclasses (mapcar #'find-class view-classes))
           (sels (mapcar #'generate-selection-list sclasses))
           (fullsels (apply #'append sels))
index 0dc053b1307210b3e005f85c26b3039091b15669..4315f88ae19a3fade918ae0a08d9b838537aa55c 100644 (file)
@@ -28,7 +28,7 @@
            (sort (mapcar #'string-downcase
                          (clsql:list-tables :owner *test-database-user*))
                  #'string<))
            (sort (mapcar #'string-downcase
                          (clsql:list-tables :owner *test-database-user*))
                  #'string<))
-  "company" "employee" "type_table")
+  "address" "company" "employee" "type_table")
 
 ;; create a table, test for its existence, drop it and test again 
 (deftest :fddl/table/2
 
 ;; create a table, test for its existence, drop it and test again 
 (deftest :fddl/table/2
index 53bc3faff6301b8f27b837fd1f204ae9118d83b8..b74e53275479e41205f7b8d904ce3338e454c4d8 100644 (file)
                                :flatp t)))
   t)
 
                                :flatp t)))
   t)
 
+(deftest :fdml/select/15
+    (multiple-value-bind (rows field-names)
+       (clsql:select [emplid] [street-number] [street-name] [city_field] [zip] 
+        :from [address]
+        :where [= 1 [emplid]])
+      (values
+       rows
+       (mapcar #'string-downcase field-names)))
+  ((1 10 "Park Place" "Leningrad" 123))
+  ("emplid" "street_number" "street_name" "city_field" "zip"))
+
 ;(deftest :fdml/select/11
 ;    (clsql:select [emplid] :from [employee]
 ;                :where [= [emplid] [any [select [companyid] :from [company]]]]
 ;(deftest :fdml/select/11
 ;    (clsql:select [emplid] :from [employee]
 ;                :where [= [emplid] [any [select [companyid] :from [company]]]]
index eef4f888c44009906ae2c074951702cf83c3dfe9..28ae58709f3d37628accf4ecd7040ec5f5ed8e88 100644 (file)
   (:base-table company))
 
 
   (:base-table company))
 
 
+(def-view-class address ()
+  ((emplid
+    :db-kind :key
+    :db-constraints :not-null
+    :type integer
+    :initarg :emplid)
+   (street-number
+    :type integer
+    :initarg :street-number)
+   (street-name
+    :type (string 30)
+    :void-value ""
+    :initarg :street-name)
+   (city
+    :column "city_field"
+    :void-value "no city"
+    :type (string 30)
+    :initarg :city)
+   (postal-code
+    :column "zip"
+    :type integer
+    :void-value 0
+    :initarg :postal-code)))
 
 (defun test-connect-to-database (db-type spec)
   (when (db-backend-has-create/destroy-db? db-type)
 
 (defun test-connect-to-database (db-type spec)
   (when (db-backend-has-create/destroy-db? db-type)
 (defparameter employee8 nil)
 (defparameter employee9 nil)
 (defparameter employee10 nil)
 (defparameter employee8 nil)
 (defparameter employee9 nil)
 (defparameter employee10 nil)
+(defparameter address1 nil)
+(defparameter address2 nil)
 
 (defun test-initialise-database ()
   (test-basic-initialize)
 
 (defun test-initialise-database ()
   (test-basic-initialize)
             :ignore
           :warn)))
     (clsql:create-view-from-class 'employee)
             :ignore
           :warn)))
     (clsql:create-view-from-class 'employee)
-    (clsql:create-view-from-class 'company))
+    (clsql:create-view-from-class 'company)
+    (clsql:create-view-from-class 'address))
 
   (setf company1 (make-instance 'company
                   :companyid 1
 
   (setf company1 (make-instance 'company
                   :companyid 1
                     :birthday (clsql-base:get-time)
                     :first-name "Vladamir"
                     :last-name "Putin"
                     :birthday (clsql-base:get-time)
                     :first-name "Vladamir"
                     :last-name "Putin"
-                    :email "putin@soviet.org"))
+                    :email "putin@soviet.org")
+
+       address1 (make-instance 'address
+                               :emplid 1
+                               :street-number 10
+                               :street-name "Park Place"
+                               :city "Leningrad"
+                               :postal-code 123)
+
+       address2 (make-instance 'address
+                               :emplid 2))
   
   ;; sleep to ensure birthdays are no longer at current time
   (sleep 2) 
   
   ;; sleep to ensure birthdays are no longer at current time
   (sleep 2) 
   (clsql:update-records-from-instance employee8)
   (clsql:update-records-from-instance employee9)
   (clsql:update-records-from-instance employee10)
   (clsql:update-records-from-instance employee8)
   (clsql:update-records-from-instance employee9)
   (clsql:update-records-from-instance employee10)
-  (clsql:update-records-from-instance company1))
+  (clsql:update-records-from-instance company1)
+  (clsql:update-records-from-instance address1)
+  (clsql:update-records-from-instance address2))
 
 (defvar *error-count* 0)
 (defvar *error-list* nil)
 
 (defvar *error-count* 0)
 (defvar *error-list* nil)
index 7cac6feae92ebfcf34d62ca10246ee518e68c271..84046fcdd20167045e0c5d411cbde4ec8356f8ac 100644 (file)
     (slot-value (caar (clsql:select 'employee :where [= 4 [emplid]])) 'married)
   nil)
 
     (slot-value (caar (clsql:select 'employee :where [= 4 [emplid]])) 'married)
   nil)
 
+(deftest :oodml/select/8
+    (let ((a (caar (clsql:select 'address :where [= 1 [emplid]]))))
+      (values
+       (slot-value a 'street-number)
+       (slot-value a 'street-name)
+       (slot-value a 'city)
+       (slot-value a 'postal-code)))
+  10 "Park Place" "Leningrad" 123)
+
+(deftest :oodml/select/9
+    (let ((a (caar (clsql:select 'address :where [= 2 [emplid]]))))
+      (values
+       (slot-value a 'street-number)
+       (slot-value a 'street-name)
+       (slot-value a 'city)
+       (slot-value a 'postal-code)))
+  nil "" "no city" 0)
+
 ;; tests update-records-from-instance 
 (deftest :oodml/update-records/1
     (values
 ;; tests update-records-from-instance 
 (deftest :oodml/update-records/1
     (values