From: Kevin M. Rosenberg Date: Sun, 11 Apr 2004 10:03:14 +0000 (+0000) Subject: r8939: add database type slot X-Git-Tag: v3.8.6~678 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=2ae9ee745ff9e17806178e1999b880acc64ab894 r8939: add database type slot --- diff --git a/base/classes.lisp b/base/classes.lisp index f7a700e..32f48a7 100644 --- a/base/classes.lisp +++ b/base/classes.lisp @@ -26,8 +26,12 @@ (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) @@ -38,22 +42,9 @@ (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) - "") - 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) - "") - stream))) + (format stream "~A ~A" + (if (slot-boundp object 'name) + (database-name object) + "") + (database-state object)))) diff --git a/db-mysql/mysql-sql.lisp b/db-mysql/mysql-sql.lisp index 55918a9..87b78f3 100644 --- a/db-mysql/mysql-sql.lisp +++ b/db-mysql/mysql-sql.lisp @@ -114,6 +114,7 @@ (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))))))))) diff --git a/db-sqlite/sqlite-sql.lisp b/db-sqlite/sqlite-sql.lisp index 9b67f38..bc93bb8 100644 --- a/db-sqlite/sqlite-sql.lisp +++ b/db-sqlite/sqlite-sql.lisp @@ -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