From 1c9c5d9e766478f71457be65647478637d37abb2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 18 Jan 2006 05:49:01 +0000 Subject: [PATCH] dispose() added to pool/engine to allow engines to fall out of scope --- lib/sqlalchemy/engine.py | 5 +++++ lib/sqlalchemy/pool.py | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 65de2f775a..054c5853c7 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -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) diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py index 16b4a981fb..699aadb042 100644 --- a/lib/sqlalchemy/pool.py +++ b/lib/sqlalchemy/pool.py @@ -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]) -- 2.47.2