X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fdatabase.lisp;h=83fe7d6a6df739e24dbedbf88fd2beecf4a0aab2;hb=be383802fc1f47547eef6d57945023ff71d45657;hp=9b716444f0256b51c13c98a2a4ffd0a57588561a;hpb=e567409d9fff3f7231c2a0bb69b345e19de2b246;p=clsql.git diff --git a/sql/database.lisp b/sql/database.lisp index 9b71644..83fe7d6 100644 --- a/sql/database.lisp +++ b/sql/database.lisp @@ -166,11 +166,12 @@ from a pool it will be released to this pool." (let ((database (find-database database :errorp (and database error)))) (when database (if (conn-pool database) - (when (release-to-pool database) - (setf *connected-databases* (delete database *connected-databases*)) - (when (eq database *default-database*) - (setf *default-database* (car *connected-databases*))) - t) + (with-process-lock ((conn-pool-lock (conn-pool database)) "Delete from pool") + (when (release-to-pool database) + (setf *connected-databases* (delete database *connected-databases*)) + (when (eq database *default-database*) + (setf *default-database* (car *connected-databases*))) + t)) (when (database-disconnect database) (setf *connected-databases* (delete database *connected-databases*)) (when (eq database *default-database*) @@ -279,28 +280,28 @@ database is printed." (print-separator total-size)))) (values))) -(defun create-database (connection-spec &key database-type) +(defun create-database (connection-spec &key (database-type *default-database-type*)) "This function creates a database in the database system specified by DATABASE-TYPE." (when (stringp connection-spec) (setq connection-spec (string-to-list-connection-spec connection-spec))) (database-create connection-spec database-type)) -(defun probe-database (connection-spec &key database-type) +(defun probe-database (connection-spec &key (database-type *default-database-type*)) "This function tests for the existence of a database in the database system specified by DATABASE-TYPE." (when (stringp connection-spec) (setq connection-spec (string-to-list-connection-spec connection-spec))) (database-probe connection-spec database-type)) -(defun destroy-database (connection-spec &key database-type) +(defun destroy-database (connection-spec &key (database-type *default-database-type*)) "This function destroys a database in the database system specified by DATABASE-TYPE." (when (stringp connection-spec) (setq connection-spec (string-to-list-connection-spec connection-spec))) (database-destroy connection-spec database-type)) -(defun list-databases (connection-spec &key database-type) +(defun list-databases (connection-spec &key (database-type *default-database-type*)) "This function returns a list of databases existing in the database system specified by DATABASE-TYPE." (when (stringp connection-spec)