diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-01-10 11:15:11 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-01-10 11:15:11 -0500 |
commit | d78d2d60aa30b0b6c3c230ddf3cafda2529e6409 (patch) | |
tree | 860e40ae961ba38a8a4130738d562488b5a67d0e /lib/sqlalchemy/exc.py | |
parent | 88ac77bc56931c7d43756e2e2c6c537375d1b57b (diff) | |
download | sqlalchemy-d78d2d60aa30b0b6c3c230ddf3cafda2529e6409.tar.gz |
- [bug] Added __reduce__ to StatementError,
DBAPIError so that exceptions are pickleable,
as when using multiprocessing. However, not
all DBAPIs support this yet, such as
psycopg2. [ticket:2371]
Diffstat (limited to 'lib/sqlalchemy/exc.py')
-rw-r--r-- | lib/sqlalchemy/exc.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/sqlalchemy/exc.py b/lib/sqlalchemy/exc.py index 59a15f079..55205b274 100644 --- a/lib/sqlalchemy/exc.py +++ b/lib/sqlalchemy/exc.py @@ -164,6 +164,10 @@ class StatementError(SQLAlchemyError): self.params = params self.orig = orig + def __reduce__(self): + return self.__class__, (self.message, self.statement, + self.params, self.orig) + def __str__(self): from sqlalchemy.sql import util params_repr = util._repr_params(self.params, 10) @@ -219,6 +223,10 @@ class DBAPIError(StatementError): return cls(statement, params, orig, connection_invalidated) + def __reduce__(self): + return self.__class__, (self.statement, self.params, + self.orig, self.connection_invalidated) + def __init__(self, statement, params, orig, connection_invalidated=False): try: text = str(orig) |