]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- fixed QueuePool bug whereby its better able to reconnect to a database
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 13 Dec 2006 20:45:34 +0000 (20:45 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 13 Dec 2006 20:45:34 +0000 (20:45 +0000)
that was not reachable, also fixed dispose() method

CHANGES
lib/sqlalchemy/pool.py

diff --git a/CHANGES b/CHANGES
index 48100428e8cb7587bdb45fa554824299a9cea5d3..fd03d1a93da65993d70cc90056c3f205260b6f37 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,7 +2,10 @@
 - fixes to passive_deletes flag, lazy=None (noload) flag
 - added example/docs for dealing with large collections
 - added object_session() method to sqlalchemy namespace
-
+- fixed QueuePool bug whereby its better able to reconnect to a database
+that was not reachable (thanks to Sébastien Lelong), also fixed dispose()
+method
 0.3.2
 - major connection pool bug fixed.  fixes MySQL out of sync
 errors, will also prevent transactions getting rolled back
index d13c83cac7c8686e3bdfc46ed1cc2e7d87eff82c..08fe45f8ce11072340470794b77ddac4af661ba9 100644 (file)
@@ -363,8 +363,9 @@ class QueuePool(Pool):
         except Queue.Empty:
             if self._max_overflow > -1 and self._overflow >= self._max_overflow:
                 raise exceptions.TimeoutError("QueuePool limit of size %d overflow %d reached, connection timed out" % (self.size(), self.overflow()))
+            con = self.create_connection()
             self._overflow += 1
-            return self.create_connection()
+            return con
 
     def dispose(self):
         while True:
@@ -373,6 +374,9 @@ class QueuePool(Pool):
                 conn.close()
             except Queue.Empty:
                 break
+        
+        self._overflow = 0 - self.size()
+        self.log("Pool disposed. " + self.status())
 
     def status(self):
         tup = (self.size(), self.checkedin(), self.overflow(), self.checkedout())