Made release-to-conn-pool a method. Also made postgresql execute DISCARD ALL; when...
authorRuss Tyndall <russ@acceleration.net>
Fri, 9 Oct 2009 19:33:47 +0000 (15:33 -0400)
committerRuss Tyndall <russ@acceleration.net>
Fri, 9 Oct 2009 19:33:47 +0000 (15:33 -0400)
db-postgresql-socket3/sql.lisp
sql/pool.lisp

index 8428d481f08a3d0570d652d9b17d00a1089c7c57..9b73b0d6130cb8dc22cd69eaa3d3ccdbeff7a21d 100644 (file)
   (cl-postgres:close-database (database-connection database))
   t)
 
+(defmethod clsql-sys::release-to-conn-pool :before ((conn postgresql-socket3-database))
+  ;; This resets the connection to "New" state
+  (database-execute-command "DISCARD ALL;" conn))
+
 (defvar *include-field-names* nil)
 
 
index d1c0a230bc43255f8d9b3940286e1545c3e7d50d..f3645086e6920decb5c87a9ba7a624f5c6ca47b0 100644 (file)
@@ -44,7 +44,8 @@ command to put the connection back into its default state."
            (handler-case
                (case (database-underlying-type pconn)
                  (:postgresql
-                    (database-execute-command "RESET ALL" pconn))
+                    ;; This resets the connection to "New" state
+                    (database-execute-command "DISCARD ALL;" pconn))
                  (:mysql
                     (database-query "SHOW ERRORS LIMIT 1" pconn nil nil))
                  (:mssql
@@ -74,7 +75,7 @@ Disconnecting.~%"
           (setf (conn-pool conn) pool))
         conn)))
 
-(defun release-to-conn-pool (conn)
+(defmethod release-to-conn-pool (conn)
   (let ((pool (conn-pool conn)))
     (with-process-lock ((conn-pool-lock pool) "Release to pool")
       (vector-push-extend conn (free-connections pool)))))