summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-12-29 20:13:50 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-12-29 20:13:50 +0000
commit57201ca878f7b22bf1495ee9b7825b81489729bc (patch)
treeb4b74ec453fd5d021336cccb90ab1095c9cf64cf /lib/sqlalchemy/databases
parenta582fe3b2645f4c12221b0dc8940cefffe674a93 (diff)
downloadsqlalchemy-57201ca878f7b22bf1495ee9b7825b81489729bc.tar.gz
- added is_disconnect() support for oracle
- fixed _handle_dbapi_error to detect endless loops, doesn't call rollback/cursor.close etc. in case of disconnect
Diffstat (limited to 'lib/sqlalchemy/databases')
-rw-r--r--lib/sqlalchemy/databases/oracle.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py
index 9c9c54bf6..c57ed006c 100644
--- a/lib/sqlalchemy/databases/oracle.py
+++ b/lib/sqlalchemy/databases/oracle.py
@@ -311,6 +311,12 @@ class OracleDialect(default.DefaultDialect):
return ([], opts)
+ def is_disconnect(self, e):
+ if isinstance(e, self.dbapi.InterfaceError):
+ return "not connected" in str(e)
+ else:
+ return "ORA-03114" in str(e) or "ORA-03113" in str(e)
+
def type_descriptor(self, typeobj):
return sqltypes.adapt_type(typeobj, colspecs)