From: Kevin M. Rosenberg Date: Thu, 3 May 2007 03:17:56 +0000 (+0000) Subject: r11675: 02 May 2007 Kevin Rosenberg X-Git-Tag: v3.8.6~14 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=e2ef529e8004c80a5e013f2e51e7647921912889 r11675: 02 May 2007 Kevin Rosenberg * sql/database.lisp: Add ability of WITH-DATABASE to return multiple values (patch from Liam Healy) --- diff --git a/ChangeLog b/ChangeLog index 3c147c4..ddce9e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +02 May 2007 Kevin Rosenberg + * sql/database.lisp: Add ability of WITH-DATABASE to return + multiple values (patch from Liam Healy) + 25 Apr 2007 Kevin Rosenberg * Version 3.8.3 * doc/connect.xml: variable description fix by Liam Healy diff --git a/sql/database.lisp b/sql/database.lisp index faa384d..3e8912d 100644 --- a/sql/database.lisp +++ b/sql/database.lisp @@ -312,16 +312,12 @@ system specified by DATABASE-TYPE." database connection given by CONNECTION-SPEC and CONNECT-ARGS. The connection is automatically closed or released to the pool on exit from the body." - (let ((result (gensym "result-"))) - (unless db-var (setf db-var '*default-database*)) - `(let ((,db-var (connect ,connection-spec ,@connect-args)) - (,result nil)) - (unwind-protect - (let ((,db-var ,db-var)) - (setf ,result (progn ,@body))) - (disconnect :database ,db-var)) - ,result))) - + (unless db-var (setf db-var '*default-database*)) + `(let ((,db-var (connect ,connection-spec ,@connect-args))) + (unwind-protect + (let ((,db-var ,db-var)) + (progn ,@body)) + (disconnect :database ,db-var)))) (defmacro with-default-database ((database) &rest body) "Perform BODY with DATABASE bound as *default-database*."