X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fdatabase.lisp;h=bb87046fb6c8ce494976b9293efbc11d997b7e9d;hb=3c3aa36478f0609e60d83e6c936bf2096fcae726;hp=d4d1d91e7b15dd7911add8d32f56376e77811d7a;hpb=7e2b9390d312a945100f1e0bbe60525531b97980;p=clsql.git diff --git a/sql/database.lisp b/sql/database.lisp index d4d1d91..bb87046 100644 --- a/sql/database.lisp +++ b/sql/database.lisp @@ -18,6 +18,8 @@ CONNECT. Meaningful values are :new, :warn-new, :error, :warn-old and :old.") +;;TODO: this variable appears to be global, not thread specific and is +;; not protected when modifying the list. (defvar *connected-databases* nil "List of active database objects.") @@ -174,6 +176,7 @@ from a pool it will be released to this pool." (setf *default-database* (car *connected-databases*))) t)) (when (database-disconnect database) + ;;TODO: RACE COND: 2 threads disconnecting could stomp on *connected-databases* (setf *connected-databases* (delete database *connected-databases*)) (when (eq database *default-database*) (setf *default-database* (car *connected-databases*))) @@ -317,7 +320,7 @@ system specified by DATABASE-TYPE." (when (typep db 'database) (setf (slot-value db 'encoding) encoding) (when (eql (slot-value db 'state) :open) - (case database-type + (case (database-type db) ;; FIXME: If database object is open then ;; send command to SQL engine specifying the character ;; encoding for the database