r8939: add database type slot
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 11 Apr 2004 10:03:14 +0000 (10:03 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 11 Apr 2004 10:03:14 +0000 (10:03 +0000)
base/classes.lisp
db-mysql/mysql-sql.lisp
db-sqlite/sqlite-sql.lisp

index f7a700e40b0389d9a6823f35084a4ac03f372d2c..32f48a7e4d07c3fc844a3f7c8b295a36ddaf6683 100644 (file)
    (connection-spec :initform nil :initarg :connection-spec
                     :reader connection-spec
                    :documentation "Require to use connection pool")
+   (database-type :initarg :database-type :reader database-type 
+                 :initform :unknown)
+   (state :initform :closed :reader database-state)
    (command-recording-stream :accessor command-recording-stream :initform nil)
    (result-recording-stream :accessor result-recording-stream :initform nil)
+   (query-recording-stream :accessor query-recording-stream :initform nil)
    (view-classes :accessor database-view-classes :initform nil)
    (schema :accessor database-schema :initform nil)
    (transaction-level :initform 0 :accessor transaction-level)
 
 (defmethod print-object ((object database) stream)
   (print-unreadable-object (object stream :type t :identity t)
-    (write-string (if (slot-boundp object 'name)
-                     (database-name object)
-                     "<unbound>")
-                 stream)))
-
-;; Closed database idea and original code comes from UncommonSQL
-
-(defclass closed-database ()
-  ((name :initarg :name :reader database-name))
-  (:documentation
-   "This class represents databases after they are closed via 'disconnect'."))
-
-(defmethod print-object ((object closed-database) stream)
-  (print-unreadable-object (object stream :type t :identity t)
-    (write-string (if (slot-boundp object 'name)
-                     (database-name object)
-                     "<unbound>")
-                 stream)))
+    (format stream "~A ~A"
+           (if (slot-boundp object 'name)
+               (database-name object)
+             "<unbound>")
+           (database-state object))))
 
index 55918a935600d81aa07c738f2b026f948c04582f..87b78f3f4f5757414c76976d1a0bcc5d0fcef7b4 100644 (file)
                  (make-instance 'mysql-database
                    :name (database-name-from-spec connection-spec
                                                   database-type)
+                   :database-type :mysql
                    :connection-spec connection-spec
                    :mysql-ptr mysql-ptr))
              (when error-occurred (mysql-close mysql-ptr)))))))))
index 9b67f380b25cc7f9a1f35a9b3e69e23eedc2e0a0..bc93bb8f53d770c56386e10ef8ff367602518de6 100644 (file)
@@ -41,6 +41,8 @@
   (handler-case
       (make-instance 'sqlite-database
                     :name (database-name-from-spec connection-spec :sqlite)
+                    :database-type :sqlite
+                    :connection-spec connection-spec
                     :sqlite-db (sqlite:sqlite-open (first connection-spec)))
     (sqlite:sqlite-error (err)
       (error 'clsql-connect-error