]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
dispose() added to pool/engine to allow engines to fall out of scope
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 18 Jan 2006 05:49:01 +0000 (05:49 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 18 Jan 2006 05:49:01 +0000 (05:49 +0000)
lib/sqlalchemy/engine.py
lib/sqlalchemy/pool.py

index 65de2f775aa1b92b8e98438932a59553ec4d1d14..054c5853c78cc7b53915fd8e155f3f94616e59c7 100644 (file)
@@ -183,6 +183,11 @@ class SQLEngine(schema.SchemaEngine):
         else:
             self.logger = logger
     
+    def dispose(self):
+        """disposes of the underlying pool manager for this SQLEngine."""
+        (cargs, cparams) = self.connect_args()
+        sqlalchemy.pool.manage(self.dbapi()).dispose(*cargs, **cparams)
+        
     def _set_paramstyle(self, style):
         self._paramstyle = style
         self._figure_paramstyle(style)
index 16b4a981fb7f740ef9b62b88e7412705ea685030..699aadb042038972124d0fbd5912350f135b7052 100644 (file)
@@ -229,6 +229,14 @@ class DBProxy(object):
         be created, a new database connection will be made."""
         return self.get_pool(*args, **params).connect()
     
+    def dispose(self, *args, **params):
+        """disposes the connection pool referenced by the given connect arguments."""
+        key = self._serialize(*args, **params)
+        try:
+            del self.pools[key]
+        except KeyError:
+            pass
+        
     def _serialize(self, *args, **params):
         return cPickle.dumps([args, params])